Hybrid application management lifecycle

IBM Cloud Pak for Multicloud Management provides enhanced application management capabilities through a Kubernetes resource-based application model, channel and subscription-based deployment options, and infrasture-based deployment options. The application model and deployment capabilities are designed to unify and simplify the deployment experience for creating and managing your application across both single cluster and multi-cluster scenarios.

IBM Cloud Pak for Multicloud Management uses Red Hat Advanced Cluster Management to support creating and managing some of the Kubernetes-based resources, such as channels and subscriptions to gain improved continuous and automated delivery of your deployables to target managed clusters.

Your developers and DevOps personnel can use these resources to deploy, update, manage, and monitor versions of your applications across multiple environments through complete automation.

Hybrid application model

The hybrid application model includes default Kubernetes resource definitions and custom resource definitions to construct different application types.

In Red Hat Advanced Cluster Management, the application model is based on a purely Kubernetes-based containerized application management. All applications and application resources are based on the Kubernetes Special Interest Groups (SIG) Application model. Within IBM Cloud Pak for Multicloud Management, a hybrid application model is used, which enhances the existing application model to now support both infrastructure management and pure kubernetes-based application models.

With this enhancement, you can represent your infrastructure deployers, such as Infrastructure management or Ansible as Deployer resources. The new hybrid application model defines how other infrastructure, such as a Infrastructure management based virtual machine application can be integrated with and use the application lifecycle management capabilities. With the support for infrastructure deployers, you can create hybrid deployable resources that represent components that run on these different Deployers, such as virtual machines, cloud services, and containers.

The hybrid application model and deployment options work for, and scale, clustered environments to meet application management requirements. This scalability supports both a single application developer that builds and deploys an application from their device to a multicloud environment, or a cloud operations personnel that needs to deploy and update hundreds of applications across hundreds of clusters. With this application model and deployment option, you can separate your organizations roles for developing applications and DevOps. Your application developers can focus on the developing and defining the application resources. Meanwhile, your DevOps personnel can focus on creating and managing the channels and subscriptions to ensure that resources are deployed correctly. You can use the new model and deployment options to update and deploy one or more applications to hundreds of managed clusters, each in a different physical location.

Within this hybrid application model, applications are composed of multiple resources. The Hybrid Application Model follows the Kubernetes conventions for defining resources, but the custom resources, operators, and controllers, are introduced to work with non-Kubernetes systems in addition to continuing to work with Kubernetes. The main foundation resources for hybrid applications are the application resource and the hybrid deployable resource. The hybrid placement rules for deployables can be defined as a stand-alone resource and referenced by the deployable.

Resources also exist to help you assemble applications. The application assembler resource (ApplicationAssembler.core.hybridapp.io) groups hybrid deployables together to create an application based on selected types of resources. You can use the application assembly resource to discover and assembly your existing applications so they can be managed in IBM Cloud Pak for Multicloud Management. You can also use the assembly resource in the console to quickly select resources to create applications.

Although single and multi-cluster applications both use the same Kubernetes specifications, multi-cluster applications involve more automation of the deployment and application management lifecycle. The application definition is based on the Custom Resource Definition (CRD) of the Kubernetes SIG Application CRD definition Opens in a new tab. This definition is used for applications in both single and multi-cluster environments for grouping application resources. The other resource kinds for the application model (hybrid deployables, hybrid placement rules, deployables, placement rules, channels, and subscriptions) are based on specifications that are defined by IBM Cloud Pak for Multicloud Management or Red Hat Advanced Cluster Management for Kubernetes. These specifications use common Kubernetes resource fields for defining annotations, labels, metadata, and more, and support custom fields and values. For more information about these resources, see Application resources.

All of the application component resources for applications are defined in YAML files. When you need to create or update an application component resource, you need to create or edit the appropriate spec section to include the labels for defining your resource. For more information about creating and managing application resources, see:

The Kubernetes apiserver is the main service for providing application management functions. All application resource specs are accessible by using the Kubernetes CLI tool. In addition, a hcmctl is provided to wrap kubectl commands for better and smoother CLI experiences.

Note: There is a Hybrid application model community. For more information, see GitHub: Hybrid Application Model.

Deploying application resources

IBM Cloud Pak for Multicloud Management supports multiple options for the deployment of deployable objects, including hybrid deployables and Helm charts. The deployment option that you use can depend upon whether you are deploying hybrid or non-hybrid resources. If your deploying non-hybrid resources, the deployment option that you can use also depends upon whether you need to deploy to a single cluster or multiple clusters and the frequency that you need to deploy updates. For more information, see Deploying application resource.

Managing applications with the console

The IBM Cloud Pak for Multicloud Management console includes an applications dashboard for managing the hybrid application lifecycle. You can also use the console dashboard to create non-hybrid application resources, such as subscriptions, channels, and placement rules. With your resources created, you can use the console to view the status of your hybrid applications, channels, subscriptions, and related deployments.

With this application dashboard, you can complete the following tasks:

For more information, see Managing applications with the console.