Google Cloud Certified Professional Cloud Developer
Curriculum Specialist in Business Development
This course will prepare you for the Google Professional Cloud Developer certification, and all sections are based on the outlined objectives Google published for preparation for the exam. We've also included detailed walkthroughs and hands-on labs to help reinforce the concepts we cover throughout the course.
In Section 1, we discuss best practices for designing highly scalable cloud-ready systems. We will explain best practices for designing performant application interfaces as well as designing secure applications. Following that, we will briefly describe how to best manage application data when migrating to the cloud as well as best practices to follow when re-architecting on-premises applications for migration to the cloud.
Section 2 covers best practices for building and testing applications. The first part of the section covers setting up our development environment for Google Cloud Platform applications. Next, we will look at building a continuous integration pipeline and its benefits. After that, we will get a high-level overview of testing code and major types of testing involved with software development. In the last lesson of the section, we will briefly look at considerations for writing code for cloud-based applications.
Section 3 covers best practices for deploying applications to the Google Cloud Platform. We will first discuss implementing the appropriate deployment model for our particular application. In the next lesson, we will look at considerations for deploying applications to compute engine. Then, we will explain the primary benefits of Google Kubernetes Engine and how to create our first cluster and deploy software to it. In lesson four, we will describe the benefits of using Google App Engine and the basic process for deploying software to App Engine as well as the support for software versions within App Engine. Lesson five provides a high-level overview of cloud functions and how to deploy one. In lesson six, we will look at the wide variety of cloud storage resources supported by the Google Cloud Platform and use cases they support for applications. In the last lessons of this section, we will cover high-level networking issues, automating resource provisioning, and implementing service accounts.
In Section 4, we will discuss products and techniques we can use to integrate an application with Google Cloud Platform services. In the first lesson, we will cover methods to integrate our application with Google Cloud Storage services. Next, we will exlain the options to integrate applications with various Compute Services offered by the Google Cloud Platform. In the last part of this section, we will go over examples of integration with Google Cloud API services.
Finally, we will discuss managing application performance using tools provided by Google Cloud Platform. In the first lesson, we will look at the process to install the logging and monitoring agent for virtual machines. Following that, we will go over troubleshooting techniques we can use to manage virtual machines. Then, we will discuss many of the features of Stackdriver and how we can use them to monitor and manage an application's performance. In the last lesson of this section, we will look at some tips and techniques to diagnose and resolve application performance issues.
Google Cloud Certified Professional Cloud Developer
In this lesson, we will walk through all the major content for this course. We will describe the material contained in each of the five major sections of this course.
About the Training Architect
This video contains a brief introduction and provides background information about the Training Architect who developed this course.
Using the Interactive Diagram
In this lesson, we will describe how to use the interactive diagram that accompanies this course.
Course Features and Tools
In this lesson, we will explain the basic course features offered in this course.
Google Cloud Platform Case Study
In this lesson, we will review the critical points of the Google-supplied case study that is part of this certification. We will examine the high-level requirements and some of the implications of these requirements as well as some potential solutions.
1. Designing Highly Scalable, Available, and Reliable Cloud-Native Applications
1.1 Designing Performant Applications and APIs
In this section, we will discuss considerations for designing performant applications and APIs. We will look at some of the trade-offs to consider with portability and platform-specific design. Then, we will evaluate different service technologies and how they might apply to your particular application. We will also look at the geographic distribution of Google Cloud services and some things to consider when selecting a hosting location. Then, we will discuss best practices for cloud-based applications, such as implementing a microservices architecture and some of its implications. Finally, we have included a brief discussion on the benefits of designing loosely coupled systems and how you can implement this within the Google Cloud Platform.
1.2 Designing Secure Applications
In this section, we will look further into designing secure applications. In particular, we will go over common types of regulatory requirements for both publicly traded companies and government organizations. We will also discuss some of the mechanical ways you can secure your applications, including storing and rotating secrets as well as the proper use of service accounts.
1.3 Managing Application Data
In this section, we will go over designing database schemas for Google-managed databases, such as Cloud Datastore. Also, we will look at considerations for using the correct data storage option based on your particular use case. We will then discuss factors you should consider when selecting storage systems for your specific application. Finally, we will cover working with data ingestion systems.
1.4 Re-Architecting Applications from Local Services to Google Cloud Platform
In this section, we will look at re-architecting applications from local services to Google Cloud Platform services. In particular, we will explore the advantages of utilizing managed services for applications. We will also look at using the strangler pattern for system migration. Finally, we will examine the benefits of using the ideas in this pattern and how they can make for a successful cloud migration.
2. Building and Testing Applications
2.1 Setting up Your Development Environment
In this lesson, we will explore setting up a development environment for Google Cloud Platform projects. We will describe how to set up emulating GCP services for local application development as well as the process for creating new GCP projects and assigning permissions to them.
2.2 Building a Continuous Integration Pipeline
In this lesson, we will discuss some of the aspects of building a continuous integration pipeline on Google Cloud Platform. We will first look at a basic high-level definition of continuous integration and continuous delivery and what products and services are available to implement this on Google Cloud Platform. Then, we will go over a simple example of the flow for continuous integration and continuous delivery and how to integrate existing Google products to implement this.
Testing is one of the most critical aspects of software delivery to ensure your product meets customer needs. In this section, we will outline three different types of testing (performance testing, integration testing, and load testing) and some considerations for each.
2.4 Writing Code
In this lesson, we will examine some aspects of developing code for your application, including algorithm design, modern application patterns, efficiency, and the importance of utilizing an agile methodology.
3. Deploying Applications
3.1 Implementing Appropriate Deployment Strategies Based on the Target Compute Environment
In this section, we will discuss various software deployment models we can use with cloud-based systems, scenarios in which they're useful, and Google Cloud Platform facilities that support these deployment models. First, we will discuss blue/green deployments and how they can be used to limit risk. Next, we will examine the traffic-splitting deployment model, including its basic definition and use cases that support such deployments. The third type of deployment strategy we will discuss are rolling updates. Finally, we will go over canary deployments and how you can use this type of deployment to test software components in production.
3.2 Deploying Applications and Services on Compute Engine
Deploying applications to Compute Engine is one of the most common tasks to support applications deployed on Google Cloud Platform. In this lesson, we will explore some of the necessary tasks to support deploying applications to Compute Engine. First, we will discuss the detailed steps involved in launching a Compute Engine instance. Following that, we will look at how to create an auto-scaled managed instance group. Next, we will go over the steps necessary to generate and upload a custom SSH key. We will also cover the essential steps to create an instance with a custom startup script. Finally, we will describe the process for creating a load balancer for Compute Engine instances.
3.3 Deploying Applications and Services on Google Kubernetes Engine
In this lesson, we will go over the Google Kubernetes Engine (GKE). First, we will discuss its history as well as some of the advantages and ideal use cases for Kubernetes. Next, we will explore how to deploy a basic GKE cluster and then how to configure that cluster with operating software. Finally, we will look at how to set up logging for a GKE cluster and how to configure load balancing.
3.4 Deploying an Application to App Engine
The Google App Engine is a fully managed service application platform. It supports building and deploying applications and uses many popular languages, such as Java, PHP, Node.js, Python, C#, and Go. In this lesson, we will explore the deployment process to deploy code to App Engine, as well as cover some of the features it supports for developing and deploying applications.
3.5 Deploying a Cloud Function
Cloud Functions is a serverless, event-driven compute platform that allows developers to build highly fault-tolerant, loosely coupled systems. There are no servers to manage, and you only pay for the execution time your code runs. In this section, we will review some of the necessary steps to build and deploy a Cloud Function on GCP. First, we will discuss how to deploy a Cloud Function triggered by an HTTP request. Then, we will look at how to develop and deploy a Cloud Function triggered by an event.
3.6 Creating Data Storage Resources
Interacting with storage systems is one of the most common operations for cloud-based applications. In this lesson, we will describe some of the most common operations necessary to interact with Cloud Storage systems in Google Cloud Platform. First, we will review how to create a cloud repository to store your source code — a necessary operation for developers to maintain control over source code. Next, we will go over the required steps to create a Cloud SQL instance. Following that, we will explain the process to create a BigQuery dataset. Then, we will describe the Google Cloud Platform storage classes and use cases they were designed to support. We will also explain how you can create a Cloud Storage bucket for your applications. Finally, we will cover how to create a Cloud Pub/Sub topic.
3.7 Deploying and Implementing Networking Resources
A virtual private cloud (VPC) is a way to control how workloads connect regionally and globally. At the heart of a VPC is a network that controls communication and access to your company’s resources. In this lesson, we will discuss the basic configuration for VPCs. First, we will describe how to create an auto mode VPC with subnets. Next, we will explain how to create ingress and egress firewall rules for a VPC. Finally, we will cover how to set up a domain using Cloud DNS.
3.8 Automating Resource Provisioning with Deployment Manager
The Google Cloud Deployment Manager allows you to automate deployments and provisioning resources in a very flexible way. The configurations are set up in a declaratory format using YAML, which makes deployments repeatable and increases focus on the quality of an application rather than focusing on the complexity of a deployment. Cloud Deployment Manager also allows you to develop reusable deployment templates for common deployment scenarios. In this section, we will demonstrate how to automate resource provisioning with the Cloud Deployment Manager.
3.9 Managing Service Accounts
A service account is a special type of account associated with an application or a virtual machine. You can assign various permissions to service accounts and then, when your application or virtual machine runs in the context of that service account, it will utilize the permissions belonging to that account. In this lesson, we will describe the process to create a service account. Then, we will explain how to download a key linked to the service account and use that key in an application.
4. Integrating Google Cloud Platform Services
4.1 Integrating an Application with Data and Storage Services
In this lesson, we will cover integrating Google Cloud services with applications. First, we will go over configuring a cloud SQL instance and then how to connect to that instance and populate it with data. Following that, we will look at constructing some basic SQL queries to pull data from our database. Next, we will go over cloud ingestion sources and some of the typical uses for Google Cloud services with ingestion types of applications. Finally, we will talk about configuring Cloud Spanner for basic setup and how to issue simple queries to a Cloud Spanner database.
4.2 Integrating an Application with Compute Services
In this lesson, we will explore integrating applications with Google compute services, including implementing service discovery within Google Cloud Platform. First, we will go over configuring a basic Cloud Pub/Sub topic. Then, we will explain how to read instance metadata to contain configuration information. Next, we will offer a high-level overview of the OAuth 2.0 web flow implemented by Google Cloud Platform. Finally, we will cover command line interface tools as well as how to configure basic network services for Compute Engine.
4.3 Integrating Google Cloud APIs with Applications
In this lesson, we will examine how to integrate Google Cloud API with applications. First, we will cover how to enable the use of a GCP API for a particular project. Next, we will discuss the pre-trained Google machine learning APIs and how to integrate those into applications. Finally, we will cover the basic process of using service accounts to make Google API calls and what is required.
5. Managing Application Performance Monitoring
5.1 Installing the Logging and Monitoring Agent
An application best practice is to set up flexible monitoring for applications and servers. Stackdriver Logging allows you to store, search, analyze, monitor, and alert on log data as well as events from Google Cloud Platform and Amazon Web Services (AWS). In this lesson, we will describe the process for installing the Logging and Monitoring agent on a virtual machine.
5.2 Managing VMs
In this section, we will go over troubleshooting techniques for virtual machine instances, including enabling the serial port and examining the startup logs with those. We will also discuss how to detach a virtual disk and run a file system check on it to ensure it's a valid image. Finally, we will explore the platforms that support the Stackdriver Logging agent and the advantages of installing this on a broad basis.
5.3 Viewing Application Performance Metrics Using Stackdriver
In this lesson, we will review some features of Stackdriver Monitoring. We will start by describing how to quickly and easily create a dashboard. Following that, we will discuss how to view a syslog from a virtual machine that was created by Stackdriver Monitoring. Finally, we will explore how to review stack traces for error analysis and set up log sinks to export your logs into other Google Cloud Platform products.
5.4 Diagnosing and Resolving Application Performance Issues
In this lesson, we will examine some of the tools that support performance monitoring in Google Cloud Platform. First, we will explore how to set up basic alerts using Stackdriver. Then, we will discuss how to set up logging and tracing, as well as resource monitoring and configuring the Stackdriver Debugger. Finally, we will cover sources to use for Google Cloud Platform support.
Preparing for the Exam
In this lesson, I will give you some practical tips to prepare for the Google developers certification. Some of these tips may seem pretty straightforward that they have worked for me and I have taken multiple certifications, and I found them to be effective. Good luck on the exam!
Google Cloud Professional Cloud Developer Practice Exam