PIPELINES, QUALITY GATES AND ENVIRONMENTS
If you want to get to Continuous Delivery, you not only need automation to build out your process, but also the ability to adapt to change. Different products within an organisation have different requirements (e.g. technologies, configuration and non-functional requirements such as SLAs) and these will evolve throughout the life pf the product.
The Boost process starts by looking at how you want to deliver software, the environments you need, the purpose of those environments (and hence the quality gates protecting them), and how you therefore progress deployments from Dev to Live. Because we know that these requirements will change during the life of the project, we have adopted a declarative approach - everything is defined in YAML files which use Ansible roles to build the end-to-end pipelines and environments.These definitions are then versioned and tagged to keep them in synch with the code they are supporting.
The best way to understand this is by example. The Blockchain demo (see Git repo) contains a readme file describing how the pipeline is put together, including Ansible roles for defining environments.