Your team maintains the infrastructure for your organization. The current infrastructure requires changes. You need to share your proposed changes with the rest of the team. You want to follow Google's recommended best practices. What should you do?
Your team maintains the infrastructure for your organization. The current infrastructure requires changes. You need to share your proposed changes with the rest of the team. You want to follow Google's recommended best practices. What should you do?
Using Deployment Manager templates to describe the proposed changes and storing them in Cloud Source Repositories allows you to benefit from version control and collaboration features. Cloud Source Repositories are designed to store and manage code, including infrastructure as code (IaC) templates, which helps in tracking changes, reviewing code, and rolling back to previous versions if needed. This approach aligns with best practices for maintaining and sharing infrastructure configurations within a team.
Correct Answer is (A): Connecting to Cloud Storage buckets Cloud Storage is a flexible, scalable, and durable storage option for your virtual machine instances. You can read and write files to Cloud Storage buckets from almost anywhere, so you can use buckets as common storage between your instances, App Engine, your on-premises systems, and other cloud services. https://cloud.google.com/compute/docs/disks/gcs-buckets Why not (B)? Caution Cloud Source Repositories are intended to store only the source code for your app and not user or personal data. Don't store any Core App Engine Customer Data (as defined in your License Agreement) in Cloud Source Repositories. https://cloud.google.com/source-repositories/docs/features
you store the sensitive data NOT in the instance template, that is the current best practice. But you need version control like GIT or Google's GIT (Cloud Source Repo) to backup your code somehow and able to roll back if needed.
You can do all thing you are mentioning in the cloud store also. Ethically answer is cloud store as you are not dealing with a source file but a template. Again here the argument can go that config is also a part of the source so B answers. To make life easy let's call this template/config file as the proposal file, so the best way to share will be cloud store.
Look at my post above, cloud repo is for code, not templates
B is the answer. Deployment Manager Template can be written in either Jinja or Python, this is Infrastructure as Code (IaC) we are talking about here, same as AWS Cloudformation, or Terraform. Therefore, they should be stored on a git repository such as Google Cloud Source Repositories.
You can do all thing you are mentioning in the cloud store also. Ethically answer is cloud store as you are not dealing with a source file but a template. Again here the argument can go that config is also a part of the source so B answers. To make life easy let's call this template/config file as the proposal file, so the best way to share will be cloud store.
Look at my post above, cloud repo is for code, not templates
B is the answer. Deployment Manager Template can be written in either Jinja or Python, this is Infrastructure as Code (IaC) we are talking about here, same as AWS Cloudformation, or Terraform. Therefore, they should be stored on a git repository such as Google Cloud Source Repositories.
I agree with what are you saying, but the problem that you know how the deployment manager template looks? Is jinja/yaml file that means that are source code, so better to put them inside of an repository. So, for my perpective I will go with the B.
B is the ans
maybe below link will help https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally from that we can take a idea on deciding cloud storage or repo :),
So, what do you think a deployment manager template will have? It will definitely have the source code for the source code/config for the template and if you are sharing with the team that is even better since that means that now people can collaborate that makes more sense to go with B over A here.
In reality, will you proposed the answer in "A" to your boss? I bet he will show you the exit door. Storing IaC in Cloud Storage? It's like telling to store CloudFormation in S3 instead of CodeCommit.
Correction. 2 years later. Correct Answer is (B): Using Recommendations for Infrastructure as Code: This tutorial uses Hashicorp Terraform as the IaC tool, however the architectural patterns and components used in the described automation pipeline can be leveraged even if you are using a different IaC management tool such as Deployment Manager. Cloud Build Purpose: Google Cloud Build automates the deployment of infrastructure based on the changes made to the IaC manifests per policy intelligence recommendations. Access control: The Cloud Build service account must have the right set of permissions to interact with resources in your test project. See the documentation for configuring a Cloud Build service account. GitHub Purpose: The IaC repository uses GitHub for source control. The IaC repository in GitHub is integrated with Cloud Build. When commits are made to the master branch, a Cloud Build job is triggered to run a set of preconfigured tasks. https://cloud.google.com/recommender/docs/tutorial-iac#overview
B is correct. https://cloud.google.com/source-repositories/docs/features
Using Cloud Storage Repos, you can add comments and describe your changes to the team.Hence this might be a better option.
I don't see how you can do this when I tried creating: Add code to your repository info Your repository is currently empty. Add some code using a selected method and then refresh your browser. Contents added to this repository can take some time to show up in search results. Learn more. Select an option to push code to your repository: Push code from a local Git repository Clone your repository to a local Git repository
Deployment Manager templates are Infrastructure as Code. That's the whole benefit of using it. "Sharing with the team" clearly implies that the code is open for review and changes. You do that in a source repo, not in Cloud Storage. Eventually, you may push versions of the reviewed templates to Cloud Storage so that they are 'hosted externally' as some answers mention but not for templates that are still in development.
I think its B; Cloud Storage is for objects and doesn't suit for that type of files.
i will go with Option B. Cloud Deployment manager template is also Infrastructure code and valid for versioning for all change proposed. So this should go with Repository than Bucket.
B, the point is "proposed change". with code repo, you can comment and reply with a change and compare the changes. Option A, Cloud Storage doesn't have that feature.
According to this doc https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally you can easily use/apply your templates externally. Source code is really good for versioning, but looks like this is not the case. Answer is "A"
B is correct Cloud Source Repositories provides fully featured, private Git repositories hosted on Google Cloud. Now we see what deploymentmanager template doc say https://cloud.google.com/deployment-manager/docs/configuration/templates/create-basic-template?hl=zh-tw For examples of templates that you can use in your own deployments, see the Deployment Manager GitHub repository. So I think B is better way than A
B: DM is Infra as Code, and use CSR for versioning and working/collaborating in a team. A will work, but not good practice for code repository
B Where are Deployment Manager templates stored? You can host external templates in Google Cloud Storage or in a publicly-accessible location, such as GitHub. As long as there is a URL to the file and you have access to the templates, Deployment Manager will be able to download it. from google
Why people choose A. Using cloud repo is perfect for that - Sharing code (yes deployment manager template is code!, IAC like terraform) - We use google best practice, we share code through repo not puting this in a bucket and share the URI - My company works with terraform, we store all code in git repo, so this is the same logic in google cloud: store and share code. A it will be perfect if the question was "the fastest solution"
Just as Terraform, the source code needs to be in a Git style repository. This is Infra as code question. B is correct
B is right .. Showing Deployment Manager templates to your team will allow you to define the changes you want to implement in your cloud infrastructure. You can use Cloud Source Repositories to store Deployment Manager templates and collaborate with your team. Cloud Source Repositories are fully-featured, scalable, and private Git repositories you can use to store, manage and track changes to your code. Hence, the correct answer is: Create Deployment Manager templates to define the proposed changes and save them into Cloud Source Repositories.
Effective June 17, 2024, Cloud Source Repositories isn't available to new customers. If your organization hasn't previously used Cloud Source Repositories, you can't enable the API or use Cloud Source Repositories. New projects not connected to an organization can't enable the Cloud Source Repositories API. Organizations that have used Cloud Source Repositories prior to June 17, 2024 are not affected by this change. I think that the question does not exist already, or A is right answer
• B. Use Deployment Manager templates to describe the proposed changes and store them in Cloud Source Repositories.
Referring all the discussions.... A or B ? what to finally choose.
Not that this link made it more clear: https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally
I reckon the article is not inclined to the question. Yes, I have seen the articles saying to store your templates externally via Cloud Storage buckets, but here it's different right, we are looking for an configuration file. May be B, suits better?
B - Use Deployment Manager templates to describe the proposed changes and store them in Cloud Source Repositories.
A is correct. Use Deployment Manager templates to describe the proposed changes and store them in a Cloud Storage bucket.
What made you change your decision after a month, it would have better if you could keep some additional articles supporting your statement.
What made you change your decision after a month, it would have better if you could keep some additional articles supporting your statement.
A is correct. The question asks for infrastructure changes NOT code changes which means the code repository answer is a trick answer. I have seen variations of this question where the correct answer is to use deployment manager to preview the changes and store those in cloud storage. In this case, A is the closest answer.
I think A is correct. https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally#hosting_external_templates You can host external templates in Google Cloud Storage or in a publicly-accessible location, such as GitHub. As long as there is a URL to the file and you have access to the templates, Deployment Manager will be able to download it. If the file uses a schema to import other templates, you must also host those templates in the same base URL.
A is correct, from the doc - https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally#hosting_external_templates "You can host external templates in Google Cloud Storage or in a publicly-accessible location, such as GitHub." Why NOT B - Cloud Source Repo is not a "publicly-accessible location", check this - https://cloud.google.com/source-repositories/docs/configure-access-control#granting_member_access
Correct answer: A. https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally?hl=en. You can host external templates in Google Cloud Storage or in a publicly-accessible location, such as GitHub.
B is the correct answer
B is the correct answer
Correct answer is A.
B for me
B seems correct...anyone tested/tried.
A. Use Deployment Manager templates to describe the proposed changes and store them in a Cloud Storage bucket.
A is answer
B That's what 'infrastructure as a code' is for. You can make the configuration file part of your team's code repository, so that anyone can create the same environment with consistent results.
B is correct because Deployment Manager is used to make changes to the infrastructure but the templates should be versioned using a version control system like Cloud Source Repositories and not cloud storage.
A is correct not B
Why? I would rather use a SCM to propose Changes and revert them if needed
B looks good. Why ? 1. Best practices for using Deployment Manager: Use version control. Using a version control system as part of the development process for your deployments allows you to. 2. Cloud Source Repositories are private Git repositories hosted on Google Cloud. These repositories let you develop and deploy an app or service in a space that provides collaboration and version control for your code.
i choose A. I could not find any references or guides saying that using source repos to store deployment images is a google best practice. I believe that using a bucket is the less complex option, given that the intent is only share your porposed solution, but since i have no documentation to back me up on this, i am opened to insights.
B is right because in Cloud Source Repo you store code and the state can be stored in a bucket. The question aims at code management und version control so B is the right way for that.
B is correct. Cloud source repository is the first thing that you can think about
1.You can host external templates in Google Cloud Storage or in a publicly-accessible location, such as GitHub. As long as there is a URL to the file and you have access to the templates, Deployment Manager will be able to download it. Ref: https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally#hosting_external_templates 2.Cloud Source Repositories are private Git repositories hosted on Google Cloud. These repositories let you develop and deploy an app or service in a space that provides collaboration and version control for your code. Ref: https://cloud.google.com/source-repositories/docs/quickstart Based on above 2 points, and "You need to share your proposed changes with the rest of the team." mentioned in quesiton. Option A should be better.
https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally "Hosting templates in Google Cloud Storage let you to control who has access to the templates because you can set access control options on the respective Cloud Storage bucket or the specific template. In contrast, hosting your templates on other publicly-accessible URLs requires that you make the templates widely available." It's all about access control. Using a publicly-accessible URL might not be ok. Versioning we have on buckets, and as well on git (not comparable really). Otherwise I understand the need of having the IAC on repo (eg. Terraform).
I would go for A as following https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally?hl=en.#hosting_external_templates
A is correct Answer Connecting to Cloud Storage buckets Cloud Storage is a flexible, scalable, and durable storage option for your virtual machine instances. You can read and write files to Cloud Storage buckets from almost anywhere, so you can use buckets as common storage between your instances, App Engine, your on-premises systems, and other cloud services.
Its B.
Don't get confused - it is B. IaC is a matter of version control system like GIT.
A is the right choice, Use Deployment Manager templates to describe the proposed changes and store them in a Cloud Storage bucket
B. Use Deployment Manager templates to describe the proposed changes and store them in Cloud Source Repositories
Thought it was A for a sec, the realized Cloud Source is similar to Github/CodeCommit... So, B is a better choice
Correction. 2 years later. Correct Answer is (B):
As 2022 best practice, B
B is the best answer.
Correct answer is B
Option B (storing in Cloud Source Repositories) might be suitable for storing application code, but it's not the best practice for storing infrastructure configuration templates.
Use of Deployment Manager Templates: Google Cloud Deployment Manager is a tool that allows you to automate the creation and management of Google Cloud resources. It uses templates written in YAML, Python, or Jinja2 to describe your resources and their configurations. By using Deployment Manager templates, you can provide a clear, codified, and repeatable description of the proposed changes to your infrastructure. Version Control and Collaboration: Cloud Source Repositories provide managed and scalable Git repositories hosted on Google Cloud. Storing your Deployment Manager templates in a source repository enables version control, which is a best practice in software and infrastructure development. This approach facilitates collaboration among team members, allowing for review, commenting, and history tracking of changes to the templates.
A. Store in Cloud Storage Bucket: While storing templates in a Cloud Storage bucket makes them accessible, it does not provide the benefits of version control and collaborative features offered by source control systems.
Effective June 17, 2024, Cloud Source Repositories isn't available to new customers. So only option is A for latest, (this question/answers might not be valid anymore) https://cloud.google.com/source-repositories/docs
B is correct