Skip to content
View RamaRaju-vj's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Block or report RamaRaju-vj

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RamaRaju-vj/README.md

πŸ‘¨β€πŸ’» I’m currently a Software Engineering Grad Student @ Northeastern University.



βš’οΈ Languages-Frameworks-Tools βš’οΈ



Featured Projects

[!NOTE]
Web Application Repo: https://github.com/RamaRaju-personal-org/webapp
Infra Repo : https://github.com/RamaRaju-personal-org/tf-gcp-infra

Tech stack used for project

GCP Terraform NodeJS Packer Google Cloud Functions GitHub Actions Mailgun

overview

This Project comprises a cohesive collection of repositories intended to streamline the deployment of a secure, scalable, and highly available web application on the Google Cloud Platform (GCP). By leveraging Terraform for infrastructure automation, Google Cloud Functions for serverless execution, and Node.js for backend development, this project provides a robust solution for deploying and managing contemporary, cloud-native applications. Additionally, it utilizes Packer for creating immutable machine images, GitHub Actions for CI/CD, and ensures data security with encryption managed by Google Cloud Keys.

Architecture

flow drawio

Project Highlights

: RESTful APIs

The backend is built with Node.js, offering RESTful APIs for user management, including registration, profile retrieval, updates, and health checks. Secure access is maintained using Basic HTTP authentication and Base64 encoding. User passwords are securely stored in a MySQL database with Bcrypt hashing.

: Automated GCP Infrastructure

Terraform is used for Infrastructure-as-Code (IaC) to automate and provision a secure GCP environment, including VPC, subnets, routes, firewalls, Compute Engine, Cloud SQL (MySQL database), Cloud Storage, Cloud Functions, load balancer, Cloud DNS, Google-managed SSL certificates, and encryption keys.

: Immutable Server Deployments

Packer and GitHub Actions are utilized to create immutable machine images with pre-built application artifacts, ensuring code integrity. Terraform provisions these images into VMs, eliminating manual SSH configurations. Deployment is automated with startup scripts that configure database connections and start the application.

: CI/CD with GitHub Actions

GitHub Actions is used to set up a CI/CD pipeline, automating testing and deployment.

: Event-Driven User Verification

Google Pub/Sub and Mailgun are used for email verification, sending unique verification links upon account creation. A Cloud Function and Cloud SQL handle the verification process, ensuring secure user registration and API access.

: Application Logging and Metrics

Structured JSON logging streams log data to Google Cloud Observability, enhancing diagnostic capabilities.

: Scalability and Security

The application leverages dynamic scaling, load balancing, security groups, IAM roles, and customer-managed encryption keys for enhanced scalability and security.

🐍 My Contributions 🐍


snake eating my contributions




Pinned Loading

  1. RamaRaju-personal-org/tf-gcp-infra RamaRaju-personal-org/tf-gcp-infra Public

    HCL 1

  2. RamaRaju-personal-org/webapp RamaRaju-personal-org/webapp Public

    JavaScript 1

  3. tf-gcp-infra tf-gcp-infra Public

    Forked from RamaRaju-personal-org/tf-gcp-infra

    HCL

  4. RamaRaju-personal-org/ami-jenkins RamaRaju-personal-org/ami-jenkins Public

    This has code for installing jenkins on linux machine and creating an AMI

    Shell 1

  5. RamaRaju-personal-org/EKS-Infra RamaRaju-personal-org/EKS-Infra Public

    Terraform code for AWS EKS cluster

    HCL 1

  6. RamaRaju-personal-org/microservices_project RamaRaju-personal-org/microservices_project Public

    Shell 1