This two-day instructor-led class equips students to build highly reliable and efficient solutions on Google Cloud using proven design patterns. It is a continuation of the Architecting with Google Compute Engine or Architecting with Google Kubernetes Engine course and assumes hands-on experience with the technologies covered in either of those courses.
Through a combination of presentations, design activities, and hands-on labs, participants learn to define and balance business and technical requirements to design Google Cloud deployments that are highly reliable, highly available, secure, and cost-effective.
Course Objectives
This course teaches participants the following skills:
- Apply a tool set of questions, techniques, and design considerations
- Define application requirements and express them objectively as KPIs, SLOs and SLIs
- Decompose application requirements to find the right microservice boundaries
- Leverage Google Cloud developer tools to set up modern, automated deployment pipelines
- Choose the appropriate Cloud Storage services based on application requirements
- Architect cloud and hybrid networks
- Implement reliable, scalable, resilient applications balancing key performance metrics with cost
- Choose the right Google Cloud deployment services for your applications
- Secure cloud applications, data, and infrastructure
- Monitor service level objectives and costs using Google Cloud tools
Audience
This class is intended for the following participants:
- Cloud Solutions Architects, Site Reliability Engineers, Systems Operations professionals, DevOps Engineers, IT managers
- Individuals using Google Cloud to create new solutions or to integrate existing systems, application environments, and infrastructure
Prerequisites
To get the most out of this course, participants should have:
- Completed Architecting with Google Compute Engine, Architecting with Google Kubernetes, or have equivalent experience
- Basic proficiency with command-line tools and Linux operating system environments
- Systems operations experience, including deploying and managing applications, either on-premises or in a public cloud environment
Course Outline
Module 1: Defining the Service
- Describe users in terms of roles and personas
- Write qualitative requirements with user stories
- Write quantitative requirements using key performance indicators (KPIs)
- Evaluate KPIs using SLOs and SLIs
- Determine the quality of application requirements using SMART criteria
Module 2: Microservice Design and Architecture
- Decompose monolithic applications into microservices
- Recognize appropriate microservice boundaries
- Architect stateful and stateless services to optimize scalability
and reliability - Implement services using 12-factor best practices
- Build loosely coupled services by implementing a well-designed
REST architecture - Design consistent, standard RESTful service APIs
Module 3: DevOps Automation
- Automate service deployment using CI/CD pipelines
- Leverage Cloud Source Repositories for source and version
control - Automate builds with Cloud Build and build triggers
- Manage container images with Google Container Registry
- Create infrastructure with code using Deployment Manager and
Terraform
Module 4: Choosing Storage Solutions
- Choose the appropriate Google Cloud data storage service based on use case, durability, availability, scalability and cost
- Store binary data with Cloud Storage
- Store relational data using Cloud SQL and Spanner
- Store NoSQL data using Firestore and Cloud Bigtable
- Cache data for fast access using Memorystore
- Build a data warehouse using BigQuery
Module 5: Google Cloud and Hybrid Network Architecture
- Design VPC networks to optimize for cost, security, and performance
- Configure global and regional load balancers to provide access to services
- Leverage Cloud CDN to provide lower latency and decrease network egress
- Evaluate network architecture using the Cloud Network Intelligence Center
- Connect networks using peering and VPNs
- Create hybrid networks between Google Cloud and on-premises data centers using Cloud Interconnect
Module 6: Deploying Applications to Google Cloud
- Choose the appropriate Google Cloud deployment service for your applications
- Configure scalable, resilient infrastructure using Instance Templates and Groups
- Orchestrate microservice deployments using Kubernetes and GKE
- Leverage App Engine for a completely automated platform as a service (PaaS)
- Create serverless applications using Cloud Functions
Module 7: Designing Reliable Systems
- Design services to meet requirements for availability, durability, and scalability
- Implement fault-tolerant systems by avoiding single points of failure, correlated failures, and cascading failures
- Avoid overload failures with the circuit breaker and truncated exponential backoff design patterns
- Design resilient data storage with lazy deletion
- Analyze disaster scenarios and plan for disaster recovery using cost/risk analysis
Module 8: Security
- Design secure systems using best practices like separation of concerns, principle of least privilege, and regular audits
- Leverage Cloud Security Command Center to help identify vulnerabilities
- Simplify cloud governance using organizational policies and folders
- Secure people using IAM roles, Identity-Aware Proxy, and Identity Platform
- Manage the access and authorization of resources by machines and processes using service accounts
- Secure networks with private IPs, firewalls, and Private Google Access
- Mitigate DDoS attacks by leveraging Cloud DNS and Cloud Armor
Module 9: Maintenance and Monitoring
- Manage new service versions using rolling updates, blue/green deployments, and canary releases
- Forecast, monitor, and optimize service cost using the Google Cloud pricing calculator and billing reports and by analyzing billing data
- Observe whether your services are meeting their SLOs using Cloud Monitoring and Dashboards
- Use Uptime Checks to determine service availability
- Respond to service outages using Cloud Monitoring Alerts