Google Cloud Architect Exams Questions
Google Cloud Architect Exams Questions
solution architecture
1.1 Designing a solution infrastructure that meets business requirements
Objectives of 1.1 and the areas of coverage are.
Cost optimization
Cost Optimization can be achieved around our deployments in Google Cloud by using the right resources and
tools available. We can also be proactive with GCP by setting up Dashboards or alerts as well.
Cost Optimization in Google Cloud is built in around Compute Engine with a feature called Recommendation
Engine.
Recommendation Engine
For more information about Cost Optimization please reference the link below.
https://cloud.google.com/cost-management
Resource Forecasting – Forecasting is the process of making predictions of the future based on past and
present data and most commonly by analysis of trends.
Cloud Resource usage forecasting can be complex. Resources that need to be monitored and usage forecasted
are VMS, Storage, Network Bandwidth, Objects for monitoring, Apps etc. In Google Cloud we can use
Stackdriver Monitoring to identify resource usage.
Baselines/Baseline Drifts – A baseline is the minimum level or starting point used for comparisons. Baseline
Drift (Noise) can occur when the original cloud purpose changes over time. Features added, removed, etc.
We use a baseline to compare Cloud resources usage, performance, security, billing costs, etc
One of the challenges around the cloud is not around technical concerns but more around financial concerns.
We must have full visibility around costs and be able to identify who is using what resources. Cloud spending
is an ever-increasing challenge especially when resources are ever more complex and data storage requirement
grow exponentially every year.
There are excellent resources in Google Cloud such as Cloud Billing, Resource Manager, Stackdriver
Monitoring and other tools/services.
Google has an excellent post on this. Please find the link below.
https://cloud.google.com/blog/topics/cost-management/principles-of-cloud-cost-optimization
Use preemptible VMs
Preemptable VMS are a great way to run a very short-term batch job for example. A preemptible VM is an
instance that you can create and use at a discounted price. They last no longer than 24 hours and can be
terminated (preempted) if Google requires access to those resources for other tasks. Google Compute Engine
will initiate a preemption notice to the instance in the form of an ACPI G2 Soft Off signal.
If a graceful shutdown is important then you should use a shutdown script to handle the preemption notice
and complete cleanup actions before the instance stops.
The cloud is all about networking when it comes to accessing resources. We need to use networking and
these services will run charges. When developing applications for example understand that every API call the
application makes could result in a cost to the company cloud spending.
Most access of resources is done thru APIs which access the cloud resources for the application users.
There are two types of network access that can incur usage charges which are:
Ingress
Egress
Ingress means that your placing, modifying or viewing resources. APIS use certain calls to accomplish, some
of which are GET, PUT,
For example, sending traffic between virtual machines through the external IP addresses will incur costs.
Network logs generate charges. Charges are incurred for the following products:
https://cloud.google.com/compute/network-pricing
There is an online pricing calculator that can provide an estimate of costs for your network transfers. This
calculator has several options to review for network relate pricing.
Networking Egress
Interconnect and Cloud VPN
Cloud Load Balancing
Cloud Endpoints
Figure 4 shows the Pricing Calculator with an estimate for egress
When deploying applications, we want to ensure that we deploy our cloud native applications in a model that
makes sense for the use case. The four most common models are Blue/Green, Traffic Splitting, Canary and
Rolling Updates.
Traffic Splitting – Traffic Splitting or A/B Testing provides your development team an easy way to compare
results of two components.
We could compare Results Side by Side and can configure in console or gcloud
Canary Testing
Canary Testing could be used to deploy an application update or change some configuration variables to
validate how these update or changes would work out. Canary releases are a strategy to mitigate risk in
production and should be deployed in an incremental manner.
Rolling Updates
Rolling Updates are a recommended strategy to deploy with a managed instance group. Managed Instance
groups are deployed with VMs that are dedicated to a specific application that should be updated, load
balanced or scaled together.
Figure 6 shows the Rolling Update deployment approach with one server being updated at a time.
Movement of data – with data flowing in and out of our cloud applications as well as our on-
premise applications we must consider the following if we are using App Engine or GKE for
example.
Traffic Migration or Traffic Splitting?
Traffic Migration switches the request routing between the versions within a service of your application.
Essentially moving traffic from one or more versions to a single new version.
Traffic Splitting is between two or more versions of your application for A/B testing. Traffic splitting is
applied to URLs that do not explicitly target a version.
Flexible environment – Gradual traffic migration traffic between versions running in the flexible environment
is not supported.
Warmup requests improve user response time by allowing the version currently receiving traffic to handle
those requests
Design decision trade-offs – When designing a cloud service whether its on GCP or not we will
likely run into what is referred to as a “trade-off”.
In cloud design there are some common trade offs that we will run into routinely such as performance or cost.
We also have tradeoffs that could result around user experience around implementing layers of security
controls.
The diagram 7 below references how to compare to a NIST model. NIST defines some very specific tradeoffs.
When designing a cloud service, we need to understand the characteristics that the cloud service will need to
retain. If we are considering performance, then we will need be concerned about areas such as latency or
throughput.
The table 4.1 below reference provides a list of characteristics to the considerations of a cloud deployment.
Cloud Structures Structure of services, costing for example in GCP we would review VPCs, Orgs/Projects, IAM, etc
IAM, ACLs, Org Policy, Key Management, NAT, Groups, Service Accounts, etc Cloud Armor, KS
Cloud Security Scanner
On Premise to Cloud Services, Migration Type, Containers, VMS, Application Frameworks, etc API
Integration Endpoints
Enterprise Networking VPC, Hybrid Connectivity Cloud VPN, Cloud DNS, NAT, Cloud Interconnect, Peering
Costing Models Instances, Storage, Data Services, ML/AI, etc. On Demand vs Reserved Licensing BYOL
When considering a cloud service such as virtual machines, these virtual machines could have different levels
of customer/provider responsibilities. Some services in GCP such as App Engine is managed by Google more
than Compute Engine is for example.
Second, the service could be a container-based compute such as GKE or a serverless platform such as Cloud
Functions.
Build, buy, or modify
When considering building, buying or modifying a cloud solution we must consider, most if not all of the
following areas that we should be measuring.
There is an online pricing calculator that can provide an estimate of costs for your cloud resources. It is
intuitive to use and has been covered in previous sections.
https://cloud.google.com/products/calculator
Figure 8 shows the pricing SKUs that are available in your account.
https://cloud.google.com/pricing
Success measurements – Success of a cloud architecture depends on significant business requirements and
technical requirements.
Success Measures of your cloud project could be ROI, TCO , KPIs (Key Performance Indicator is a
measurable value that will demonstrate how effectively a company is achieving key business objectives.),
Availability, Workloads, Resource Allocation and Response Times.
Compliance and observability
Google Cloud Platform is certified for a growing number of compliance standards and controls, and then
undergoes several independent third-party audits to test for data safety, privacy, and security. Some of the
areas around compliance would be:
Certifications/Attestations/Reports
Laws/Regulations
Alignments/Frameworks
You may want to take a look at the GCP compliance page.
https://cloud.google.com/security/compliance/
Cloud Storage is an economical option and would meet compliance requirements if setup properly.
Observability would be accomplished with Google Stackdriver Logging and Monitoring.
You can have as many Workspaces as you wish, but GCP projects and AWS accounts cannot be monitored by
more than one Workspace.
– Can be used for HTTPS traffic when you want to terminate connection on your instances (not at HTTPS
load balancer)
HTTP(S) Load Balancing distributes HTTP(S) traffic among instance groups based on proximity to user or
URL or both
Test Tip – Web and Mobile Apps and can use global forwarding.
Global Forwarding – A global forwarding rule provides a single global IP address for an application. The rule
routes traffic by IP address, port, and protocol to an HTTP or HTTPS target proxy. A global forwarding rule
can only forward to a single port. Global forwarding rules can only be used by an HTTP(S) load balancer
Target proxies’ route incoming HTTP(requests) based on URL maps and backend service configurations.
(Provides termination)
Elasticity of cloud resources – Elasticity provides the necessary resources required for the current
task and handles varying loads for short periods.
Scalability to meet growth requirements – Scalability handles the increase and decrease of
resources according to the applications workload requirements.
In figure 2 we can application requirements and how it would correlate to GCP services and capabilities.
App.yaml specifies a scaling type and instance class that apply to every instance of that version. The scaling
type controls how instances are created. The instance class determines compute resources (memory size and
CPU speed) and pricing.
Test Tip – In App Engine there are three scaling types: manual, basic,
and automatic. The available instance classes depend on the scaling type.
Figure 11 App Engine Instances
Latency can be induced in most cases from the internet connection we use. If latency is a major concern, we
should consider using a dedicated connection for low latency.
Cloud Interconnect is used to extend your data center network into your Google Cloud projects via a well
provisioned, dedicated and low latency connection. Cloud Interconnect provides direct access to RFC1918 IPs
in your VPC (SLA)
Integration with on-premises/multi-cloud environments – Using the public cloud you can extend
the capacity and capabilities of your IT without up-front capex investments. Adding one or more
cloud deployments to your existing infrastructure is a hybrid deployment. Hybrid strategy
modernizes applications and processes incrementally as resources permit.
1.4 Creating a migration plan
Objectives of 1.4 and the areas of coverage are.
1. Integrating solution with existing systems – Systems integration and application integration are the
main focus when moving to the cloud. When integrating our on-premises solutions with GCP
Services there could be any number of concerns, dependencies, goals, etc to appreciate.
2. We need to make sure that data flows seamlessly between all of the components in our cloud and
on premises solutions.
3. We may need to check for example how Cloud SQL supports our current version of MySQL or we
may need to understand how BigQuery can be used to query, import, and export data.
1.5 Envisioning future solution improvements
Objectives of 1.5 and the areas of coverage are.
Cloud has many benefits such as scalability works well for companies with high growth demands. Cloud
provides significant other benefits that are just now being realized such as the element of Hybrid IT which can
provides amazing benefits such as extending Kubernetes to the cloud or extending the cloud to the data center.
As a cloud architect we must be cognizant of the changing landscape and provide some insight to our customer
base where cloud capabilities and capacity may be going.
https://cloud.google.com/security/infrastructure
2.2 Configuring individual storage systems
Objectives of 2.2 and the areas of coverage are.
Data storage allocation
Data processing/compute provisioning
Security and access management – This sub objective is fairly wide and will cover the
following the areas.
1. Principle of Least Privilege
2. Oath2.0
One area we should be well versed in the understanding of security controls and capacity we have available in
the cloud. Managing access is critical and we likely are aware of some best practices such as implementing the
“Principal of Least Privilege” .
The principal of least privilege is an IT security concept in which users are given the minimum levels of
access/permissions that are needed to perform their job functions.
Implementing the Principle of Least Privilege requires you to audit the cloud environment to determine
privileged accounts. After auditing you should then proceed to remove or modify accounts that are not at the
correct privilege level. We should also consider setting up continuous monitoring and performing credential
reviews consistently.
Oath – Oath is a standard which was built to provide secure delegated access. Effectively an application can
take actions or access resources from a server on behalf of the user, without them having to share their
credentials. Oath performs this by allowing the identity provider (IdP) to issue what are tokens to third-party
applications with the user’s approval. For the exam, we would be aware of Oath2.0 from a high level and how
to set this up. Google APIs use the OAuth 2.0 protocol for authentication and authorization.
It is important to note that GCP supports common OAuth 2.0 for deployments for web servers, client-side
apps, installed, and limited-input device applications.
Figure 2 Credentials
To learn more about Oath2.0, Google has an excellent step by step process in the following webpage resources
below
Tokens can become stale or expire so we will need to refresh the tokens. There are four main reasons they
could expire.
https://developers.google.com/identity/protocols/OAuth2
IAP uses an application-level access control model instead of using the traditional network-level firewall.
IAP can be used to implement a zero-trust access model which effectively means that trust should never be
assumed based on where a user is in your cloud network.
Figure 3 IAP
The figure 4 below shows the data lifecycle workflow starting from Create to Destroy
Data that needs to be retained for compliance reasons should be labeled. This compliance data such as audit
logs for example should be strictly controlled and also classified in a manner so that the organization can easily
identify and retrieve as needed. Data could be archived or tiered as well in our Cloud Storage deployments.
Google Cloud has their own lifecycle that I would take a quick review of before the exam.
DevOps on Google Cloud Platform Course
To retain object data in Google Cloud we could enable Object Lifecycle Management. Object Lifecycle
management policies specify actions to be performed on objects that meet certain rules sets.
The changes to Cloud Storage configurations can take 24 hours to apply and object inspection occurs in
asynchronous batches.
We could also use Object Change notifications to notify us of any deletes, changes or attempts to modify.
Object Change Notifications uses webhooks for this feature. Object change notification watches a bucket and
send notifications to external applications when objects change.
If a graceful shutdown is important then you should use a shutdown script to handle the preemption notice
and complete cleanup actions before the instance stops.
Network configuration for compute nodes – The cloud is all about networking when it comes to
accessing resources. We need to use networking and these services will run charges. When
developing applications for example understand that every API call the application makes could
result in a cost to the company cloud spending.
Most access of resources is done thru APIs which access the cloud resources for the application users.
There are two types of network access that can incur usage charges which are:
Ingress
Egress
Ingress means that your placing, modifying or viewing resources. APIS use certain calls to accomplish, some
of which are GET, PUT,
For example, sending traffic between virtual machines through the external IP addresses will incur costs.
Network logs generate charges. Charges are incurred for the following products:
https://cloud.google.com/compute/network-pricing
There is an online pricing calculator that can provide an estimate of costs for your network transfers. This
calculator has several options to review for network relate pricing.
Networking Egress
Interconnect and Cloud VPN
Cloud Load Balancing
Cloud Endpoints
Infrastructure provisioning technology configuration – The exam will test you on the basics of
some of the common open source tools. Not at a deep level but more of at a functional level.
Below are the ones for these objectives.
Jenkins is an open source automation server written in Java. It is used to continuously build and
test software projects, enabling developers to set up a CI/CD environment. It also supports version
control tools like Subversion, Git, Mercurial, and Maven.
Spinnaker is an open source; multi-cloud continuous delivery tool that helps you be intentional
about how you ship software by granting visibility & control into your software delivery process.
Gitlab is a service that provides remote access to Git repository. Git also provides features
designed to help manage the software development lifecycle.
Concourse is an open source automation system written in Go. It is most commonly used for
CI/CD, and is built to scale to any kind of automation pipeline, from simple to complex
Container orchestration with Kubernetes – Kubernetes Engine is a cluster manager and
orchestrator for running Docker containers. Kubernetes Engine schedules containers into a cluster
and automatically manages them based on requirements you define declaratively using
configuration files.
GKE is built on the open source Kubernetes system, and integrates with other Google Cloud Platform services
using dedicated client libraries for a variety of supported languages.
It is important to go into the exam appreciating that Google defines best practices somewhat clearly and that
the exam will reference existing industry best practices for design and migrations
Here is the complete list of Free Tutorials provided by
TechCommanders.
Exam Objectives — Designing and planning a cloud solution architecture (Part 1 of 6)
Exam Objectives — Managing and provisioning a solution infrastructure (Part 2 of 6)
Exam Objectives — Designing for security and compliance (Part 3 of 6) (This Post)
Exam Objectives — Analyzing and optimizing technical and business processes (Part 4 of 6)
Exam Objectives — Managing implementation (Part 5 of 6)
Exam Objectives — Ensuring solution and operations reliability (Part 6 of 6)
Below I have summarized the objectives as efficiently as I could to provide
you an efficient study resource.
3.1 Design for Security
Objectives of 3.1 and the areas of coverage are.
There are three types of roles in Cloud IAM:
Primitive roles: The original roles available in the Google Cloud Platform Console. These are the Owner,
Editor, and Viewer roles. Still assigned by default to projects. Primitive roles are quite broad.
Curated roles: Curated roles are new IAM roles that give finer-grained access control than the primitive roles
https://cloud.google.com/iam/docs/understanding-roles
Service Accounts
A service account is an identity for your programs to use to authenticate and gain access to GCP APIs. (Server
to Server)
Service accounts authenticate applications running on your virtual machine instances to other GCP services.
Each service account is associated with a key pair, which is managed by GCP. It is used for service-to-service
authentication within GCP. Note that Google rotates the keys daily.
A large number of projects can become unwieldy to manage at scale. This is why IAM includes the concept of
an Organization Node. The Organization Node sits above Projects and is your company’s root node for Google
Cloud resources.
With Gsuite, you can enable the Organization Node, any project created by users in your domain will
automatically belong to your Organization Node
The account with Organization Owner role is empowered to modify all projects within the organization. Note
that changes to the organization must occur through Google Sales.
You can also use your own authentication mechanism and manage your own credentials.
Google Cloud Directory Sync (GCDS) give the GSuite Admin the ability to automatically add, modify, and
delete users, groups, and non-employee contacts to synchronize the data in a GSuite domain with an LDAP
directory server or MS Active Directory. The data in the LDAP directory server is never modified or
compromised. (one-way update) GCDS is a secure tool that help keep track of users and groups.
Data security
Google Cloud has some very important to understand the most important aspects for this exam are:
Google states that an organization’s data remains encrypted when it is being transmitted and when it is in rest.
When data is at rest, it remains encrypted using AES 256-bit algorithm while in transit, Transport Layer
Security (TLS) protocol is followed for encryption.
Google uses a secure global API gateway infrastructure which used for managing all the services offered on
the platform. This infrastructure is only accessible via encrypted SSL/TSL channels and a time-limited
authentication key is generated. 2FA and hardware keys are also available for adding an extra layer of
authentication. All requests made by the platform APIs are logged and reviewed regularly.
Using a managed VPN and Cloud Interconnect, an organization can also create an encrypted communication
channel between its on-premise private IP environment and Google’s
Intelligent detection controllers are implemented on data entry points along with employing smart technologies
for automated responses.
Google complies with ISO 27001, PCI DSS, GDPR, HIPAA and many other global standards and country-
specific laws.
If you just want to give a user the ability to connect to a virtual machine instance using SSH, but don’t want to
grant them the ability to manage Compute Engine resources, add the user’s public key to the project, or add a
user’s public key to a specific instance. You can avoid adding a user as a project member, while still granting
them access to specific instances
OS Login
OS Login simplifies SSH access management by linking your Linux user account to your Google identity. Use
OS Login to manage SSH access to your instances using IAM without having to create and manage individual
SSH keys. OS Login maintains a consistent Linux user identity across VM instances and is the recommended
way to manage many users across multiple instances or projects.
To find out more about OS Login please refer to Google Clouds page on OS Login.
https://cloud.google.com/compute/docs/oslogin/
Penetration testing
Pen Testing can be a valuable exercise to understand the security of your Google Cloud resources.
According to Google Cloud if you plan to evaluate the security of your Cloud Platform
infrastructure with penetration testing, you are not required to contact Google Cloud.
Google Cloud has an FAQ on security subject below.
https://support.google.com/cloud/answer/6262505?hl=en
Separation of duties (SoD) – Segregation of duties is a best practice especially in the financial
sector. SoD serves two key purposes for an organization.
SoD ensures that there is oversight and review to catch errors.
SoD helps prevent fraud or theft because it requires two people to collude in order to hide a
transaction
In Google Cloud separation of duties is configured by assigning IAM roles to accounts in different Google
Cloud projects.
Each project is only granted the minimum required IAM roles to accomplish the activity and associated tasks.
These accounts include service accounts, used by GKE and Binary Authorization, and user accounts, accessed
by people
Security controls – In Google Cloud we have several security controls we can implement. For
example, we can establish Project Roles to give to Auditors such as Org viewer, project viewer
but at the same time limit access administratively. We can also develop a Service account key-
management strategy for migrating user profiles. (Key Management)
Auditors – We should always provide access to auditors from a read perspective. For example, we
could export audit logs to GCS bucket and set IAM policy for read.
Managing customer-managed encryption keys with Cloud KMS – It is very important to address
key management for your customer base. A key management service is a software-only approach
that allows the client to create and manage the encryption keys used to protect sensitive data held
in the cloud. Encryption keys reside within the Google Cloud infrastructure and are accessible only
by the client.
Cloud KMS is a cloud-hosted key management service that lets you manage cryptographic keys for your cloud
services the same way you do on-premises.
Cloud KMS includes direct support for encryption, decryption, signing, and verification using a variety of key
types and sources including Cloud HSM for hardware-backed keys.
Cloud KMS must be enabled in your customers project. This only needs to be done once per project.
After the keyring we would need to encrypt data by using the command
The Cloud KMS IAM roles are divided into two categories:
Permission to manage keys
Permission to use keys
Cloud KMS is the preferred way as well to store secrets. Storing Secrets Best Practices in order.
In GCP you have two options for encrypting secrets which are.
Use application layer encryption using a key in Cloud KMS. This is the recommended option.
Use the default encryption built into the Cloud Storage bucket. GCP encrypts customer content
stored at rest, using one or more encryption mechanisms.
3.2 Design for Compliance
Objectives of 3.2 and the areas of coverage are.
Legislation, Commercial and Industry certifications – Google complies with ISO 27001, PCI
DSS, GDPR, HIPAA and many other global standards and country-specific laws.
For the purpose of the exam we really need a very generic idea of the capabilities of GCP around compliance
requirements.
Google Cloud is fairly young as compared to AWS around compliance capabilities. We should always review
any new developments with GCP but also third-party tools.
As for the configuration specifics, you can check if the component’s API can be helpful. For example,
Network Service Tiers APIs or Cloud SQL Admin API’s. Ensure you test your deployment with the API
Explorer to verify all methods in action.
To find out more please reference Google Cloud Compliance webpage below.
https://cloud.google.com/security/compliance
It is important to go into the exam appreciating that Google defines best practices somewhat clearly and that
the exam will reference existing industry best practices for design and migrations.
Below I have summarized the objectives as efficiently as I could to provide you an efficient study resource.
The SDLC methodology is used by both large and small software organizations. These teams follow
development models ranging from agile to lean to waterfall and others.
The software development lifecycle gives organizations a methodical, step-by-step approach to developing
successful software. From gathering the initial requirements for a new product, through maintaining a mature
product on the market, we’ll teach you how to employ SDLC.
Using secure SDLC process incorporates essential security modules such as code review, penetration testing,
and architecture analysis into the entire process from beginning to end.
SDLC not only results in a more secure product but it also enables early
detection of vulnerabilities in the software.
Creates massive efficiencies in Software Development
Reduces Organizational Risks
Implement in the Design Phase
Figure 1 shows the SDLC Lifecycles 5 steps
Continuous integration / continuous deployment – Security around the build steps are needed to
create a secure pipeline. But also, during the deployment phase keeping track of what code that is
sent production is important, the versioning and scanning the code to ensure it has not been
tampered with is critical. Automation of your DevOps foundations will help the enterprise to
keep-up in an agile environment. Environment isolation and separation from production is also
very critical to implement. This can be done in GCP thru the implementation of cloud projects and
proper IAM controls. Vulnerability analysis with Container Registry
Google Container Registry provides secure, private Docker image storage on GCP. Container Analysis is a
service that provides vulnerability scanning and metadata storage for software artifacts. The scanning service
performs vulnerability scans on images in Container Registry, then stores the resulting metadata and makes it
available for consumption through an API.
The Container Analysis API needs to be enabled and then Cloud Build built images are pushed to the
Container Registry which then automatically scans the containers. Feedback on threats and issues is then given
to the user.
Test Tip – you can view image vulnerabilities and image metadata for
containers in Container Registry with Cloud Console, Container Analysis
API (gRPC and REST/JSON) and gcloud command (gcloud beta container
images list-tags –show-occurrences)
Binary Authorization
Binary Authorization is a service that allows only “attested” images to be deployed to the cluster. An attested
image is one that has been verified or guaranteed by an “attestor”. Any unauthorized images that do not match
the Binary Authorization policy are rejected as shown in the figure below.
Test Tip – The default Binary Authorization policy allows all images.
Before we continue there are some terms to understand.
Container Analysis is an API that is used to store trusted metadata about our software artifacts and
is used during the Binary Authorization process
Attestor is a person or process that attests to the authenticity of the image
Note is a piece of metadata in Container Analysis storage that is associated with an Attestor
Attestation is a statement from the Attestor that an image is ready to be deployed. In our case we
will use an attestation that refers to the signing of our image.
Test Tip – A “Denied by Attestor”. Error will be returned if there are no
attestations found that were valid and signed by a key trusted by the
attestor.
To setup Binary Authorization there are some tasks that need to be completed in the project hosting the
Kubernetes Cluster.
Binary Authorization from my experience was heavily tested and therefore I would advise you memorize the
terms such as attest and attestation as well as what Container Analysis is. Container Analysis and Binary
Authorization could be confused on the exam.
Test Tip – Container Analysis is an API that must be enabled during the
Binary Authorization process.
When your automating your CI /CD processes you would execute the standard tasks of building your app
Test your app >>> Containerize it, >>> deploying it to Google Cloud Repositories >>>>Create
an image digest from the image >>>>>>sign it with the private key from a PGP key pair
>>>>>>>> create an attestation >>>>>>>>Finally deploy it to Binary Authorization.
IAM policies per environment
Cloud Identity and Access Management (IAM), provides a more granular access to specific Google Cloud
resources and prevents unwanted access to other resources.
IAM lets you control who (users) has what access (roles) to which resources by setting IAM policies.
A policy is a collection of bindings, audit configs and metadata which binds one or more members
to a single role. Members can be user accounts, service accounts, Google groups, and Gsuite
domains.
A role is a named list of permissions; each role can be an IAM predefined role or a user-created
custom role.
Test Tip – A role binding in a Cloud IAM policy is the combination of
both the role and a list of members.
Cloud IAM policies can be written in JSON or YAML.
Note that the policy manages access to the resource itself as well as any child resources through policy
inheritance.
Troubleshooting / postmortem analysis culture – Post Mortum and Post Incident Reviews are
needed to review problems in production and effectively learn more about how your system works
and can improve upon weaknesses Feedback is also very important to receive and provide as an
SRE. Feedback can be human or even tasking such as metrics like latency, error rate, rework rate,
and human time saved. SRE considers acceptable risk as an “error budget.” When error budgets
are depleted, the focus should change from feature development to improving reliability.
Testing and validation – Check out the Google Cloud Professional Cloud Architect Exam – All in
one Guide
Service catalog and provisioning – Check out the Google Cloud Professional Cloud Architect
Exam – All in one Guide
Business continuity and disaster recovery – For more exam study content, practice questions with
answers/explanations please check out the Google Cloud Professional Cloud Architect Exam –
All in One Guide.
4.2 Analyzing and defining business processes
Objectives of 4.2 and the areas of coverage are
Stakeholder management – Stakeholders are the users or the application owners who generally are going to
be concerned their applications are either performing poorly or not at all. Set reasonable expectations of when
the service should back to normal and also communicate promptly and effectively.
Change management – An automated process that reliably builds, tests, and updates your
software is most effective. Code changes should automatically flow through a pipeline that
includes artifact creation, unit testing, functional testing, and production rollout.
You may want a code update to apply to only a subset of your users, so that it is exercised realistically before
you push it to your entire user base
A version control system records changes to files stored in the system. These files can be source code,
assets, or other documents that might be part of a software development project. Dev teams can make changes
in groups called commits or revisions. Ensures that you have consistency (reproducibility) in your
deployments and that you have a record (traceability) of your codebase changes.
Test Tip – Version control helps your organization meet the critical
requirements around reproducibility and traceability.
Versioning allows you to also rebuild it in a short amount of time without too much trouble. Other benefits
revolve around the ability to test but also the You can also rapidly promote updates from dev to staging to
production efficiently.
Terraform is a great example of a solid tool that is used for this purpose.
You may also want to review the version control page that Google has provided.
https://cloud.google.com/solutions/devops/devops-tech-version-control
Make infrastructure changes safer
Sometimes things just do not go according to plan and therefore we need to make changes to the build or the
deployment.
For example, Cloud Deployment Manager has a -preview flag you can use to preview changes before
actually running the deployment.
Terraform for example, will review the plan for incorrect changes and you safely abort with no changes made
to your infrastructure. You have the choice to proceed or not with “terraform apply”
Immutable infrastructure is effectively infrastructure that is created once and does not change. This is a
different way of thinking where updates/changes were commonly deployed on top of builds, OS, and
applications.
Immutability can be achieved for example, by deploying your CI/CD pipelines to produce a completed image
with the newer version of the application/code/config already deployed. Effectively, the image is ready to
work when provisioned on a VM for example.
Spinnaker is a commonly used comprehensive end-to-end build and deploy solution that provides for an
immutable architecture.
It is important to go into the exam appreciating that Google defines best practices somewhat clearly and that
the exam will reference existing industry best practices for design and migrations
Application development – Modern application development support far better usability for cloud
native applications.
Some common themes are
Event Driven
Microservices
API Gateways
Agile development is widely used and can be credited to lowering risk in cloud application development.
Some common benefits of Agile are
Business Value
Higher Quality
Reduce Time to Market (TTM)
Cost Efficiency
Better Stakeholder engagement
gRPC is a modern open source high performance RPC framework that can run in any environment. It can
efficiently connect services in and across data centers with pluggable support for load balancing, tracing,
health checking and authentication. It is also applicable in last mile of distributed computing to connect
devices, mobile applications and browsers to backend services.
Cloud Endpoints
Cloud Endpoints is a solution from Google Cloud to help create a Public API for your App Engine
applications. Cloud Endpoints also provides facilities to generate client libraries for Android and iOS, thus
easing your task to integrate your backend application functionality into your mobile applications on Android
and iOS.
Cloud Endpoints supports protocol transcoding so that clients can access your gRPC API by using
HTTP/JSON. The Extensible Service Proxy (ESP) transcodes HTTP/JSON to gRPC.
Cloud Endpoints use Google Protocol RPC for HTTP service calls. The steps that are needed are
Load testing is a form of performance testing which focuses on the variables of the load. It validates load as
compared to performance metrics such as latency or TPS. Validates limits and thresholds and most
importantly it helps us isolate bottlenecks.
Unit Testing is commonly referred to as component testing. In unit testing we generally test a single
component which is common decoupled from the dependencies.
Integration testing is used to validate components of our applications work together. It is commonly used for
testing multiple components and/or multiple systems. This form of testing is used to validate the quality of the
software components.
Data and system migration tooling. Migrations can occur form on premises or from other
providers.
The Google Cloud Adoption Framework was developed to serve both as a map for determining where your
business information technology capabilities are now, and as a guide to where you want to be.
You can use this framework to assess your organization’s readiness for Google Cloud. You may want to
review the framework here.
Learn. – Your will want to review the quality and scale of your learning programs.
Lead. – You will want to understand the extent to which your IT departments are supported by a
mandate from leadership to migrate to Google Cloud.
Scale. – You need to review the true extent to which you use cloud-native services.
Secure. – Understand the capability to secure the environment.
https://cloud.google.com/solutions/migration-to-gcp-getting-started
Migrating your VM and Container workloads to Google cloud
Moving you’re your VMS.
There are two ways to move your Virtual Machines.
Manually
Automatically
When preparing to move your VMs don’t use on a VM with a local SSD. The local SSD data cannot be backed
up and will just be discarded. Persistent disks have to be attached to only the VM you are going to move.
(Multiple not supported) Note that sufficient quota must exist for all the resources copied during duplication,
or the process will fail.
Migration Types
There are three major types of migrations according to Google:
Lift and shift effectively move workloads from a source environment to a target environment with
minor or no modifications or refactoring.
Improve and move effectively modernizes the workload while migrating it. In this type of
migration, you modify the workloads to take advantage of cloud-native capabilities, and not just to
make them work in the new environment.
Rip and replace will decommission an existing app and completely redesign and rewrite it as a
cloud-native app. This type of migration allows you to use any Google Cloud capabilities.
There are several ways to migrate from Cloud Provider to GCP
1. Importing Virtual Disks – Use import tool supports most virtual disk file formats, including
VMDK, VHD, and RAW.
2. Migrate for Compute Engine has effectively provided all the features of Velostrata. There are
some really awesome features such in-place upgrade, and more recently the possibility of
migrating into a container rather than a VM.
Local installation
To download and install locally we first need to select our runtime:
https://cloud.google.com/sdk/downloads
The following are the steps to start locally installing on Linux.
Extract file
Setup paths/reporting: ./google-cloud-sdk/install.sh (or .bat)
Initialize the SDK: gcloud init
Authorization — gcloud auth activate-service-account –key-file [KEY_FILE]
Google Cloud Shell has the following components.
gsutil
PowerShell cmdlets (Windows)
bq Tool
kubectl Tool
Google Cloud Emulators and Components are meant to support testing and development.
There is support for Bigtable, Datastore, Firestore and Pub/Sub Emulators and support for components such as
Bigquery, Kubernetes, etc
To install components.
gcloud components – list, install, update, or remove Google Cloud SDK components
To install “kubectl” we need to install the component with the following syntax.
Figure 1 Kubectl
Objectives Section 6 – Ensuring solution and
operations reliability
This section is focused on maintain our cloud solutions in a professional manner that supports operations. Main
areas of focus are around Stackdriver and cloud development best practices.
It is important to go into the exam appreciating that Google defines best practices somewhat clearly and that
the exam will reference existing industry best practices for design and migrations
In a nutshell we select the platform then we select metrics and then we will choose how to monitor or view.
The monitoring dashboard in the figure above is just a sample of what could be customized.
It works simply by selecting the Resource and then available metrics you would like in your dashboard view.
Metrics Explorer lets you build charts for any metric collected by your project.
Test Tip – You can setup alerts via email, SMS. PagerDuty, Web apps,
webhooks and even webhooks
Stackdriver Logging
Logging supports these destinations for exported log entries. These exports are facilitated with the Logging
API
Cloud Storage
BigQuery
Pub/Sub
Logging Agent
The Logging agent which you would install on a VM is based on Fluentd. Fluentd is an open source data
collector, which lets you unify the data collection and consumption for a better use and understanding of data.
Fluentd is used to obtain or write log files to syslog and other supported log types.
Log Sinks
#gcloud logging sinks create
Sinks can be set up at the Google Cloud project level, or at the organization or folder levels using aggregated
sinks.
To view existing sinks, you must have the IAM roles Viewer or Logging/Logs Viewer in the sink’s parent
resource
Logs
Your GCP project has several logs that are relevant to a GKE cluster. These include the Admin Activity log,
the Data Access log, and the Events log.
Table 3.1 shows the current options Log Info and how long Google Cloud log retention trivia for the exam.
Logs Router checks each log entry against existing rules to determine which log entries to discard, which log
entries to ingest into Cloud Logging, and which log entries to export using log sinks.
https://cloud.google.com/logging/quotas
For more exam study content, practice questions with answers/explanations please check out the Google
Cloud Professional Cloud Architect Exam – All in One Guide.
6.2 Deployment and release management
Deployment Manager is an infrastructure deployment service that automates the creation and management of
Google Cloud Platform resources for you.
Python or Jinja2(Templates)
https://support.google.com/cloud/answer/6305667?hl=en
There is also billing support for billing related support and free developer support.
Quality control can be defined as “part of quality management focused on fulfilling quality
requirements.“
Quality assurance can be defined as “part of quality management focused on providing confidence
that quality requirements will be fulfilled.” The confidence provided by quality assurance is
twofold—internally to management and externally to customers, government agencies, regulators,
certifiers, and third parties.
For example, we could use Stackdriver metrics to help identifying issues with our applications and confirm
they are performing as expected.