IBM Sterling Order Management is a leading provider of omni-channel order management capabilities that enable intelligent orchestration of customer orders across many disparate channels and systems, providing accurate inventory visibility across the supply chain. Our clients use the powerful configurability and open integration framework of IBM Sterling to create robust and tightly integrated networks of solutions to ensure flawless execution of the order lifecycle. These enterprise-grade deployments are critical to the success of the business and are usually supported by strong, experienced support and development teams, who adopt industry-leading deployment tools to ensure reliability and scalability of the deployed order-management solution.
Emerging technologies like containers enable virtualization in application isolation that translate into composable patterns for enterprises to deploy an order-management system either as an on-premises solution inside their firewall or onto a hosted/public cloud infrastructure.
With release 10.0, IBM introduces a software distribution that harnesses the power of container-based technologies. IBM Sterling Order Management certified containers deliver curated deployment patterns via Helm charts and related tooling that can be configured and deployed on container orchestration platforms. This distribution is certified with the industry-leading Red Hat® OpenShift® Container Platform and provides an integrated support model for addressing mission-critical client needs using our order-management software with this platform, bringing to the fore best practices of both applications.
OpenShift helps you manage the lifecycle of developing, deploying, and managing container-based applications. It provides a hybrid cloud application platform for deploying new and existing applications on secure, scalable infrastructure resources with minimal configuration and management overhead. OpenShift combines technologies like Red Hat Enterprise Linux and Kubernetes to deliver integrated application runtimes and libraries, orchestrated as containers on multiple hosts and managed across server clusters. OpenShift provides a deep library of tools for source code management, build processes, team and user tracking, as well as strong support for backup and restore operations. OpenShift’s strengths in horizontal auto-scaling combined with monitoring and logging tools help to create a strong framework for building self-healing application deployments.
IBM Sterling Order Management certified containers (enterprise and professional editions) bring together Red Hat-certified order-management containers, IBM-certified production-grade Helm order-management charts, and streamlined deployment instructions for OpenShift. These artifacts not only help simplify your current implementation but also help reduce your operational and infrastructure costs.
In this article, get a high-level preview on how to configure IBM Sterling Order Management on OpenShift; integrate with the database and server; customize the deployment to your needs; and deploy the application, agents, and integration servers with auto-scalable containers geared toward production deployments. This article should familiarize you with the overall value proposition of container-based approaches and gives you a journey map prior to embarking on containerization, with pointers to relevant steps detailed in our knowledge center.
New in this version of IBM Sterling Order Management
The certified containers edition provides speed and agility for discerning customers looking for quick-paced development processes, while also bringing significant savings in IT operational costs for existing customers through containerized architecture models. The certified containers edition provides the following:
- Order Management containers (certified by Red Hat) with container images built using open source technologies such as Buildah and podman
- IBM-certified Helm charts for enterprise-grade, secure, production editions
- Open sourced Db2® and MQ dockers, readily available order-management app server, and agent containers for an empowered developer environment
- Scripts and documentation for creating builder images and customized build pipelines aligned with the Source-To-Image (S2I) framework
- Container scaling recipes to automatically scale up and scale down your containers in real time based on detected workload
- Liveness and readiness probes that work with Kubernetes replicas to monitor the health of the application and provide graceful self-healing recovery characteristics
- Unified monitoring, security, and logging tools using a common services foundation to give administrators a consistent hybrid cloud interaction model
Red Hat certified order-management images offer a multitude of benefits such as:
- Single trusted source for all components
- Tamper-proof packaging of platform components
- Container image reviewed and checked for known vulnerabilities in the platform components or layers
- Improved Security for the complete deployment, avoiding the security concerns raised when attempting home-grown open source assemblies
- Containers compatible across Red Hat platforms and OpenShift, on both bare metal and cloud environments
- Normalized and complete stack backed by a single point of support for clients, including warm hand-off to Red Hat where needed
- Discoverability and visibility of the order-management images in the Red Hat container catalog
IBM Sterling Order Management certified containers bring immediate value to clients with:
- Enterprise-readiness – Production grade, resilient, scalable, recoverable
- Security and compliance – Image vulnerabilities management, limited security privileges, secure access
- Flexibility – Create once and deploy anywhere OpenShift on IBM Cloud, AWS, Azure, or Google cloud
- Speed – Accelerate time to business by focusing more on your business values
- Reduced costs – Automate and simplify the deployments and reduce support staff and infrastructure
This article assumes you have reviewed the product documentation on needed prerequisites and have installed the following:
- OpenShift V3.11 or 4.2
- IBM Db2 database V11.x or higher
- IBM MQ JMS server V9.x or higher
- Sterling Order Management certified containers V10 (detailed instructions)
- Helm and Tiller projects in OpenShift
Order-management containers and Helm charts
To enable a modular deployment of Sterling Order Management certified containers, the software distribution provides three images for x86-based architecture:
- om-app — Order management application server image handling synchronous traffic patterns embedded with IBM WebSphere® Liberty application server
- om-agent — Order management workflow agent and integration server container to handle asynchronous traffic patterns
- om-base — Image provisioned for adding your extensions/customizations to the base product and enabled to rebuild the above images
These images are enabled for integration with IBM Db2 and MQ applications by including the required versions of the client jars.
To efficiently deploy the app and agent containers, Sterling Order Management provides Helm charts that perform the following functions:
- Create deployment of application server with one replica
- Create health monitor deployment
- Create user-defined agent and integration servers
- Create job for loading factory setup data
- Create service for accessing the application server via routes
- Create config maps for application server-specific settings and user defined MQ bindings
Although Red Hat OpenShift container platform does not come with a Helm chart-enabled project by default, IBM provides two options:
- IBM Cloud Private Common Services
- Tiller project on OpenShift — see blog from Red Hat and follow product instructions
Create a developer environment
Enabling you with instant access to a pre-configured working environment on your workspace/laptop has become critical for agile development. The ability to access databases, messaging servers, and application binaries has become easier with the advent of containers. You will typically execute the following steps on your local laptop to start customizing and configuring the order management application:
- Install Docker and/or podman utility for loading the containers
- Download the Db2 container using
docker pull ibmcom/db2and configure using the instructions provided at ibmcom/db2 to bring up a Db2 database server
- Download the MQ container using
docker pull ibmcom/mqand configure using instructions provided at ibmcom/mq to bring up an IBM MQ messaging server
- Load the order management application using Docker or podman:
docker run -e LICENSE=accept --privileged -v <shared file system directory path>:/opt/ssfs/shared -it --name <container name> <image>
podman run -e LICENSE=accept --privileged -v <shared file system directory path>:/opt/ssfs/shared -it --name <container name> <image>
Once the container is loaded, you can get inside it to enable database credentials for connectivity; load out-of-the-box factory setup data; create Javadocs for information on order management APIs; build and deploy database, code, templates, user exit, and service customizations; and create custom images for your app and agent containers. Further details on customizing your environment are available in the product documentation, along with enabling logging customizations for extracting logs based on the pods.
After these images are built, they can be deployed in the OpenShift environment as defined in the product documentation. Alternatively, you can run the customized containers on your laptop using the Docker or podman commands given above before deploying in a development/QA environment in OpenShift container platform.
Creating a CI/CD pipeline
With the customizations validated in a developer environment and checked into a source GitHub repository, you can establish an automated CI/CD pipeline. OpenShift provides the following strategies and can be read in detail:
- Source to Image (S2I)
- Custom (recommended approach for Sterling Order Management)
The custom build strategy integrates your GitHub repository with the om-base image so that any source code update can trigger the build configuration to generate customized images that can be deployed in your dev/QA/staging/production environments. The sample build config YAML is provided for configuring your credentials with the om-base image stream in the product documentation.
This ability to customize and automate your build pipeline can potentially free up staff resources involved in your weekly or monthly releases to be repurposed to focus on the delivering improved and differentiated capabilities in your project.
Configurations required for deploying in OpenShift
To deploy order management containers in OpenShift, you need to follow some minimum configurations:
- Secrets — Creates sensitive information like passwords
- Security constraints — Specific constraints enforced by customizations
- ConfigMaps — Capture Liberty server customizations, application/agent’s customer overrides, log4j customization, and database connectivity
- Persistent volumes — Mountable file drives for referencing any external files like SearchIndex and log folders
- Ingress/Routes — Ability to push/pull images into OpenShift registry and to expose application server URLs for external access
- Current fix packs — If needed, review and install any unapplied fix packs
Further information on instructions to configure along with sample YAML files are provided in the product documentation. These configurations can be made across various projects for enabling your various environments.
Enabling self-healing of your applications
A robust application is one designed to detect signs of failure, and programmed to take corrective action. In an enterprise-grade implementation like Sterling Order Management, even with containers, failures could occur in a variety of situations, some of them unpredictable. These situations could be caused by:
- Container crashes for any specific/unforeseen reason
- Supporting applications such as Db2 or MQ becoming unreachable
- Unscheduled/planned maintenance
The Sterling Order Management application and workflow agent containers are equipped with the following capabilities that enable the application to recover gracefully or spin up additional instances:
- Multiple replicas — Sterling Order Management provides one replica out of the box. In your production instances, it is recommended to have two to three replicas per deployment so that if the entire pod goes down for any reason, the replicas in other pods can continue to service your requests.
- Liveness probe — This probe executes during startup and validates successful invocation of the container and also periodically revalidates server state and health. If no signal is received for a given duration, the container is automatically restarted.
- Readiness probe — This probe ensures the container’s readiness to receive requests. For the application server instance, this probe validates if Sterling Order Management application’s login page is reachable and checks for active heartbeat confirmation records inserted in the database.
Enabling auto-scaling of your applications
Once the images work in your QA and development cycles, the images are ready to be consumed in a staging or pre-production environment before the final push to production. In pre-production environments, it is recommended to perform production-like load tests to validate the performance, scalability, and availability of the application.
OpenShift provides recommended installation and host practices performed by a cluster administrator for scaling and performance of the pods. Get more information on such techniques provided.
Sterling Order Management can be auto-scaled by making use of the Horizontal Pod Autoscaler, a Kubernetes feature delivered by OpenShift. Currently, OpenShift allows auto-scalability based on CPU utilization and memory utilization (beta). For Sterling Order Management, we recommend enabling auto-scalability based on CPU. We believe memory-based management is better handled using parameters specific to the deployment’s min and max limits. Moreover, we have found that it is more efficient to add additional pods based on CPU rather than based on memory utilization. This approach also helps keep smaller container footprint.
The agents, integration servers and application servers can be scaled by specifying the following oc command:
oc autoscale deployment <deployment name> --min=1 --max=2 --cpu-percent=80 -n <namespace>.
oc autoscale deployment oms-svt-app-srvr1 --min=2 --max=6 --cpu-percent=70 -n oms-svt
oc autoscale deployment oms-svt-scheduleorder --min=1 --max=4 --cpu-percent=80 -n oms-svt
In the above examples, both the order management application server and agent server are auto-scaled with a minimum instance when starting up those containers and can scale up to a maximum ceiling of six and four containers, respectively, when each of the container’s CPU utilization increases past the desired percentage threshold.
Keep in mind that this setting must be tested internally with your customized image to identify the resource usage. Do not confuse HPA with the resource requests and limits set at the individual deployment level, as the latter is defined to ensure the pod can be started on a node within the request and within limits.
This article highlights important considerations for extracting the most value from your Sterling Order Management implementations on the OpenShift container platform. Sterling Order Management containers orchestrated on OpenShift container platform provide a secure, compliant, scalable, performant, and enterprise-grade application that lets you free up your valuable support resources to focus on the more important aspects of building innovative extensions to the core application to serve the needs of your customer base.