Philipp: Hello, I am Philipp Maier, a Course Developer at Google. Stephanie: And I'm Stephanie Wong, a Developer Advocate at Google. We want to welcome you to the Reliable Cloud Infrastructure: Design and Process course. Philipp: This course is about architecting, design, and process. A Cloud Architect's job is to determine which Cloud services to use in order to most effectively implement the applications and services they are building. Stephanie: This is not an easy job. Philipp: That's right. Many services seem interchangeable. In many cases, multiple different services would work for the same use case. Stephanie: The intent of this course is to simulate the process you can use to design a system that will run on Google Cloud. This course is not about implementing specific Cloud features. It's about architecture, design, and process. Philipp: We like to joke that the job of an architect is to draw rectangles and point arrows at them. Stephanie: Which, to a certain extent, is true. That is an important step in designing complex systems. In this course, you will focus on that design and planning. Specifically, you will work on architecting and designing a case study in this course. The starting point for any software development is to figure out what the software is supposed to do, who your users are, and why this is important. You will begin with this requirements gathering phase. Philipp: Once you understand your software's requirements and your users, you can start laying out the overall design. In software, this is a process of decomposition, breaking the big thing, your program, into smaller, manageable units that you can start programming. In a modern Cloud based system, it is considered a best practice to break your application into microservices. Stephanie: Microservices refers to an architectural style for developing applications. Microservices allow a large application to be decomposed into independent constituent parts with each part having its own area of responsibility. To serve a single user or API requests, a microservice's base application can call many internal microservices to compose its response. Philipp: The architecture in the course will be microservice based. This has a significant effect on the agility of the application and aspects such as developing speed, deployment, and monitoring. We will consider the advantages and disadvantages of this architectural style. We'll also help you choose the best storage and deployment services using objective criteria. Stephanie: Choosing the right ones can be complicated. Do you want a relational database, a NoSQL database, or a data warehouse? You also need to consider your compute platform. Do you want to deploy your apps to virtual machines, a Kubernetes cluster, or an automated platform, like App Engine? Philipp: You will learn what the factors and how to choose the right services for your various microservices. Stephanie: Google provides many services that you can use to make your applications reliable. Availability, durability, cost, and disaster recovery are all important considerations when designing systems. If you understand your requirements, you can choose the right Google Cloud services to meet your application's goals for reliability, while optimizing costs. Philipp: Now, there's a saying, "Security is not icing on the cake. It is baked into the cake." Before implementing a system on Google Cloud, you should carefully consider its security requirements and use the appropriate security services. Security in computer systems is implemented in layers. Google Cloud handles some things for you. Stephanie: For example, Google secures the physical hardware that Google Cloud is running on. Google also provides many controls to help secure your applications and data. Philipp: Security is a shared responsibility, though. The way you configure your networks, storage services, and machines will determine how your application is secured. When you design your case study, you will consider its security requirements and bake them into the design. Stephanie: At the end, you will monitor your app to see whether you're meeting your service objectives. In Google Cloud, there are many services for monitoring your applications. Philipp: These include dashboards, logs, error reporting, and tracing. You start by defining your application requirements. As you develop your solution, you can use the monitoring tools to determine how successful you are at meeting your application goals. Stephanie: The Reliable Cloud Infrastructure: Design and Process course is a part of the Cloud Infrastructure learning path. This path is designed for IT professionals who are responsible for implementing, deploying, migrating, and maintaining applications in the Cloud. Philipp: The prerequisite for this course is either the Architecting with Google Compute Engine or the Architecting with Google Kubernetes Engine course. Stephanie: In other words, this course is not intended to be your first exposure to Google Cloud. Philipp: Now, the course consists of lecture, design activities, and hands-on labs. Stephanie: You should spend a significant amount of time on the design and architecture assignments we will give you. As with many situations, there will be no one right answer and typically, different people come up with different solutions. Architecting systems is a matter of weighing the pros and cons of various solutions and trying to find the best solution given your requirements and constraints. Philipp: Now, the more effort you put into these design activities, the more you will learn from this course. Stephanie: Besides this introduction module, there are nine modules in this course. Philipp: First, you will analyze and design a case study application using a microservice architecture. Stephanie: Then, we will cover Google Cloud tools for DevOps and automation, and you will choose the appropriate storage services for your case study. Philipp: After that, you will learn about network design for Cloud and Hybrid applications, and learn how to choose the appropriate deployment service. Stephanie: We will finish by designing for reliability and security and by monitoring your applications.