Associate Cloud Engineer Exam QuestionsBrowse all questions from this exam

Associate Cloud Engineer Exam - Question 143


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?

Show Answer
Correct Answer: B

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.

Discussion

52 comments
Sign in to comment
ESP_SAP
Aug 22, 2020

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

stepkurniawan
Aug 26, 2020

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.

[Removed]
Sep 21, 2020

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.

magistrum
Jan 1, 2021

Look at my post above, cloud repo is for code, not templates

JohnnieWalker
Jun 30, 2021

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.

[Removed]
Sep 21, 2020

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.

magistrum
Jan 1, 2021

Look at my post above, cloud repo is for code, not templates

JohnnieWalker
Jun 30, 2021

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.

pYWORLD
Jul 27, 2021

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.

gcpengineer
Jul 28, 2021

B is the ans

ashrafh
Aug 16, 2021

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 :),

bobthebuilder55110
Aug 4, 2022

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.

mav3r1ck
Aug 6, 2022

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.

ESP_SAP
Sep 11, 2022

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

SSPC
Aug 13, 2020

B is correct. https://cloud.google.com/source-repositories/docs/features

AmitKM
Aug 24, 2020

Using Cloud Storage Repos, you can add comments and describe your changes to the team.Hence this might be a better option.

magistrum
Jan 1, 2021

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

gerhardbl
Aug 18, 2021

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.

francisco_guerra
Aug 28, 2020

I think its B; Cloud Storage is for objects and doesn't suit for that type of files.

hiteshrup
Sep 11, 2020

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.

ting_66
Oct 16, 2020

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.

TAvenger
Feb 22, 2021

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"

pondai
Mar 26, 2021

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

pca2b
Mar 29, 2021

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

bubblegumbeach
Oct 12, 2021

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

mrNicky
Jan 19, 2022

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"

raaj_pOption: B
Feb 3, 2022

Just as Terraform, the source code needs to be in a Git style repository. This is Infra as code question. B is correct

AzureDP900
Jun 24, 2022

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.

BuenaCloudDEOption: A
Jul 16, 2024

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

swatititame
Nov 22, 2020

• B. Use Deployment Manager templates to describe the proposed changes and store them in Cloud Source Repositories.

Bhagirathi
Dec 9, 2020

Referring all the discussions.... A or B ? what to finally choose.

sarahf
Dec 9, 2020

Not that this link made it more clear: https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally

tavva_prudhvi
Apr 17, 2021

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?

victory108
Feb 4, 2021

B - Use Deployment Manager templates to describe the proposed changes and store them in Cloud Source Repositories.

victory108
Mar 17, 2021

A is correct. Use Deployment Manager templates to describe the proposed changes and store them in a Cloud Storage bucket.

tavva_prudhvi
Apr 17, 2021

What made you change your decision after a month, it would have better if you could keep some additional articles supporting your statement.

tavva_prudhvi
Apr 17, 2021

What made you change your decision after a month, it would have better if you could keep some additional articles supporting your statement.

lutoa
Feb 13, 2021

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.

ri_unhou119
May 11, 2021

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.

JieHeng
Jun 26, 2021

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

vruizrob
Feb 21, 2022

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.

Captain1212Option: B
Sep 4, 2023

B is the correct answer

sara11190
Oct 12, 2023

B is the correct answer

duhhh
Aug 23, 2020

Correct answer is A.

RockAJ
Oct 6, 2020

B for me

Bhagirathi
Nov 24, 2020

B seems correct...anyone tested/tried.

GCP_Student1
Feb 28, 2021

A. Use Deployment Manager templates to describe the proposed changes and store them in a Cloud Storage bucket.

arsh1916
May 20, 2021

A is answer

ankatsu2010
Oct 12, 2021

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.

bubblegumbeach
Oct 12, 2021

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.

sid0127Option: A
Nov 24, 2021

A is correct not B

jabrrJ68w02ond1
Nov 25, 2021

Why? I would rather use a SCM to propose Changes and revert them if needed

ericyev
Dec 6, 2021

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.

wh1t4k3r
Dec 8, 2021

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.

Raz0rOption: B
Jan 25, 2022

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.

HansKloss611
Feb 2, 2022

B is correct. Cloud source repository is the first thing that you can think about

[Removed]
Feb 7, 2022

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.

oracle111Option: A
Feb 19, 2022

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).

nhadi82Option: A
May 22, 2022

I would go for A as following https://cloud.google.com/deployment-manager/docs/configuration/templates/hosting-templates-externally?hl=en.#hosting_external_templates

Rutu_98Option: A
May 24, 2022

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.

SergijFOption: B
May 30, 2022

Its B.

tomis2Option: B
Jul 10, 2022

Don't get confused - it is B. IaC is a matter of version control system like GIT.

KapilDhamijaOption: A
Aug 12, 2022

A is the right choice, Use Deployment Manager templates to describe the proposed changes and store them in a Cloud Storage bucket

AwesomeGCP
Oct 12, 2022

B. Use Deployment Manager templates to describe the proposed changes and store them in Cloud Source Repositories

diasporabroOption: B
Oct 20, 2022

Thought it was A for a sec, the realized Cloud Source is similar to Github/CodeCommit... So, B is a better choice

KopyOption: B
Nov 14, 2022

Correction. 2 years later. Correct Answer is (B):

davidsalomonOption: B
Dec 13, 2022

As 2022 best practice, B

SK1990Option: B
Dec 29, 2022

B is the best answer.

PraxiiOption: B
May 1, 2023

Correct answer is B

pritampanda1988Option: A
Aug 8, 2023

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.

Cynthia2023Option: B
Jan 2, 2024

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.

Cynthia2023
Jan 2, 2024

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.

yomi95Option: A
Oct 27, 2024

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

Qjb8m9hOption: B
Feb 13, 2025

B is correct