Architecting with Google Cloud: Design and Process

(2 days)

 

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