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.