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 Brazilian large 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 term. After all, important 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 great help to this process. They are:

AUTOMATION

  • Automation Scripts

Developing of scripts for the automation of tasks helps to guarantee that the defined steps are followed in the established order. This is particularly important during the deploy of new versions of the system under production. For this project, several personalised scripts were developed. One of them is the one responsible by application’s deploy. Among other activities, the script executes copies of files, stop / start of the application server, and backup of database.

  • Jenkins

Jenkins is a continuous integration tool that is very used for building and testing in a fast and easy way, and automating the developed applications. Among other functionalities, it can run tests, generate reports and send alerts of erroneous builds by email. If required, it can even perform the deploy of the new version of application in the production environment.

List of jobs (or projects) and their respective statuses on Jenkins

List of jobs (or projects) and their respective statuses on Jenkins

SUPPORT

  • Redmine

In a shared development and operation environment, it is essential the use of some tools to manage technical support calls. With such tool, it becomes possible to gain agility in the moment of resolving similar calls and especially to measure which are the most frequent ones, helping in decision-making about improvements and corrections that must receive priority, or even that can indicate the need for trainings for users.

Redmine is a tool that enables to save a history of calls, to indicate priority for each one of them, to attribute responsible persons, time estimative, deadlines and more.

In this project, over 100 weekly calls area are created, both for improvements and support.

Redmine list of calls.

Redmine list of calls.

Example of a Redmine call.

Example of a Redmine call.

TESTS

  • Automated tests

With the dynamism requested by DevOps, the performance of all tests that are necessary for guaranteeing product’s quality delivered in manual way becomes virtually impossible. In this scenario, automated tests can guarantee that all functionalities of the system are working without any problem, either if they are new or if they already exist.
There are several tools for this purpose. In this project, we chose to use SAHI, due to the fact that it makes available an open source version and due to the  agility it enables tests to be created and edited.

Execution screen of Sahi's tests.

Execution screen of Sahi’s tests.

ENVIRONMENT MONITORING

  • Alerting e-mails

There are several ways to monitor the performance and the state of an environment, and one of the most used ones in market is the programming of alerting e-mails when there appears any errors, or when certain triggers are activated. Errors that occur in the program execution, excessive use of memory and processor are some examples of the type of features that can be configured to be continuously monitored through tools such as Log4j and Zabbix, for example. With configured alerts, it is possible to guarantee that the performance of the supporting team will always be as fast as possible, minimising problems that can happen with the client.

Example of automatic alerting e-mail.

Example of automatic alerting e-mail.

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.