From continuous integration…

Today, use of an integration server is more and more common in companies to follow software development. Its task is to check code compiling, unit tests execution, packaging, deployment and test execution in controlled and standardized integration environment.

It provides a standard environment, separated from development configurations, to test software evolution in a pre-defined environment, close to deployment configuration, and allow developers to follow the evolution of their work. It also permits to create standard processes et easily repeatable. Once all integration process steps are done, the integration platform produces a packaged code, ready to be deployed on every platform, including production.

Continuous_Delivery_process_diagram

… to deployment automatisation

Following integration server, it is possible to go even further in automatisation process, by taking care of tasks currently being done manually by the exploitation team such as database management.

The goal is to replace long and maybe complicated tasks by automatized tasks in order to enhance reliability of deployment processes and to make this processes faster to come quicker to user validation. This automatisation can be performed from simple scripts to complete production environment emulation through tools like Puppet or Docker.

This automatisation can only take place if development and exploitation teams collaborate together.

But for now, going to production is still a manual task. However, it can reassure different actors, from project team to customers.

Automatic Acceptance

It is still possible to reduce development time by going through acceptance tests automatisation. Instead of repeating predefined test series again and again, test team would create automatic acceptance tests. There are many improvements: a better test quality and improved code coverage, thus leading to a better application for customers, and it is becoming a requirement for developments. Deployment automatisation in integration is also becoming widespread, thus reducing needed time before release.

Continous deployment?

Continuous integration is today well implanted: it allows shorter development cycles while ensuring a better software quality, and is also becoming a today requirement. Creating automatic deployment in integration is also becoming widespread and allows a better planning for developers.

Acceptance tests are less often automatized, even if it could reduce even more needed time towards deployment, pushing the automatisation even further.

Once all these elements are automatized, there is only one step remaining to come to a fully automatized deployment cycle: automatic production deployment. Only some actors on the market have gone into this, given their activity (Google, Twitter, Amazon, …). However, impact of this automatization is huge, as well in organization matters than technical matters. Even if this step is difficult to take, as it comes with organizational problems and a difficulty for companies to see the beneficial side.

IguanaWorldwide

When you start to work with us, we build with your team the most adapted deployment process for improve your productivity and automate your application deployment. Our team is composed with skilled profiles including many system architect and dev ops advising you on cloud deployment based technologies and horizontal/vertical scaling.

If you need more informations about it, please free to contact sales@iguanaworldwide.com.