AWS CICD

Satyanarayana Gaddamanugu
2 min readJun 25, 2021

This is all about automating the deployment. CI means Developers push the code to a code repository often (GitHub / CodeCommit /Bitbucket / etc…). A testing/build server checks the code as soon as it’s pushed (CodeBuild /Jenkins CI/ etc…). A testing/build server checks the code as soon as it’s pushed (CodeBuild / Jenkins CI/ etc…). CD means Ensure that the software can be released reliably whenever needed and also deployments happen often and are quick. That usually means automated deployment CodeDeploy.

  1. CodeCommit: An version control is the ability to understand the various changes that happened to the code over time. All these are enabled by using a version control system such as Git.
  2. Benefits are:

A.Collaborate with other developers

B.Make sure the code is backed-up somewhere

C. Make sure it’s fully viewable and auditable

Git is expensive. It is free public repositories and paid private ones.

But AWS code commit is private repositories.

CodePipeLine features are:
• Continuous delivery

• Visual workflow

• Source: GitHub / CodeCommit / Amazon S3

• Build: CodeBuild / Jenkins / etc…

• Load Testing: 3rd party tools

• Deploy: AWS CodeDeploy / Beanstalk / CloudFormation / ECS…

• Made of stages:

• Each stage can have sequential actions and / or parallel actions

• Stages examples: Build / Test / Deploy / Load Test / etc…

  • Manual approval can be defined at any stage

CodeBuild: It is a fully managed build service and Alternative to other build tools such as Jenkins. Source Code from GitHub / CodeCommit / CodePipeline / S3… Build instructions can be defined in code (buildspec.yml file). Buildspec.yml file must be at the root of your code.

There are four phases to define in commands.

Phases (specify commands to run):

• Install: install dependencies you may need for your build

• Pre build: final commands to execute before build

• Build: actual build commands

  • Post-build: finishing touches (zip output for example)

CodeDeploy: We want to deploy our application automatically to many

EC2 instances. These instances are not managed by Elastic Beanstalk. Each EC2 Machine (or On-Premise machine) must be running the CodeDeploy Agent. The agent is continuously polling AWS CodeDeploy for work to do. It sends an appspec.yml file.

--

--