The most serious disease of the brain is thinking.
Jacques Rouxell in Les Shadoks
Name
Automate
Statement
Humans think, machines do repetitive work. Any repetitive work in the life cycle of a service - deployment, data import, etc. - is automated whenever the return on investment of automation is neutral or positive. Furthermore, never automate a task, job, process, etc. that can simply be eliminated.
Rationale
For example, when transforming a monolithic system into multiple autonomous services, the frequency of deployments increases. The aim of automation is therefore to:
- Make deployments more reliable.
- Delegate deployment activities to any member of the team.
- Shift time spent on repetitive tasks to cognitive tasks.
- Increase the frequency of deployments.
- Enable deployment to new environments.
Implications
- Define the overall continuous delivery pipeline for each service. The level of maturity of continuous delivery may vary depending on the criticality of the services or other factors, but a basic level should be achieved.
- Deploy all components of a service - libraries, infrastructure, data structure, etc. - with each deployment.
- Automate the creation of the infrastructure.
- Automate configuration: e.g. configuration of servers and components.
- Automate regular data imports.
Examples
Bad
The deployment of the Person Transfer service sometimes fails because it requires the manual updating of its database structure. This step, although documented, requires a great deal of concentration, as a comparison of the old and new database structure must be made. In addition, environment-specific configuration data must be changed in the database.
Good
The logic of the Passenger Declaration service changes several times a year to support the business process as efficiently as possible. The deployment of the service, which also includes automated testing, is triggered whenever changes are published in the source code repository of the service.