In a company, usually before any change is decided to be made, its real need is analysed so that an action, development and implementation plan can be elaborated. This way, wasting in several aspects is avoided, both regarding time, financial and material expenses. Naturally, it is also applied to the adoption time of a new integrated culture for development and operation in IT, the DevOps.
Recently, Visagio developed a supply area process monitoring system for a large Brazilian company. During this work, it was possible to analyse that, due to the huge number of users of this system and due to the fact that they are located in different and distant places in the world, the need for improvements would be continuous, and it would be necessary to guarantee that such improvements were implemented in a short span. After all, essential processes of company management, such as purchases of supplies, would pass through this system and any delay could mean a potential loss to our client.
Thus, once the culture was defined, we use some DevOps Tools which come to help and optimise the implementation of this new culture. We listed in categories some of the most interesting and practical ones that can provide significant help to this process.
- Automation Scripts
Developing of scripts for the task automation helps to guarantee that the defined steps are followed in the established order. For this project, several personalised scripts were developed. One of them is responsible for application’s deploy. Among other activities, the script executes copies of files, stop/start of the application server, and performs the database backup.
Jenkins is a continuous integration tool that is extensively used for building and testing in a fast and easy way. Among other functionalities, it can run tests, generate reports and send alerts of erroneous builds by email. If required, it can even deploy the application version in the desired environment.
In a shared development and operation environment, it is essential the use of some tool to manage technical support tasks. With Redmine, it becomes possible to gain agility in the moment of resolving similar tasks and especially to measure which are the most frequent ones, helping the decision-making about improvements and corrections that must receive priority, or even that can indicate the need for training for users.
Redmine is a tool that enables to create tasks, indicate priorities, assign them to specific users, estimate time, deadlines and more.
In this project, there are over 100 weekly tasks, both for improvements and support.
- Automated tests
With the dynamism requested by DevOps, performing all the necessary tests for guaranteeing product’s quality manually becomes virtually impossible. In this scenario, automated tests can ensure that all the system functionalities are working without any problem.
There are several tools for this purpose. In this project, we chose to use SAHI. The choice was based on the fact that SAHI has an open source version and due to the quickness, it enables tests to be created and edited.
- Alerting e-mails
Oliver Drummond graduated in Computer Science and has extension courses in Web Application Architectures from the University of New Mexico and Programming Mobile Applications for Android Handheld Systems from the University of Maryland College Park.