How many times have you asked yourself any of these questions?
“Can I just “lift and shift” this application into a new container with minimal disruption?”
“Do I need to refactor or recode any of this application to take full advantage of the Cloud?”
“What infrastructure am I migrating this application to?”
“Am I going to add modern services to this application?”
“How am I going to monitor this application?”
Let’s see how IBM Cloud Private and IBM Cloud APM can get you started!
Today, enterprises are faced with these challenges – how to modernize their traditional applications into containers to ensure that they are secure, portable, and efficient. Enterprises and application teams are turning to containers to improve agility and to increase the scalability of their environments and the portability of their applications.
As IBM Cloud Private is built on open source frameworks, such as Kubernetes, Docker, or Cloud Foundry environments, enterprises are now responsible for deploying their application workloads to these environments. IBM Cloud Private provides the capability to create new microservices based applications and modernize existing applications by using cloud-enabled middleware, such as Liberty or Node.js. With IBM Cloud Private, IBM has enabled key elements of its’ existing and new middleware, data and analytics portfolio to take advantage of the platform capabilities. These capabilities include rapid provisioning and de-provisioning of applications, portability between the enterprise and the cloud, improved resource usage, and simplified management.
As you deploy workloads, it is critical to monitor those workloads, and IBM Cloud Application Performance Management (APM) lets you monitor the response time of an application, the performance and availability of REST APIs, and your middleware.
Let’s look closely at the cycle that a traditional WAS application takes to make its way into a modern, containerized environment.
1. Transforming your traditional application into a modern application
Here, you see the route that an application takes on a traditional VM as it journeys into a containerized environment. It is up to you whether you want to just “lift and shift” your app, or completely rewrite or rework it, and update the services associated with it.
2. Monitoring your traditional, middleware infrastructure and application layer
As your app starts the journey from the traditional, middleware infrastructure, IBM Cloud APM lets you monitor and troubleshoot this infrastructure to see transaction monitoring information from the browser through to the database, including resource monitoring from individual components. The IBM Java application stack includes the IBM HTTP Server, the WebSphere Application Server, and the IBM DB2® or Oracle database.
You can view the topology of your middleware infrastructure and isolate transactions that are failing. You can utilize user experience data to determine the user who is experiencing the problem, and you can isolate the component where the problem is occurring in your environment.
Here, in the Component Status Overview, you are provided have a detailed view of the performance of the WAS server, so you can easily diagnose any resource or response time issues in your infrastructure.
Managing your middleware stack
You can monitor and identify applications with problems, allowing you to troubleshoot issues and isolate problems in the application’s middleware stack.
- IBM Cloud APM builds a topology of your application automatically and it maintains that topology of your application. This topology helps you to understand the dependencies of each microservice so you can debug problems easily.
- You can drill down to show a single transaction as it flows through the Middleware component and monitor the timing there to understand where the bottleneck is located.
- Once you identify the bottlenecks you can drill down further into diagnostic data to identify the root cause of the problem. Diagnostics allow you to identify which methods are slow and they provide you with the ability to show stack trace/method level details.
- The actual performance issues that users face in their browser.
- Response Time by geographic location: Helps you to determine if problems are application or network-related.
- Response Time by device type: Since front end software is unique to a particular device type, you might find that only iOS users are experiencing a performance problem. This allows you to isolate the problem down to the front-end iOS code.
- The OS agent monitors the operating system, system logs, application log files and Docker containers.
- The Hypervisor agents provide deep monitoring of the hypervisor so you get real-time visibility into the performance of the infrastructure.
- IBM Cloud APM provides light-weight data collectors such as Liberty, Node.js, and J2SE that can be deployed along with the middleware. The data collectors provide you with the capability to view resource usage, transaction tracking, and deep-dive diagnostics.
- As you run container workloads, you want to ensure that the monitoring of these workloads is small and lightweight to correspond to your environment.
- If you build your microservice using the Microclimate tool in IBM Cloud Private, the tool automatically instruments your containers with the lightweight data collectors. However, if you’re not using Microclimate, IBM Cloud APM enables you to automate the addition of the data collector into the containerized or Cloud Foundry workloads.
- Deep insights into the operating system performance.
- Granular metrics showing the health and performance of the hypervisor and virtual machines.
- Monitoring of ASCII, system, and Kubernetes logs helping you to troubleshoot the real cause of issues.
- Visibility into the performance and availability data for all docker containers, including restarts.
- Extensive alerting capabilities with the integration of IBM Alert Notification. This integration not only allows you to send events to Alert Notification but to create notification policies to determine alerts and alert notifications.
- Log and metric analytics with the integration of IBM Operations Analytics Log Analysis/Predictive Insights. You can search through log files to diagnose issues and analyze metric data.
3. Monitoring your new, modern application
There are many aspects of monitoring a modern business application that are consistent with monitoring traditional workloads. You must monitor the infrastructure and application layers, as well as the response time of the application. However, some aspects of a modern business application require a different approach. Modern business applications are extremely dynamic and monitoring instrumentation must be provisioned along with the workloads. In addition, microservices interact via REST APIs, so it is critical to monitor the performance and availability of these APIs.
IBM Cloud APM provides a holistic solution that provides visibility into the entire infrastructure, but this can also be extended to the application layer. As we have seen, it is important to monitor the infrastructure but now teams want the ability to do extensive application monitoring.
With IBM® Availability Monitoring on Cloud, you can create, edit, view, and delete synthetic tests that mimic end-user behavior at your web applications. The Availability Monitoring dashboard displays availability and response time information for monitored applications, URLs, and REST APIs. You use the dashboard to monitor alerts and activities that are associated with your application, URL, or REST APIs in different locations by using graphs, breakdown tables, and map views.
Applying Synthetic transactions monitoring
It is critically important that you monitor your business application proactively. IBM Cloud APM provides you with the ability to do synthetic monitoring of web pages and web-based apps. Synthetic monitoring of REST APIs ensures that all APIs are available and performing well.
Availing of transaction tracking and response time monitoring
Importantly, the response time of your application is crucial to detect slow response times to isolate issues.
You can access end user experience data, which provides you with the following information:
Monitoring the modern infrastructure
As your app makes it way to the Cloud, your typical IBM Cloud Private deployment uses Docker containers to run your application workloads and leverages Kubernetes for deployment and orchestration.
Normally, IBM Cloud Private is deployed into your virtualized environment, such as, VMWare. All of these infrastructure components are critical to the performance and availability of your business application. Monitoring of this infrastructure becomes your top priority as well as the container interaction monitoring at the middleware layer.
It is important to monitor the VMs, operating system, logs, and containers that are running in IBM Cloud Private. Prometheus is a base open source monitoring solution that ships with IBM Cloud Private and provides a good set of base infrastructure monitoring of Kubernetes.
Additionally, IBM Cloud APM provides the following capabilities:
Using Data collectors
Metrics and performance
IBM Cloud APM provides:
Completing your journey to the Cloud
By leveraging IBM Cloud APM, you not only ensure that your business applications and infrastructure are monitored effectively, but any performance issues that impact your infrastructure are diagnosed early and solved quickly.