CI/CD tools for quickly and often delivery to each environments
If there’s one thing you have in application development, it’s choice. To make the transition to CI/CD a little easier, here’s a brief guide to some of the top tools being used to develop CI/CD ecosystems.
Jenkins CI - Jenkins® is an open source automation server. With Jenkins, organizations can accelerate the software development process by automating it. Jenkins manages and controls software delivery processes throughout the entire lifecycle, including build, document, test, package, stage, deployment, static code analysis and much more.
You can set up Jenkins to watch for any code changes in places like SVN and GitHub, automatically do a build with tools like Ant and Maven, utilize container technology such as Docker and Kubernetes, initiate tests and then take actions like rolling back or rolling forward in production.
Official website: Jenkins
Go CD is the newest Cruise Control incarnation from the ThoughtWorks company. Excluding the commercial support that ThoughtWorks offers, Go is free of charge. It is available for Windows, Mac, and various Linux distributions.
What makes Go stand out from the crowd is the concept of pipelines which makes the modeling of the complex build workflows easy. On the pipeline concept, how it can help with Continuous Delivery and how it compares to Jenkins pipelines you can read here. Go CD supports pipelines from scratch and eliminates build process bottlenecks with the parallel execution of the tasks.
Official website: GoCD
Atlassian Bamboo is the company focused on providing tools for software development teams and you might know them by their tools like JIRA and Bitbucket. Bamboo originally offered both cloud and On-premises solutions, but in the May 2016 the cloud version was discontinued in the favor of the Bitbucket pipelines (accessible through the left panel of your Bitbucket account).
By utilizing the power of Docker, Bitbucket Pipelines is offering very efficient and fast builds that and is rapidly growing and becoming a worthy successor to the Bamboo Cloud.
Bamboo is free to try for 30 days, and after that, there are two plans for small and growing teams. Being the Atlassian tool, it has the native support for JIRA and BitBucket and you can even import your Jenkins configurations into the Bamboo easily.
Official website: Bamboo
GitLab CI is an integral part of the open-source Rails project GitLab, which was brought to light by the company GitLab inc. It is hosted on GitLab.com, a free hosted service and it provides detailed git repository management with features like access control, issue tracking, code reviews and much more.
Official website: GitLab CI
Travis CI is a hosted service specifically for GitHub projects. Because of its tight integration with GitHub, Travis CI is simple to set up. After linking it to a repository, it automatically triggers a new build on each push. Builds can run in Docker containers as well as dedicated virtual machines. Travis CI supports a wide variety of programming languages, build tools, and deployment targets.
Travis CI is free for open source projects and offers subscriptions for private projects.
Official website: Travis CI
CircleCI is unique in that it supports building, testing, and deploying iOS and macOS projects using dedicated Mac virtual machines. You can also build projects using Linux virtual machines and Docker containers. CircleCI also provides a suite of management tools such as troubleshooting build agents over SSH, creating save points during builds, and caching Docker images for future builds.
Official website: CircleCI
Chef is a powerful automation platform that transforms infrastructure into code. Whether you’re operating in the cloud, on-premises, or in a hybrid environment, Chef automates how infrastructure is configured, deployed, and managed across your network, no matter its size.
Official website: Chef
Puppet is an open-source software configuration management tool. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration.
Official website: Puppet
Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications — automate in a language that approaches plain English, using SSH/Winrm, with no agents to install on remote systems.
Official website: Ansible
Crucible is a collaborative code review application by Australian software company Atlassian. Crucible is a Web-based application primarily aimed at enterprise, and certain features that enable peer review of a codebase may be considered enterprise social software.[
Official website: Crucible
Gerrit is code review for Git. Gerrit provides web based code review and repository management for the Git version control system. diffy the kung fu review cuckoo. Discuss code. and boost your team’s code fu by talking about specifics. Serve Git. as an integrated experience within the larger code review flow. Manage workflows.
Official website: Gerrit
Review Board is an open source, web-based code and document review tool built to help companies, open source projects, and other organizations keep their quality high and their bug count low.
Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel. Packer does not replace configuration management like Chef or Puppet. In fact, when building images, Packer is able to use tools like Chef or Puppet to install software onto the image.
A machine image is a single static unit that contains a pre-configured operating system and installed software which is used to quickly create new running machines. Machine image formats change for each platform. Some examples include AMIs for EC2, VMDK/VMX files for VMware, OVF exports for VirtualBox, etc.
Official website: Packer
Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.
Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied.
The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS entries, SaaS features, etc.
Official website: Terraform
Vagrant is a tool for building and distributing development environments.
Development environments managed by Vagrant can run on local virtualized platforms such as VirtualBox or VMware, in the cloud via AWS or OpenStack, or in containers such as with Docker or raw LXC.
Vagrant provides the framework and configuration format to create and manage complete portable development environments. These development environments can live on your computer or in the cloud, and are portable between Windows, Mac OS X, and Linux.
Official website: Vagrant
To be continued….