In this sequence of articles, I intend to show how to create a modern, containerized software development platform that supports rapid iterations for developers, and continuous delivery for operations teams.
Benefits of this system will include:
- operations and developers using the same processes to run software
- rapid iterations in software development with dependent services all running locally
- ease of deployment (with straightforward upgrade and rollback) and scaling of services
- deployment of the same artifacts, whether to a developer’s laptop or to a production server
- the possibility of continuous delivery – when sufficient automated tests are in place, when tests pass, code can be deployed straight to production
This system will include the installation of a private Docker Registry, a Jenkins server for builds, infrastructure for running containers locally – including dependent services, and the ability to automate the creation of infrastructure in the cloud – in this case in EC2.
We shall see how this sequence of articles turn out – but the intention is that, by the end, we will have documented everything that is required to install a modern, powerful infrastructure that supports both developers and operations in creating software faster, and more reliably than has ever been possible.