My DevOps Workshop Project

Cloud infrastructure & Kubernetes orchestration



Presented by: Bar M.

Introduction

  • Created cloud infrastructure using Terraform
  • Deployed a Kubernetes cluster on AWS EKS
  • Containerized and deployed a full-stack application
  • Used Git and GitHub for version control
Introduction Icon

Project Overview

A high-level view of the application components:

Project Overview Diagram

Live Demo Time! 🎉

Check out the application at:

https://barm.wix-devops-workshop.com/

Created Cloud Infrastructure using Terraform

Utilized Terraform to automate the creation and management of cloud infrastructure on AWS.

  • Defined Infrastructure as Code (IaC) with Terraform scripts.
  • Provisioned resources such as VPCs, subnets, security groups.
  • Managed state in s3 bucket.
  • configured EKS cluster and used helm charts with terraform.
Terraform Logo

Deployed a Kubernetes Cluster on AWS EKS

Set up a scalable and highly available Kubernetes cluster using Amazon EKS.

  • Configured node groups and aws loadbalancer.
  • Integrated with AWS load balancer controller.
  • Used Helm charts to install things like lb controller
  • Managed manifests (deployments and services) via kubectl.
    frontend service Manifest
AWS EKS Logo

Containerized and Deploy - Used Nginx to Serve Frontend and Proxy Backend Requests

Built Docker images for frontend and backend services.

Implemented Nginx as a reverse proxy and web server to enhance performance and security.

  • Served static frontend assets efficiently. Dockerfile
  • Configured proxy_pass to route API requests to the backend server. Nginx Config
Nginx Logo
Docker Logo

Used Git and GitHub for Version Control

Managed source code and collaboration using Git and GitHub.

  • Maintained repositories with clear commit history.
  • Collaborated through pull requests and code reviews.
  • Implemented branching strategies.
GitHub Logo

Future Architecture

Enhancing traffic routing and simplifying configurations with an Nginx Ingress Controller.

  • Add an Nginx Ingress Controller within the Kubernetes cluster.
  • Improve traffic routing by managing it directly in the cluster.
  • Route:
    • Requests to / → Frontend Service
    • Requests to /api → Backend Service
  • Eliminate custom Nginx configurations in the frontend image.
  • Utilize AWS Network Load Balancer (NLB) to direct external traffic to the Ingress Controller, which handles internal routing.
Future Architecture Diagram

Thank You!

Any Questions?