Non-italicised points represent notes taken from Google’s official case study documentation, with keywords highlighted in bold. Points in italics represent additional insights and possible solutions.
Company Overview
- Community application
- Communication between people in close proximity
- Streaming data: Cloud IoT Core, Pub/Sub
- Data synchronization: Cloud Firestore
- Communication between people in close proximity
- Event planning, organizing sporting events, businesses to connect with local communities
- Initial launch in Dallas—growing into global phenomenon
- Global and multi-regional resources
Executive Statement
- Go global—communities to span global regions
- Desire rapid growth
- PaaS, managed services
Solution Concept
- Expand existing service
- Update functionality
- New locations
- Hire/train new teams to support each location in local timezone
- Ensure:
- Smooth autoscaling
- MIGs, Serverless
- Provide clear uptime data
- Analyse/respond to issues
- Smooth autoscaling
Existing Technical Environment
- Mixture of on-prem and Google Cloud infrastructure
- Team understands app, but limited experience of globally scaled apps
- Prefer managed solutions
- APIs run on Compute Engine instances
- Migrate to Cloud Endpoints, Google Cloud API Gateway or Apigee
- State stored in single MySQL instance in Google Cloud
- Migrate to Cloud SQL or Cloud Spanner
- Release cycles—dev freezes during QA testing
- Require separate dev, QA and prod environments
- CI/CD process with automated testing
- No consistent logging
- Cloud Logging
- Install logging agent on GCE instances
- Deployments manual by infrastructure engineers during quiet periods
- CI/CD: Cloud Build, Spinnaker
- Canary, blue/green deployments
- Basic SLIs—uptime alerts fired when APIs unresponsive
- Improve with Cloud Monitoring
Business Requirements
- Expand to new locations—consistent experience
- Global Load Balancing
- Regional compute
- Cloud CDN
- Support 10x as many concurrent users
- Autoscaling: MIGs
- Collect user metrics—monetize product
- BigQuery or Cloud Bigtable for time-series data
- Cloud Logging, Cloud Domains
- Ensure regulatory compliance (e.g. GDPR)
- Reduce infrastructure management time and cost
- IaC, e.g. Terraform
- Migrate on-prem to Google Cloud
- Adopt Google best practices:
- Workflows/process—application lifecycle management
- Agile, CI/CD, canary deployments
- Define SLIs and SLOs
- Workflows/process—application lifecycle management
Technical Requirements
- Secure communications between on-prem and Google Cloud
- TLS, Cloud VPN, Cloud Interconnect
- Usage metrics/monitoring
- APIs—authentication/authorization
- OpenAPI, Cloud Endpoints/Google Cloud API Gateway/Apigee
- Internal apps: Identity Aware Proxy
- Implement faster/more accurate validation of new features
- Canary deployments, A/B testing
- Logging/performance metrics—actionable information, debugging and alerts
- Scale to meet user demands
- MIGs, Google Cloud Load Balancing
- Migrate to serverless: App Engine, Cloud Run, Cloud Functions