AWS Codepipeline: Advantages and Disadvantages

  1. Within the AWS architecture. You do not have to expose keys to the outside world to be able to trigger builds. If your CI/CD provider lies outside and gets hacked exposing AWS keys, the hacker can do anything with your AWS account.
  2. Pipeline as Code: Any Infrastructure as Code solution for AWS (such as Terraform or Cloud Formation) would also work for Codepipeline. Additionally, within the Codepipeline, AWS allows you to configure the build part with the help of yaml files.
  3. Managed by AWS: You do not have to install Codepipeline yourself, or even provision a set of agents. AWS does all of that for you.
  4. Fairly powerful: It gives you most features that other CI/CD providers have.
  1. The console UI and the overall usability is bad. With CI/CD systems, usability is often the difference between people following practices diligently and not following them.
  2. It forces unnecessary rules. For example, you have to specify a source, which has to be either S3, AWS CodeCommit, Github or a few others. If you want to pickup the source from a custom location, you have to come up with hacks such as specify a dummy source and then create a codebuild stage to pull the custom source.
  3. Codepipeline has to be composed of multiple AWS services like CodeCommit, Codebuild, Codedeploy etc. This makes it extremely complicated and overly dependent on AWS .For example, the build stage has to be a CodeBuild module. CodeBuild is another AWS service, which you can assume is similar to a build agent.
  4. It is a walled garden. The agents will be on AWS, the infra will be on AWS, the CI/CD server is on AWS. It makes all your infra completely dependent on AWS.
  1. When you don’t want to expose your secrets to the outside world.
  2. When all your infra including the repository is hosted on AWS.
  3. When multiple apps have similar deployments and you want to reuse either the codebuild or the terraform modules.
  1. When you want simplicity and don’t want to spend too much time or money managing pipelines.
  2. When you have multiple apps and they have different deployment styles or mechanisms.
  3. When your CI/CD workflow includes E2E tests and fan-in / fan-out of pipelines. GoCD excels in that, Codepipeline is average.

--

--

--

Educator, Founder @ Interleap

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Reflecting on the first 10 days of neurithm.

Three Lessons I Learned from Teaching Kids How To Code

5 Extensions you should absolutely have in your browser.

Instagram feeds with Instagram API : Part 1 Create App and Token

Automating Facebook Posts with Python using Selenium

The Perfect Gift for the Tech Executives in your life…

I did the damn things.

‘HelloWorld’ with Turtle Graphics in Python

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abhinav

Abhinav

Educator, Founder @ Interleap

More from Medium

Exception Handling

MLH Fellowship GitHub Docs Engineering Issue — Colored Labels

Part 3: Technical Interview- An Enigma Explained

Serverless Architecture looks like in AWS!