The platform provides rich, comprehensive features to provide full lifecycle management of applications from development, deployment, O&M, to deletion.
Figure-1 Application lifecycle management
After completing coding, you can upload the codes to the delivery center for continuous integration and continuous delivery that include code review, API testing, and compiling and building to increase development efficiency and shorten the delivery cycle. The integration and delivery processes can be triggered by criteria such as code branch.
The delivery center supports building container images, Helm packages, Jar packages, War, and traditional packages.
The platform offers both VMs and container clusters for you to deploy applications. Container clusters are set up based on Kubernetes to provide a high availability environment for applications that require Kubernetes and native O&M capabilities of microservices engines, such as elastic scaling, external access configuration, unified configuration center, and service governance. VMs feature better isolation capabilities than container clusters, but they do not support Docker-based container images or Helm packages.
Container clusters—Include the following:
Shared cluster—OpenShift cluster formed by controller nodes and worker nodes. Applications running on a shared cluster share the resources of the nodes in the cluster. Resource isolation on a shared cluster is implemented by using container AZs.
Exclusive cluster—Kubernetes cluster formed by cloud hosts provided by IaaS. An application running on an exclusive cluster has exclusive access to the resources of the cloud hosts in the cluster. Resource isolation on an exclusive cluster is implemented by using compute AZs and cloud networks such as classic networks and VPCs. Exclusive clusters must be used in conjunction with IaaS cloud services.
VMs—Cloud hosts provided by IaaS. VMs must be used in conjunction with IaaS cloud services.
The platform provides repositories for storing and managing software application packages. The repositories allow you to manage software packages of different versions. You can upload local software packages or software packages built in the delivery center to the repositories. If you upload local container images, make sure they are created in compliance with Docker. To create a Helm, Jar, War, or traditional package, see the related guide.
An application group contains multiple applications that offer the same service. Application groups allow for isolation of the applications used for different purposes and unified application O&M. When you create an application by deploying a package or image, you must assign the application to an application group.
The platform provides the following deployment and upgrade methods:
Deployment
Software packages—Deploy software packages in repositories as applications. You can use this method to deploy single applications.
Application orchestration—Orchestrate applications with cloud services. You can define the configuration and dependencies of multiple resources like applications, application groups, software packages, containers, runtime environments, and microservices engines by using JSON files or an orchestration designer. The platform will automatically configure and deploy the resources based on your configuration. You can use this method to deploy business systems.
Upgrade
Application upgrade in application management—Upgrade applications by using the application management service.
Application upgrade in the delivery center—Upgrade applications in the delivery center.
The platform provides rich application management and microservices capacities such as lifecycle management, upgrade, rollback, monitoring, alarms, and service governance offered by Kubernetes and microservices engines. You can perform O&M tasks with simple configuration on the Web interface.
Application management—With Kubernetes technologies integrated to offer application starting and stopping, upgrade, rollback, elastic scaling, configuration center, external access configuration, and alarms.
Microservices—With Spring Cloud and Istio microservices engines integrated to implement distributed tracing and service governance. Microservices governance provides resource usage charts, topology, traces, load balancing, request throttling, circuit breaker, fault injection, timeouts and retries, gateway routes, and security.
Environment management—Management of clusters and VMs. You can view detailed information about cluster nodes and VMs and perform lifecycle management for them. VM management must be used in conjunction with IaaS cloud services.
You can delete unwanted applications by using the application management service to release resources.