You know that Facebook does at least two new versions releases to production every day. Are you ready to manage your technology platform with the most recent and the best practices of the industry? Answer the following questions about the current performance of your company:
- Does your organization deploy the key systems through an automated process or a manual process is required?
- Can your organization perform push-button deployments to new systems environments or a manual process is still required?
- Does the organization succeed in performing, in a similar environment, a deployment to production at the early stages of the project, or does it at the final stage of the solution creation cycle?
- Does the configuration control cover all the elements that are part of the solution (source code, libraries, configuration files of different environments, installation scripts, software required, etc.), or just the source code?
Continuous Delivery Model enables the implementation of a series of practices that range from the automation of the development process to deployment to production. These practices will make much more effective, efficient, and controlled the production of software. The benefits are numerous:
- Improve software quality.
- Decrease time to market of new features through increasing the frequency of deployments to production.
- Decrease deployment errors that require rollback action to the pre-existing versions.
- Reduce the manual overhead that involves the environment management, configuration and deployment activities.
- Optimize the use of your hardware resources when having created environments only at the time of their use.
The following figure shows the Continuous Delivery Model anatomy, which formally comprises a number of stages and a set of repositories.
Continuous Delivery Model is supported on a set of practices that respond to the different realities of the process. There are three key fundamentals such as: configuration management, continuous integration and test strategy.
Configuration management is the practice that pursues the version control of all the elements of a software solution, source code, data, data schemas, and configurations. With the support of version control tools, a controlled evolution line is established through changes in different elements.
Continuous integration is the practice running a team of software developers that integrate continuous and frequent changes to a version control tool. Once we receive the changes, it is checked automatically the consistency of the resulting version.
To guarantee the quality of the software, it is necessary to define automated test strategies that can be incorporated into continuous integration and version control mechanisms. Implementations of tests can be used repeatedly in different times to ensure the correctness of the product.
In DBAccess we have developed a methodology to raise the level of maturity of our customers in the Continuous Delivery Model through 4 stages with specific objectives. We take them to a repeatable and defined operation level in each of the practices that make up the model.