AWS CodeBuild vs Packer: What are the differences?
AWS CodeBuild: Build and test code with continuous scaling. AWS CodeBuild is a fully managed build service that compiles source code, runs tests, and produces software packages that are ready to deploy. With CodeBuild, you don’t need to provision, manage, and scale your own build servers; Packer: Create identical machine images for multiple platforms from a single source configuration. Packer automates the creation of any type of machine image. It embraces modern configuration management by encouraging you to use automated scripts to install and configure the software within your Packer-made images.
AWS CodeBuild can be classified as a tool in the "Continuous Integration" category, while Packer is grouped under "Infrastructure Build Tools".
Some of the features offered by AWS CodeBuild are:
- Fully Managed Build Service
- Continuous Scaling
- Enables Continuous Integration
On the other hand, Packer provides the following key features:
- Super fast infrastructure deployment. Packer images allow you to launch completely provisioned and configured machines in seconds, rather than several minutes or hours.
- Multi-provider portability. Because Packer creates identical images for multiple platforms, you can run production in AWS, staging/QA in a private cloud like OpenStack, and development in desktop virtualization solutions such as VMware or VirtualBox.
- Improved stability. Packer installs and configures all the software for a machine at the time the image is built. If there are bugs in these scripts, they'll be caught early, rather than several minutes after a machine is launched.
"Pay per minute" is the top reason why over 4 developers like AWS CodeBuild, while over 24 developers mention "Cross platform builds" as the leading cause for choosing Packer.
Packer is an open source tool with 9.1K GitHub stars and 2.47K GitHub forks. Here's a link to Packer's open source repository on GitHub.
Instacart, Oscar Health, and MAK IT are some of the popular companies that use Packer, whereas AWS CodeBuild is used by Convox, Volta Industries, and ChromaDex. Packer has a broader approval, being mentioned in 115 company stacks & 21 developers stacks; compared to AWS CodeBuild, which is listed in 21 company stacks and 14 developer stacks.
What is AWS CodeBuild?
What is Packer?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using AWS CodeBuild?
What are the cons of using Packer?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
LaunchDarkly is almost a five year old company, and our methodology for deploying was state of the art... for 2014. We recently undertook a project to modernize the way we #deploy our software, moving from Ansible-based deploy scripts that executed on our local machines, to using Spinnaker (along with Terraform and Packer) as the basis of our deployment system. We've been using Armory's enterprise Spinnaker offering to make this project a reality.
Our base infrastructure is composed of Debian based servers running in Amazon EC2 , asset storage with Amazon S3 , and Amazon RDS for Aurora and Redis under Amazon ElastiCache for data storage.
We are starting to work in automated provisioning and management with Terraform , Packer , and Ansible .
The open-source Convox Platform-as-a-Service is built entirely on AWS cloud services.
Through this lens, it's been obvious that AWS has been missing a managed build service. For the past year we've had to work around this by building our own build service on ECS and ECR. You can read more on my AWS Missing Parts: Build Service blog post.
So I'm excited to finally have this service. After a quick weekend prototype, the service works as expected and will unlock Cheaper, Faster and Safer Builds for our systems.
This is a classic AWS service. It's tricky to figure out all the options. I recommend jumping straight to the Docker example docs:
You'll need to figure IAM, Build Project JSON, and Build Spec YAML to get it all working.
But once you do, you've unlocked managed builds on small, medium or large compute types. No instances required!