Girish Kulkarni - Portfolio

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.
Visit website

Technologies

AWS

HashiCorp Terraform

JavaScript

Golang

Packer

Postgres

Git

Github

Gin

Github Actions

Postmark

More Applications

main*
Go Live