This chapter describes in detail how to orchestrate different build jobs for continuous integration, configuration management, continuous delivery, and so on. It will cover how the build pipeline plugin and pipeline feature of Jenkins 2.0 can be used to orchestrate an end-to-end automation process for application deployment. Until now, we have covered continuous integration, cloud provisioning using Chef, configuration management, and continuous delivery. Each was configured in a unique build job. Now we are only going to manage all those build jobs in a manner that the checkout or execution of the build pipeline will result in the checkout, compilation, unit test execution, installation of the Linux instance on Amazon EC2, installation of the runtime environment, configuration of permissions in the newly created instance, and deployment of the WAR file.
In this chapter, we will cover the following topics:
- Creating parameterized build jobs for end-to-end automation
- Configuring a build pipeline for the orchestration of a build job
- Executing the build pipeline for application deployment automation
The build pipeline, also called the deployment or application delivery pipeline, can be used to achieve end-to-end automation for all operations, including continuous integration, cloud provisioning, configuration management, continuous delivery, continuous deployment, and notifications. The following Jenkins plugins can be used for overall orchestration of all the activities involved in end-to-end automation:
- Continuous integration: Jenkins
- Configuration management: Chef
- Cloud service providers: AWS, Microsoft Azure
- Container technology: Docker
- Continuous delivery/deployment: ssh
Jenkins can be used to manage unit testing and code verification; Chef can be used for setting up a runtime environment; Knife plugins can be used for creating a virtual machine in AWS or Microsoft Azure; the build pipeline or deployment pipeline plugins in Jenkins can be used for managing deployment orchestration.
For more details get the DevOps for Web Development book.
It is also available at: