Defining the flow of your code — from commit to deployment

Jigar R
2 min readJul 19, 2022

--

There are multiple tools that helps to

  • store code? — tools that can be used Github, Gitlab, Bitbucket, CodeCommit
  • build code? — tools that can be used Jenkins, TravisCI, CodeBuild, Gitlab runner
  • deploy code? — tools that can be used CodeDeploy, Jenkins

You can see how code can flow from a commit to a repository, to deployment in production. In some sense, the code is flowing like water in a pipeline. CodePipeline tool helps to put all of these phases together.

Imagine a developer committed code, the automation kicked in — the code was built, deployed to a test environment and then eventually deployed to production. There was no manual overhead in between meaning it was deployed smoothly or continuously. This is known as Continuous Deployment.

Let’s say, you have mission critical application where, before the code actually gets deployed in production, you need to get an approval. Note that the code was not deployed smoothly but it was delivered. Just an approval/approvals away from deployment! This is known as Continuous Delivery.

If we strip off automated deployment part meaning developer pushed code, it was built. But one would need to perform some manual steps to deploy it. In this case, the code was built automatically. A code might have been compiled using a compiler, tested using some testing framework, analyzed using various code-analysis tools such as FindBugs, SonarQube. As you can see that building code requires one to integrate bunch of different tools. This is known as Continuous Integration.

Continuous Deployment = Continuous Integration + Automated deployment

Continuous Delivery = Continuous Integration + Automated deployment with approval

Putting various stages together

A sample Pipeline — Snapshot from AWS CodePipeline Console

Components of a pipeline can be seen in following diagram

Components of a pipeline from concepts.html

So far we looked how to define various aspects for an application. CodeStar tool can create the whole flow for an application automatically.

In this post, I covered following concepts at a higher level

  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment
  • CodePipeline
  • CodeStar

References:

--

--

Jigar R
Jigar R

Written by Jigar R

DevOps Engineer | feel free to reach out to me | LinkedIn — https://www.linkedin.com/in/jigarrathod/

No responses yet