IBM Z and LinuxONE - Software

Software

Software

In order to compete you have to be trusted. System software delivers high-performing system and database management, faster insights, secure cloud and agile DevOps, plus the reliability, flexibility and protection you expect from the mainframe.

 View Only

Why deploy microservices to IBM Z?

By Yann Kindelberger posted Wed February 10, 2021 07:42 AM

  

This blog was written by a team of technical consultants from IBM Montpellier.

Using a microservices architecture is the popular way to create new applications, and this can bring many advantages, including greater agility, scalability and resilience. But what if the application is a hybrid application that relies on core applications and data residing on the mainframe. Does it matter where you deploy the new microservices?

Figure 1 shows different topologies that can be used when microservice applications access core systems running on IBM Z.

Figure 1    IBM Z microservices deployment options

Figure 1 illustrates the following deployment options:

  • Host microservices in a public cloud

Increasingly, an organization's applications reside in public cloud environments and are often deployed as a set of microservices. When these microservices have a dependency on core systems (for example, CICS, IMS or Db2) the core systems are accessed as attached resources (or backing services) which are normally exposed as REST APIs.

  • Host microservices in a private cloud on IBM Z
    When a microservice application has a close dependency on core systems, resulting in many interactions to systems running on IBM Z, it can be advantageous to deploy these microservices on IBM Z.

Our tests showed an end user response time improvement of nearly a third[i] when re-deploying a microservice application from a public cloud to a private cloud on Linux on IBM Z.


  • Co-locate microservices with core applications
    When a specific microservice requires the fastest possible response time from a backing service, or requires transactional integration with the core data, the microservice can be co-located within the same system as the core application.
Our tests showed a greater than 90% core application response time improvement when re-deploying a microservice from a public cloud to CICS Liberty.


In this blog we focus on the latency considerations, by comparing different deployment options for microservices that require connectivity to CICS and Db2 core systems.

We also consider some of the other advantages of deploying microservices to IBM Z, including security, data integrity, high availability and scalability.

Introduction

Hybrid architectures, that integrate public and private cloud as well as traditional on-premises infrastructure, are enabling clients to extend beyond their data centers into cloud services.

This shift from traditional enterprise IT, to hybrid, multi cloud environments brings with it very real architectural considerations, and particularly the need to improve the integration of services across the mix of environments.

Containers provide the runtime environments for new microservices applications. These containers require an orchestration technology such as Kubernetes or Red Hat OpenShift to enable managed production-grade deployments. IBM Z now supports a range of container solutions including Docker, Kubernetes and OpenShift, allowing you to deploy microservices on the same platform as the core systems on which they depend. Platform co-location can improve network latency and provide a more secure integration between microservices and core applications.

In some cases, closer integration may be required, for example, where updates in a microservice and in a CICS application must be made within the same logical transaction to ensure data integrity. To meet these more ‘tightly-coupled’ requirements it is also possible to deploy microservices within the same runtime as the core system, for example, within CICS using a Liberty JVM server.

In our tests for this blog, we deployed a sample account management microservices application to different topologies and then compared the user response times for each topology. The microservices have close affinities to an Account management system running in CICS, and a Master data management (MDM) system running in Linux on IBM Z.

We’ll see from the results of these tests that careful consideration should be given to microservice deployment.

Account management application

Let’s start with a quick overview of the sample application.

The account management application is part of the IBM MPLbank showcase created by the IBM Garage for Systems team in Montpellier. The demo banking system used in the showcase runs a mixed workload of real-world financial transactions, including cash withdrawals, deposits, and real-time payments. The CICS/COBOL core banking application stores customer and account records in Db2 for z/OS. The end user interacts with a front end microservices application which enables the user to access account data and to perform payments (see Figure 2).


Figure 2    Account management application - user interface

The user (a bank employee) connects to the application and uses a client’s email address to retrieve personal information such as name, marital status, number of children, annual income and a list of accounts. A balance and list of recent account operations is shown for each account.

Figure 3 shows the component model of the account management application.



Figure 3    Account management application – component model

The main components of the application are described in the table below.

Component Language Platform Role Interacts with

User interface microservice

Node.js

Cloud platform

Retrieves client information and list of accounts. Generates html file to be sent to the user

  • MDM
  • Account management microservice

Account management microservice

Java

Cloud platform

Retrieves detailed account information

Account Management System

Master Data Management System

Java

Linux on IBM Z

Stores client information in Db2 for z/OS

User interface microservice

Account Management System

COBOL

CICS TS running on z/OS

Core banking application (Sopra Banking)

Account management microservice



When considering where to deploy the user interface and account management microservices it is useful to consider the different interactions between the components (see Figure 4).





Figure 4    Account management application – interaction model

In Figure 4 we see the following interactions:

1.      The user calls the user interface microservice.
2.      The user interface microservice calls the Master Data Management system twice:
a)      To retrieve the party ID and personal data of the user.
b)     To retrieve the list of user accounts (each user has a different number of accounts).
3.      For each account, the user interface microservice calls the account management microservice (in the tested scenario, the user has 5 accounts).
4.      The account management microservice calls the Account Management System twice:
a)      A first call to retrieve the balance of the account.
b)     A second call to retrieve the latest banking operations performed on this account.
5.      The account management microservice returns account information to the user interface microservice.
6.      The user interface microservice responds to the user.

For our tests, we measured response times for the account management application in three different cloud deployment topologies.

1.      Public cloud (IBM Cloud)
The user interface and account management microservices deployed to IBM Cloud – an open public cloud.

2.      Private cloud (OpenShift on Linux Z)
The user interface and account management microservices deployed to a private cloud - OpenShift Container Platform on Linux on Z.

3.      Private cloud (OpenShift on Linux Z and CICS Liberty)
The user interface microservice deployed to an OpenShift Container Platform on Linux on Z and the account management microservice deployed to a Liberty JVM server in CICS.

Topology test results

A workload from a small number of clients was simulated using JMeter. The tested topologies, and the results of each test, are described in more detail below.

Topology 1 – Public cloud (IBM Cloud)

In the initial topology, the user interface and account management microservices are deployed to IBM Cloud (Figure 5) and they access IBM Z through the IBM Secure Gateway. The user interface microservice calls the MDM using SOAP over HTTPS. The account management microservice calls the Account Management System using REST over HTTPS. The REST APIs have been enabled using z/OS Connect EE.




Figure 5    Public cloud (IBM Cloud)

Figure 5 shows the average end user response time (1580ms) and the response times of the calls to the core systems. The end user response time includes the network connection to IBM Cloud, the processing of the microservices application, 2 calls to the MDM, and 10 calls to the Account Management System (5 balance requests and 5 requests to retrieve the latest account operations). Note that retrieval of the list of user accounts from the MDM (839ms) makes up the most significant part of the end user response time.

Topology 2 - Private cloud (OpenShift on Linux Z)

In the second topology, the user interface and account management microservices are deployed to a private cloud using an OpenShift Container Platform on Linux on IBM Z (Figure 6). The user accesses IBM Z through the IBM Secure Gateway. The microservices deployed to containers running on Linux on IBM Z interact with the core systems using the same protocols as in topology 1.


Figure 6    Private cloud (OpenShift on Linux Z)

Enabling cloud capabilities like OpenShift on IBM Z enables containers to exist in the same environment as a company's core systems and data. The microservices application is developed and deployed using the same cloud-native processes as other cloud environments, whilst benefitting from the advanced security, vertical and horizontal scalability, and 99.999% availability capabilities of IBM Z.

This topology enables cloud native applications to easily integrate with existing data and applications running on IBM Z, enabling latency to be reduced by avoiding network delays. Figure 6 shows that the average end user response time improved by 29% in our tests (from 1580ms to 1128ms) compared to topology 1.

For more information on the benefits of deploying OpenShift on IBM Z see Application modernization with Red Hat OpenShift on IBM LinuxONE.

Topology 3 - Private cloud (OpenShift on Linux Z and CICS Liberty)

In the final topology, the account management service is deployed to a Liberty JVM server in CICS (figure 7).

Figure 7    Private cloud (OpenShift on Linux Z and CICS Liberty)

When a specific microservice requires the fastest possible response time from a backing service, or when a microservice updates transactional data that needs to be updated within the same unit-of-work as updates to core data, the microservice can be co-located within the same system as the core application.

For topology 3 the account management microservice was enhanced to use JCICS (the Java equivalent of the EXEC CICS API) to call the Account Management COBOL program. The microservice was then deployed to a Liberty server running in the same CICS region as the Account Management COBOL application. This significantly improves the response time for retrieving account balances and account operations as it eliminates the network connection.

Whereas the end user response time for this topology did not differ significantly from topology 2, deploying the account management microservice to CICS Liberty gave the best response time for accessing the Account Management System (3-5ms).

Comparing the results

Deploying cloud services to a public cloud is appealing for clients because there is a large choice of Cloud Service Providers (CSPs), and the initial deployment can be fast because there is no on premise infrastructure to setup. Cost is often the most important factor in choosing a CSP, and services can be re-deployed to a different public cloud offering if one CSP undercuts another.

CSPs offer choices about where to deploy cloud applications and data, and it is important to consider connectivity to backing services when deciding where to deploy cloud services. For example, in our public cloud test (topology 1), we measured end user response times with the user interface and account management microservices deployed either to the IBM Cloud Dallas data center or to the IBM Frankfurt data center. Deploying the microservices to the Frankfurt data center improved the network latency between the microservices and core applications running in the IBM data center in Montpellier France by 37%.

For topology 2, the microservices were deployed to a private cloud using an OpenShift Container Platform on Linux on IBM Z. Although this requires an investment in the private cloud infrastructure and skills, this solution benefits from the highest levels of data security and protection, resilience and scalability offered by the IBM Z platform. With this topology we were able to reduce the end user response time by 29%, from 1580ms to 1128ms (see Figure 8).


Figure 8    End user response time comparison  


In topology 3, the account management microservice was co-located within the same CICS region as the Account Management COBOL application. Note that the end user response time for this topology did not differ significantly from topology 2. This is because the calls to the MDM make up 75% of the end user response time. However, the tests for topology 3 gave the best response time for accessing the Account Management System (see Figure 9).


Figure 9    Account Management System response time comparison


Deploying the account management microservice to CICS Liberty improves the response time from the Account Management System by 90% (from 30ms to 3ms) compared to deploying the microservice in the IBM Cloud. This would have an impact on the end user response time if the number of calls to the Account Management System increases significantly. It is important to note, however, that deploying the account management microservice to CICS Liberty requires a change to the way that the microservice calls the Account Management COBOL application and to the way that the microservice is deployed.

Summary

In this blog we explored some deployment options for a microservices application that has a close dependency on core systems running on IBM Z. We have seen that deploying cloud native applications to IBM Z can simplify integration with existing mainframe data and applications, improve end user response times by reducing network latency and benefit from the well-established mainframe qualities of service.

This blog was written by the following team of technical consultants from IBM Montpellier who help clients to leverage the unique capabilities of IBM Z and LinuxONE.   

Yann Kindelberger and Stephane Faure (IBM Garage for Systems)
Aymeric Affouard, Eric Phan and Nigel Williams (IBM Z Systems Lab Services)

[i] The performance data discussed herein is presented as derived under specific operating conditions. Actual results may vary.









1 comment
75 views

Permalink

Comments

Wed April 03, 2024 12:17 PM

Red Hat OpenShift runs on the 'Integrated Facility for Linux' (IFLs) cores on IBM Z and IBM LinxONE, or 'IBM Z Integrated Information Processor' (zIIP) cores on IBM Z

Red Hat OpenShift can be deployed on IFLs in LPAR(s) and virtual machines, based on IBM z/VM and Red Hat KVM, and on zIIPs in 'IBM zCX Foundation for Red Hat OpenShift' in IBM z/OS address spaces in direct support of z/OS.

Note: Red Hat OpenShift does not require a Linux distribution, it's operating systems is included.