AWS is one of the cloud service providers. In this post, I will put my focus on tools for a pipeline, source code repository, build and deployment with Amazon Web Services
Build and Deployment Tools using AWS services AWS CodePipeline AWS CodeCommit AWS CodeBuild AWS CodeDeploy
1) AWS CodePipeline
AWS CodePipeline is the CI/CD Pipeline which helps to have a visual view of the end to end delivery process of an Application.
In a CodePipeline, usually, we configure the following: Source Code Repository: Source code repository services in AWS are Coode commit, S3 and GitHub
Build Service: AWS Code Build will be configured as part of the CI/CD pipeline. Deploy: AWS code deploy will be configured into the pipeline
2) AWS Code Commit
AWS Code Commit is a private Git repo on AWS and also secure Version Control Service (VCS). A Team can use AWS Code Commit to store their source code or even binaries like the EAR/WAR/JAR files generated out of the build.
AWS CodeCommit has several benefits: Fully managed Able to store anything Highly available Offers faster development lifecycles Works with your existing tools Secure
3) AWS Code Build
AWS CodeBuild fetches the latest changes of the source code from AWS CodeCommit or GitHub repository as configured and based on the build specification YAML file created as buildspec.yml; the commands in the buildspec.yml are run based on the four phases like Install, Pre-build, Build and Post-build.
After the build is completed the artifacts (ZIP/WAR/JAR/EAR) are stored in the AWS Storage which is an S3 bucket.
4) AWS Code Deploy:
AWS Codedeploy Is The Deployment Service That Automates The Deployment Of The Application (In This Case WAR File Which Is Stored In S3) To The Amazon EC2 Instance Or On-Premise Instance.
now the artifacts stored in S3 bucket which was generated using AWS CodeBuild the artifacts are then picked up from the S3 bucket and deployed appropriately to the app server JBoss or Tomcat etc. in the AWS EC2 instance provisioning or on-premise server
AWS CodeDeploy depends on a YAML file called and specified in the appspec.yml which contains the instructions on the deployment to the EC2 instances or on the premise environment.