The role of the APM and DevOps Culture (1) (DevOps+JENNIFER)
The start of DevOps
The software development trend has always been evolving. Instead of developing everything from scratch in the past, the current environment allows developers to make soft wares they desire easily through an open platform or an open source, depending on an architecture or purpose of use. In addition, thanks to the advent of cloud, a new paradigm is coming to the development of application and service. It takes much time to prepare physical server, install operating system and publish the service under the existing on premise environment. However, the cloud environment shortens the time of preparing and publishing necessary resources.
As such, the area of developers has become widen. They are able to operate the process of development, build, test, publishing, operation efficiently under the traditional business platform. By doing so, they could reflect what customers want in a timely manner. This is the start of DevOps. Did the advent of multiple open sources and spread of cloud really shorten the time of developing a new feature? If so, wouldn’t be any problem?
Bottleneck of developing process
If the test and publish of DevOps is automated, the operators need to monitoring the reflected issues on a regular basis. If a potential bug exists that could cause serious malfunction on source code, how could it be detected at the operating level? For instance, when the level of load suddenly increases at a certain service during the peak time, the bug is likely to occur. There are many things to consider to find what caused the problem, however, the traffic is not the single reason of the problem.
The software might have nothing to do with malfunction, other types of open source that was applied to enhance the productivity of product development could be the cause of the problem. Given this type of project is not for commercial use, it could be difficult to respond if any problem occurs. Even if DevOps-oriented environment is made, or a system that could reflect what customers want as fast as it can is prepared, we could notice a bottleneck due to various types of potential, environmental problems.
The role of APM at monitoring
The monitoring stage plays significant role as the final stage of developing process on DevOps. Once the monitoring process is completed at the actual service, the cause of the problem needs to be detected in a timely manner to move on to the receiving feedback stage. In certain conditions, it could take much time. And it will lead to degrade the productivity. It would also prevent from heading toward the new process.
In order to perfectly run the DevOps, users should be able to compare the status of transaction that comes into the server between prior and after publishing at the monitoring stage. They also must be able to recognize the elements that might delay the response in a timely manner. When published source code lead to the service malfunction, the malfunction needs to be delayed until everything goes back to normal.
For this reason, the role of APM is very important issue to DevOps side. We will talk how to use previously described features with JENNIFER. To give you more realistic learning effect, a virtual environment will be made with publishing a new service, and a source code with an error will be applied to the service in advance to see how transaction changes before and after the publish.
Monitoring Process
The monitoring process consists of identifying and solving the problem, and republishing when problem is solved. The JENNIFER dashboard allows users to monitoring the status of active service and the change of transaction. If the JENNIFER detects any problem on newly published source code, the active service in progress would be stacked up. And the distribution chart of transaction becomes different than the previously written pattern.
On the operating side, users could apply setting to make an event. They could let each person in charge the status of service through messengers such as email, SMS and Slack. Once the event message is delivered to the person, they could take two actions with JENNIFER. While developers analyze the cause of the problem using the smart profiling, the operators could use the PLC feature that would redirect the display by blocking the inflow of transaction before the service becomes worst condition.
According to JENNIFER, the transaction is defined as data collected right after single request is completed on the server. And the active service is defined as real-time data in progress.
Monitoring Threshold Setup
You need to apply a few setups on the JENNIFER management screen to process the monitoring stage smoothly before publishing the service. You need to count the number of average active service of agent as it becomes threshold of setting an event alarm and controlling the amount of service load when an error occurred on the service. However, the threshold is quite different depending on the environment. For this reason, you could roughly set the threshold when the service is running without any difficulties.
The agent is defined as a module that collects the performance data by relying on target application and transfers the data to the server. The target application for monitoring is different depending on the platform environment, however, it normally indicates the WAS (Web Application Server) or web server.
Given the active service is not in the completed status, it is not suitable for analyzing what caused the service malfunction. Therefore, the number of active service shall not be the threshold, and developers must apply the profiling related setup of JENNIFER based on the response time of transaction data that has already been processed. From the threshold, draw a virtual line on the transaction distribution chart. Then, you can use the smart profiling against the transaction located above the line.
In this article, we talked about the problems faced in the monitoring stage and the role and necessity of APM to solve them. In the next section, we will look at how to use JENNIFER to perform the monitoring process in earnest.
To be continued…