This book has been superseded by Python Continuous Integration and Delivery.
This book teaches a technically inclined reader how to automate the deployment process of self-written software using Open Source tools. Thus it introduces you to Continuous Delivery, a practice under the DevOps umbrella. It enables faster feedback cycles, which is an important aspect of agile software development.
It makes some assumptions on the technologies used:
- Debian GNU/Linux or derived distributions, such as Ubuntu, as the operating system
- aptly for repository management
- Ansible for deployment and configuration management
- Go Continuous Delivery for orchestrating the process
It covers the following topics:
- Why automate the release process?
- Requirements for automated deployments
- Deployments enviroments (test, staging, production, ...) and their function
- Architecture of a deployment system
- Packaging the software
- Distributing the software
- Deploying the software
- Orchestrating the whole process with Go Continuous Delivery
- Version handling
- Unit Testing
- Smoke Testing and Rolling Deployments
- Security Considerations
- State Management and managing schema changes.
It shows a step by step process for creating a deployment system, and features two example applications deployed this way.