GithubHelp home page GithubHelp logo

durrezahmed / vprofile-project-cicd-aws Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 3.62 MB

This is a DevOps project for CI/CD (Continuous Integration and Continuous Delivery) of vprofile project on AWS Cloud.

Java 81.95% CSS 18.05%
aws aws-codeartifact aws-codebuild aws-codecommit aws-sns cicd sonarcloud amazon-s3

vprofile-project-cicd-aws's Introduction

DevOps Project - Continuous Integration and Continuous Delivery of Vprofile Project on AWS Cloud

This is a DevOps project for CI/CD (Continuous Integration and Continuous Delivery) of vprofile project on AWS Cloud using AWS CodeCommit, AWS CodeArtifact, AWS CodeBuild, AWS Systems Manager Parameter Store, SonarCloud, Amazon S3, AWS CodePipeline, Amazon SNS etc. This project is a continuation of vprofile-project-ci-aws project.

Link for vprofile app repository.

Problem - Issues with Current Situation:

  • In an Agile SDLC, there will be Frequent Code Changes

  • Manual Code Deployment is Time Consuming

  • Developer and Testers not equipped with Ops Knowledge

  • Need to Hire Ops Professionals

  • Or Outsource

  • Dependency on Ops Team

  • CI/CD Server Maintenance

  • Operational Overhead to Maintain Servers like Jenkins, Nexus, Sonar, Git, QA Server for Testing

Solution - Fix:

  • PaaS (Platform as a Service) and SaaS (Software as a Service) Cloud Services

  • Disposable Environment

  • Automate Cl/CD Process

  • Build, Test, Deploy and Test for Every Commit

Benefits - CI/CD Pipeline on Cloud:

  • Short MTTR (Mean Time to Recovery)

  • No Human Intervention

  • Fault Isolation

  • Agile

  • No Ops

AWS Services and Tools used in the Project:

Comparison of Services:

Services Used In Comparison Of
AWS CodeCommit GitHub
AWS CodeArtifact Nexus Sonatype
AWS CodeBuild Jenkins Jobs
SonarCloud SonarQube Server
AWS CodePipeline Jenkins Pipeline
Beanstalk Instances Tomcat VMs
Amazon RDS MySQL VMs

Usage (Flow of Execution) - Cloud CICD Steps:

  1. Login to AWS account - Link to Login to your AWS Account.

  2. AWS CodeCommit

    a. Create CodeCommit Repository

    b. Sync it with Local Repository

  3. AWS CodeArtifact

    a. Create Repository

    b. Update settings.xml file in Source Code Top Level Directory

    c. Update pom.xml file with Repository Details

    d. Generate Token and Store in SSM Parameter Store

  4. Sonar Setup

    a. Create Sonar Cloud account

    b. Generate Token and Store in SSM Parameter Store

    c. Create Build Project

    d. Update CodeBuild Role to access SSM Parameter Store

  5. Create Notifications for SNS or Slack

  6. Build Project

    a. Create Variables in SSM Parameter Store

    b. Create Build Project

  7. Create Pipeline

    a. CodeCommit

    b. Test Code

    c. Build

    d. Deploy to S3 Bucket

  8. Create Elastic Beanstalk and RDS

  9. Update RDS Security Group

  10. Deploy Database in RDS

  11. Update settings.xml and pom.xml files

  12. Create another Build Job to create artifact with buildspec file in repository

  13. Create a Deploy Job to Elastic Beanstalk

  14. Create a Build Job for Software Testing

  15. Upload Screenshot to S3 Bucket

  16. Update Pipeline

    a. CodeCommit

    b. Test Code

    c. Build and Store

    d. Deploy to S3 Bucket

    e. Build and Release

    f. Deploy to Elastic Beanstalk

    g. Build Job for Selenium Test Scripts

    h. Upload result to S3 Bucket

  17. Test Pipeline

vprofile-project-cicd-aws's People

Contributors

durrezahmed avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.