Case Study - Cloud Native Webapp
Cloud Native Webapp using Gcloud, Go and Postgres
- Industry
- Web Services
- Year
- Service
- Devops & Web Development

Challenge
Build a RESTful API that implements multiple endpoints like /healthz, /v1/user to perform health checks, create/update/verify/fetch users using Node.js, and Sequelize.
-
Test all API endpoints with integration tests using Jest and Supertest.
-
Build a compute engine custom image using Hashicorp Packer and add/configure systemd service file to start the service (RESTful API application) when the instance is launched.
Solution
- Built VPC 🌐, subnets, compute engine, CloudSQL 🗄️ instance and established VPC peering between the VPC network and the CloudSQL service producer's VPC network through Private services access.
- Set up Cloud DNS for my domain and updated the A record pointing to the compute engine's IP address.
- Installed and configured Ops Agent for generating application logs.
- Published messages to Google Pubsub topic 📬 when a new user is created which triggers the Cloud function ☁️ to send verification emails using Mailgun.
- Established connection between Cloud SQL and Cloud function using vpc access connector for tracking emails.
- Built a compute instance template, health check, managed instance group, load balancer ⚖️, external IP address, and Google-managed SSL certificate 🔏 resources using Terraform.
- Used Customer-managed encryption keys 🔑 for encrypting Virtual Machines, CloudSQL Instances, and Cloud Storage Bucket with a 30-day rotation period.
- Applied rolling updates to all instances in the managed instance group when a new version of the application is deployed into production.
Technologies
AWS

HashiCorp Terraform

JavaScript

Golang
Packer

Postgres

Git

Github
Gin
Github Actions
