Skip to content

Latest commit

 

History

History
131 lines (107 loc) · 5.18 KB

README.md

File metadata and controls

131 lines (107 loc) · 5.18 KB

Registration App Deployment on Amazon EKS


Overview

This project demonstrates the end-to-end process of developing and deploying a Registration App using Amazon EKS, embodying modern DevOps practices. By integrating a range of advanced tools and technologies, this project highlights how to achieve a robust, scalable, and secure application environment.

Key Aspects:

  • Container Orchestration: Amazon EKS manages and scales containerized applications efficiently, ensuring high availability and performance.
  • CI/CD Automation: Jenkins automates the build, test, and deployment processes, facilitating rapid and reliable application updates.
  • Code Quality Management: SonarQube continuously assesses code quality and technical debt, promoting high standards and maintainability.
  • Continuous Deployment: ArgoCD enables GitOps-based continuous deployment, streamlining the deployment process in Kubernetes environments.
  • Security Assurance: Trivy performs thorough vulnerability scans, securing the application from potential threats.
  • Containerization: Docker packages the application and its dependencies into consistent, portable containers, simplifying deployment and scaling.
  • Source Code Management: GitHub supports effective collaboration and version control, enabling smooth development workflows.

This project serves as a comprehensive example of how to leverage contemporary DevOps tools and cloud-native technologies to deliver scalable, secure, and maintainable applications.

Key Technologies & Tools

  • Amazon EKS: For container orchestration and management.
  • Jenkins: Automates the CI/CD pipeline for efficient build, test, and deployment.
  • SonarQube: Ensures continuous code quality and technical debt management.
  • ArgoCD: Provides GitOps-based continuous deployment for Kubernetes.
  • Trivy: Conducts vulnerability scans to enhance application security.
  • Maven: Manages builds and dependencies.
  • GitHub: Facilitates source code management and collaboration.
  • Docker: Packages applications and dependencies into containers.

Project Highlights

  • Efficient CI/CD Pipeline: Automated build, test, and deployment with Jenkins.
  • High Code Quality: Continuous code quality checks with SonarQube.
  • Secure Deployments: Vulnerability scanning using Trivy to ensure application security.
  • Continuous Deployment: Automated deployments with ArgoCD in a Kubernetes environment.
  • Scalable and Reliable: Utilized Amazon EKS for managing and scaling containerized applications.
  • Containerization: Leveraged Docker for consistent and portable application deployment.
  • Version Control: Managed source code effectively with GitHub.

Directory Structure

.
├── server
│   ├── src
│   │   ├── main
│   │   │   └── java
│   │   │       └── com
│   │   │           └── example
│   │   │               └── Greeter.java
│   │   ├── site
│   │   │   └── apt
│   │   │       └── index.apt
│   │   ├── test
│   │   │   └── java
│   │   │       └── com
│   │   │           └── example
│   │   │               └── TestGreeter.java
│   ├── pom.xml
├── webapp
│   ├── src
│   │   └── main
│   │       └── webapp
│   │           └── WEB-INF
│   │               └── index.jsp
├── Dockerfile
├── Jenkinsfile
├── README.md
├── test
├── pom.xml

Getting Started

Prerequisites

  • Docker
  • Kubernetes
  • Amazon EKS cluster
  • Jenkins
  • SonarQube
  • ArgoCD
  • Trivy
  • Maven
  • GitHub account

Setup Instructions

  1. Clone the Repository

    git clone https://github.com/Denish3436/project-1.git
    cd project-1
  2. Build the Application

    mvn clean install
  3. Build and Push Docker Image

    docker build -t your-dockerhub-username/registration-app:latest .
    docker push your-dockerhub-username/registration-app:latest
  4. Deploy to Amazon EKS

    • Apply Kubernetes manifests
    kubectl apply -f k8s/deployment.yaml
    kubectl apply -f k8s/service.yaml
  5. Set Up Jenkins Pipeline

    • Configure your Jenkinsfile in your Jenkins server.
    • Set up the pipeline to automate the build, test, and deployment stages.
  6. Integrate SonarQube

    • Configure SonarQube to analyze code quality.
    • Integrate SonarQube with Jenkins for continuous code quality checks.
  7. Integrate ArgoCD

    • Deploy ArgoCD on your Kubernetes cluster.
    • Configure ArgoCD to automate continuous deployment of your application.

Notes

This project was developed to demonstrate my skills in deploying scalable, secure applications using modern DevOps practices. It showcases my proficiency with Kubernetes, CI/CD pipelines, and cloud-native technologies, and is intended to highlight my capabilities for job applications and career opportunities.

Contact

If you have any questions or would like to discuss this project further, feel free to reach out to me on LinkedIn or via email.

Thank you for checking out my project!