1

I'm considering what is better and easier to use for CI/CD pipeline between Jenkins and AWS CodeDeploy.

e.g. Jenkins server request webhook to git repo(github), and deploy to EC2.

e.g. When push to git repo, deploy to EC2 go through codeDeploy.

Thank you for your help!!

2 Answers 2

2

Both are excellent tools, but it depends on your use cases for which is better. I would highly recommend using the entire AWS Ci/Cd suite (CodeBuild/CodePipeline/CodeDeploy) to gain the full benefit of using your resources in AWS. Here are pros for both:

Jenkins

  • Multitude of customizability plugins
  • Integration with all cloud providers (GCP, Azure, etc.)
  • Open sourced
  • Configuration as code through Jenkins Pipelines
  • Able to manage your own Jenkins Server (vs AWS which manages it for you)
  • Customizable GUI

AWS CI/CD

  • No plugins (no dependency hell)
  • Trivial integration with IAM (for both users and infrastructure)
  • Easy integration with AWS Secrets Manager, KMS, and other secret management tools
  • AWS managed infrastructure
  • Infrastructure as code through CloudFormation
  • Scalable out of the box

TLDR; Choose Jenkins if you want more control/configuration of your deployment infrastructure or you are integrating with many non-aws resources, otherwise, choose the AWS CI/CD suite for less overhead and better integration with AWS.

6
  • AWS is familiar to me, actually. And what do you mean about infrastructure as code? Defining and provisioning AWS resources of CI/CD pipeline in CloudFormation like Terraform?
    – Joe Kimchi
    Apr 25, 2019 at 17:48
  • Yep Cloudformation is similar to Terraform. You cloud replace Cloudformation with Terraform. Setting up and configuring a Jenkins server with Terraform is much more complicated than AWS CodeBuild/Deploy/Pipeline with Cloudformation/Terraform
    – Preston Martin
    Apr 25, 2019 at 17:54
  • I got it, it seems some results of Terraform-provider-Jenkins on google would have some issues yet.
    – Joe Kimchi
    Apr 25, 2019 at 19:01
  • 1
    How about Log or Error monitoring if I’m using the AWS Codepipeline. Maybe CloudWatch?
    – Joe Kimchi
    Apr 25, 2019 at 19:05
  • Yes you can also use Cloudwatch Metrics to track any errors or issues during/after a deployment. Sounds like you already have a good grasp of what you can do in AWS :)
    – Preston Martin
    Apr 25, 2019 at 19:56
1

I know a good amount about Jenkins so I can give you specific information about that, but I know virtually nothing about AWS code deploy, that being said using my general AWS knowledge, there are a few things I think I can safely tell you to get started.

  1. Jenkins is open source however you can get hosted Jenkins if you prefer a managed solution. CodeDeploy on the other hand is purely managed so I don't believe you have the option for something such as on prem or any other self hosted solutions.
  2. Part of what gives Jenkins it's incredible power is the massive community following and subsequent plugins that are continuously churned out for Jenkins. In comparison I assume the AWS marketplace may be rather limited as to it's offerings but I can't offer any official word on this.

I hope that helps in some capacity.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.