End-to-End DevOps Automation for Meet Application

Meet Meet is a web-based video conferencing service that allows users to hold real-time face-to-face meetings for free. It is ideal for various use cases such as company meetings, job training sessions, or board member discussions. Features Join Meet: Easily join an existing meeting using a provided link or code. Create Meet: Host your own meeting and invite participants. Audio Controls: Mute and unmute your microphone during the meeting. Video Controls: Turn your camera on or off as needed. In-Call Chatting: Communicate with participants via text chat during the meeting. Link Sharing: Share the meeting link with others for easy access. Meet Code Sharing: Provide a unique meeting code for participants to join. Participants List: View a list of all attendees. Leave Meet: Exit the meeting when you are done. Meet Project End-to-End Implementation In this demo, we will deploy a fully functional Meet application on an AWS EKS (Elastic Kubernetes Service) cluster. Project Deployment Flow: Tech Stack Used in this Project The following technologies are used in this project for deployment, monitoring, and management: GitHub (Source Code Management) Docker (Containerization) Jenkins (Continuous Integration - CI) OWASP Dependency Check (Security Scanning) SonarQube (Code Quality Analysis) Trivy (File System Security Scan) Argo CD (Continuous Deployment - CD) AWS EKS (Kubernetes Orchestration) Terraform (Infrastructure Provisioning) Ansible (Configuration Management) Helm (Monitoring using Grafana and Prometheus) CI/CD Pipelines CI Pipeline (Build & Push) CD Pipeline (Application Deployment) Argo CD Application Deployment on EKS Prerequisites to Implement This Project Why Use Google Cloud? Google Cloud offers a $300 free credit for three months, making it an excellent choice for provisioning heavy instances without incurring costs. This allows us to set up and test our EKS infrastructure efficiently. Master Node Setup Note: This instance will act as the master node and will be used for all EKS cluster operations using Kubectl. It will also be used for Jenkins and Argo CD operations. Create a new Ubuntu 22.04 LTS instance on Google Cloud Machine Type: e2-standard-2 RAM: 8GB vCPUs: 2 Storage: 30GB Open the required ports in firewall rules for the master node Add Public Key to the instance before creation Navigate to Security > Scroll Down to Manage Access > Add Key Paste the Public Key and save it Ansible Provisioner VM Setup Note: This instance is used only for configuration and package installations via Ansible. It is not recommended to run any other workloads on this instance. Create a new Ubuntu 22.04 LTS instance on Google Cloud Machine Type: e2-medium RAM: 4GB vCPUs: 2 Storage: 10GB Install Ansible on the instance Use the following script to install Ansible: #!/bin/bash # Exit immediately if a command fails set -e run_silent() { "$@" >/dev/null 2>&1 } echo "

Mar 21, 2025 - 10:47
 0
End-to-End DevOps Automation for Meet Application

Meet

Meet is a web-based video conferencing service that allows users to hold real-time face-to-face meetings for free. It is ideal for various use cases such as company meetings, job training sessions, or board member discussions.

meet-app-link

Features

  • Join Meet: Easily join an existing meeting using a provided link or code.
  • Create Meet: Host your own meeting and invite participants.
  • Audio Controls: Mute and unmute your microphone during the meeting.
  • Video Controls: Turn your camera on or off as needed.
  • In-Call Chatting: Communicate with participants via text chat during the meeting.
  • Link Sharing: Share the meeting link with others for easy access.
  • Meet Code Sharing: Provide a unique meeting code for participants to join.
  • Participants List: View a list of all attendees.
  • Leave Meet: Exit the meeting when you are done.

Meet Project End-to-End Implementation

In this demo, we will deploy a fully functional Meet application on an AWS EKS (Elastic Kubernetes Service) cluster.

Project Deployment Flow:

project-development-flow

Tech Stack Used in this Project

The following technologies are used in this project for deployment, monitoring, and management:

  • GitHub (Source Code Management)
  • Docker (Containerization)
  • Jenkins (Continuous Integration - CI)
  • OWASP Dependency Check (Security Scanning)
  • SonarQube (Code Quality Analysis)
  • Trivy (File System Security Scan)
  • Argo CD (Continuous Deployment - CD)
  • AWS EKS (Kubernetes Orchestration)
  • Terraform (Infrastructure Provisioning)
  • Ansible (Configuration Management)
  • Helm (Monitoring using Grafana and Prometheus)

CI/CD Pipelines

CI Pipeline (Build & Push)

jenkins-ci-pipeline

CD Pipeline (Application Deployment)

jenkins-cd-pipeline

Argo CD Application Deployment on EKS

argocd-deployment

Prerequisites to Implement This Project

Why Use Google Cloud?

Google Cloud offers a $300 free credit for three months, making it an excellent choice for provisioning heavy instances without incurring costs. This allows us to set up and test our EKS infrastructure efficiently.

Master Node Setup

Note:
This instance will act as the master node and will be used for all EKS cluster operations using Kubectl. It will also be used for Jenkins and Argo CD operations.

  1. Create a new Ubuntu 22.04 LTS instance on Google Cloud
  • Machine Type: e2-standard-2
  • RAM: 8GB
  • vCPUs: 2
  • Storage: 30GB

    1. Open the required ports in firewall rules for the master node gcp-firewalls
    2. Add Public Key to the instance before creation
  • Navigate to Security > Scroll Down to Manage Access > Add Key

  • Paste the Public Key and save it

Ansible Provisioner VM Setup

Note:
This instance is used only for configuration and package installations via Ansible. It is not recommended to run any other workloads on this instance.

  1. Create a new Ubuntu 22.04 LTS instance on Google Cloud
  • Machine Type: e2-medium
  • RAM: 4GB
  • vCPUs: 2
  • Storage: 10GB

    1. Install Ansible on the instance
  • Use the following script to install Ansible:

#!/bin/bash

# Exit immediately if a command fails
set -e

run_silent() {
    "$@" >/dev/null 2>&1
}

echo "