Getting started
Start to learn the main concepts of Mia-Platform and how to use to develop your services
Start to learn the main concepts of Mia-Platform and how to use to develop your services
Discover more
Discover all the benefits of becoming a Mia-Platform's partner entering the program.
Discover more
Every developer has experienced, at least once in his or her life, that feeling of tension on the Delivery Day. Being aware of the pitfalls of software development, developers are afraid of emerging defects, inconsistencies, and malfunctions while using it.
Are we really confident that this is the way? Can we overcome the fear of deployment by turning every day in a D-day? Yes, we can! How? Through the practice of Continuous Delivery.
Continuous Delivery is an ongoing DevOps practice based on the automation of the entire pipeline.
Unlike traditional processes where product development is separated from the functional activities for the software release, the Continuous Delivery approach proposes always ready software to release.
How?
You could do it through the continuous integration of each development, which is released in a staging environment – akin to the production staging. The software that reaches this stage has already passed the build and test phases, and as a matter of fact, it is ready to be released.
Every change that is introduced into the system following this practice is, therefore, a release candidate, deliverable in production as a new version of the software.
This process can be taken to its extreme, automating this last step and automatically put into production without a manual approval: this practice is called Continuous Deployment.
Differences among various deployment models
Starting from the concept of the release candidate, it is possible to identify six essential principles to guarantee an effective and continuous release process:
The CD approach is famous for being used by big corporations in the digital world such as Google, Yahoo, Amazon, and Facebook – just to name a few. But its functionality is not tied to company size: it is a set of principles that can be effectively applied to any company size.
We introduced the concept of Continuous Delivery because we needed to reconcile product release with developments, updates and customers’ applications maintenance, and a need for product reconciliation – each of them has its own timing and needs.
Three years ago, one of our teams decided to introduce some principles of the Continuous Delivery approach into the release process and transformed them into practice. These principles have become development milestones for Mia-Platform.
Let’s have a look:
The team pipeline takes the code from checkout to the staging environment (NB: for this team, the red line indicates a manually activated step).
The principles of Continuous Delivery, applied to the development context of each team, allow us to face and overcome the fear of release, making the software evolve more quickly, easily, and reliably.
In our experience, a good delivery process must be automatic, can be activated by any team member, the same for all environments and must include separate build and deploy moments. Furthermore, it must follow a rigorous versioning system and continuously guarantee the software rollback.
This article comes from a talk by Riccardo Porrini and Tommaso Ballardini and it was published in its original version on Mokabyte released in May 2019.
{{cta(’86d6e5f7-efb2-4d58-a49e-299dd87ae947′,’justifycenter’)}}