Product Engineering

How to Select A Modern Container Orchestration Platform for Your Cloud Apps? Part 3

HOW TO SELECT MODERN CONTAINER ORCHESTRATION PLATFORM FOR YOUR CLOUD APPS?

Key features to look for in Container offerings on Private Cloud

1. Introduction

Hitherto, in this multi-part blog series, we focused on the importance of container orchestration technology for enterprises and ISVs (Part 1). Leading Public Cloud Providers offering container orchestration platforms (Part 2). In this part three of the blog series, we will cover available container orchestration platforms on Private Cloud. After reading this blog, you will be able to evaluate containerization platforms based on the key features mentioned below. These are most relevant for Enterprises and ISVs to achieve faster development, deployment of products while ensuring ease of administration,

  • Ease of set-up and administration
  • Support for various languages and frameworks
  • Integration with development and deployment tools
  • Security and access control
  • Platform health monitoring

Majority of enterprises and ISVs who deploy Container Platforms to on-premise Private Clouds use Kubernetes and Docker Enterprise. Platform as a Service (PaaS) platforms such as RedHat OpenShift and Pivotal. In this blog, we will concentrate on the container orchestration platforms mentioned above.

 

2. Private Cloud Infrastructure

There are two types of container orchestration offerings available for Private Cloud,

  • Container Orchestration Platforms (Kubernetes and Docker Enterprise)
  • Platform as a Service Offerings containerization support

2.1. Container Orchestration Platforms

Docker Enterprise Edition

 Docker Enterprise Edition

Source: https://blog.docker.com/2018/04/announcing-docker-enterprise-edition-2-0/

 

2.1.1. Management

  • Ease of set-up and administration

Creating and managing a Kubernetes cluster in the production environment are non-trivial tasks. The difficulty is mainly due to various components involved in it such as compute, storage and networking. Proper planning and understanding are required to put together all the intricate pieces of technologies. To set-up Kubernetes, there is a need to learn specific tools and commands for preparatory tasks. Installation instructions differ from OS to OS. You need to plan in terms of the number of nodes and roles for each node in the cluster. Open Source tools such as Rancher can be used to install Kubernetes in your Private Data Center. Rancher comes with an in-built console to manage the cluster. Once installed, you can use a web-based Kubernetes dashboard or Rancher-based UI. It allows deployment and troubleshooting of containerized applications to a Kubernetes cluster. The dashboard also provides the functionality to manage and monitor the cluster resources.

Compared to Kubernetes, Docker Enterprise based platform is quick to get started with easier set-up and management. Docker has been quite popular among developers who prefer fast deployments and simplicity. You only need to learn the Docker CLI tools to perform the set-up. Docker Enterprise also comes with web-based access to view the Cluster and Control Plane details.

2.1.2. Execution

  • Support for different Container Orchestration Layers

Kubernetes cluster uses its Container Orchestration layer whereas Docker Enterprise now supports Docker Swarm as well as Kubernetes as Orchestration layers.

  • Faster and better platform

Kubernetes is a complex platform ensuring a reliable guarantee for the cluster state. Because of this, container deployment is comparatively slower in Kubernetes than in Docker Swarm. However, considering auto-scaling of the workloads, Kubernetes can analyze server load and scale the workload according to traffic in a much better way.

Container deployment in Docker Swarm is faster that allows faster response times to scale based on traffic.

  • Deploying container workloads

For deploying container workloads on Kubernetes cluster, there are command-line tools available. Configuration files are YAML-based. Application deployment through Helm Charts is the easiest way on Kubernetes cluster. Helm utility helps you generate a templated version of deployment customized for your workload. Kubernetes also provides a utility named ‘kompose’ that can be used to convert Docker Compose files to Kubernetes-based deployment.

Deploying workloads on Docker Enterprise is easier as compared to Kubernetes. Dockerfile and Docker Compose can be used for single and multi-container deployment, respectively.

  • CI/CD toolchain integration

Both Kubernetes and Docker Enterprise can be integrated with your CI/CD pipeline. Most of the standard CI/CD tools such as Jenkins, TeamCity, Bamboo have necessary plugins for deployments. For Continuous Deployment, you need to push Docker images of your application to a trusted Docker Registry.

  • Platform health monitoring

Kubernetes and Docker Enterprise both have management consoles. They offer useful information on cluster health monitoring. Both platforms are supported by third-party monitoring tools such as Open Source Prometheus as well as commercial tools such as AppDynamics, Datadog, etc.

2.2. Platform as a Service (PaaS) Platforms

Platform as a service

Platform as a Service (PaaS) is a computing paradigm where infrastructure as well as specific programming frameworks, storage and messaging technologies are abstracted and provided as a managed service. Using PaaS platforms, developers can deploy their application components easily as compared to only infrastructure or container platform based deployments. Additionally, PaaS platforms support features such as load balancing, auto-scaling and auto-healing. IT teams generally maintain PaaS platforms. These platforms essentially let application developers focus on creating and running applications rather than constructing and maintaining the underlying infrastructure and services.

In this blog, we will look at two popular PaaS platforms – RedHat OpenShift and Pivotal Cloud Foundry.

2.2.1. Management

  • Ease of set-up and administration

Just like Container Platforms (Kubernetes and DockerEE), it is non-trivial to deploy and manage PaaS platforms such as RedHat OpenShift and Pivotal Cloud Foundry in the production environment. Both platforms provide tools to ease the installation on the underlying hardware infrastructure. Before installation, meticulous planning is needed for Compute, Storage and Networking along with high availability aspects for the platform. Your IT team need the necessary skills to install and support the platform. Both the platforms support installation on OpenStack and VMware-vSphere based Private Clouds.

  • Infrastructure Support

RedHat OpenShift and Pivotal Cloud Foundry both support multiple infrastructure platforms. These platforms can be installed on Private Clouds based on OpenStack and VMware-vSphere. You can also install using bare-metal server hardware. Additionally, both platforms support all the major Public Cloud providers – AWS, Microsoft Azure and GCP.

  • Support for different Container Orchestration Layers

RedHat OpenShift underneath supports Kubernetes as Container Orchestration Platform, whereas Pivotal Cloud Foundry uses proprietary frameworks such as Diego and Garden-runC. Very recently, Pivotal has added support for Kubernetes based Container Orchestration through Enterprise PKS (Pivotal Container Service). Through this, existing Pivotal installation can be enhanced to use Kubernetes as a Container Orchestration layer. Pivotal has also recently launched Pivotal Application Services platform on Kubernetes which is in Alpha mode.

2.2.2. Execution

  • Support for various languages and frameworks

RedHat OpenShift and Pivotal provide support for deploying application workloads built using a variety of languages and frameworks. They both have support for languages and frameworks such as Java, .NET, Node.js, Ruby, PHP, Python, etc. They also provide support for a variety of middleware and backend storage technologies.

  • Deploying container workloads

Private cloud container orchestration platforms RedHat OpenShift and Pivotal support their own CLI and tools for workload deployment. OpenShift underneath uses Kubernetes and due to that, the OpenShift deployment tools are very similar to Kubernetes tools. OpenShift supports multiple mechanisms for image creation – such as Source2Image and Dockerfile. Pivotal CLI supports similar tools for deployment but uses a proprietary mechanism called as Buildpack for the actual provisioning and deployment of the application.

  • CI/CD toolchain integration

OpenShift can be integrated with CI/CD tool such as Jenkins. As a result of underlying Kubernetes, support zero-downtime deployments/upgrades. Pivotal Cloud Foundry supports Jenkins as well as Concourse as a tool for CI/CD. It can be used to build declarative pipelines to automate your CI/CD workflows.

  • Portability of workloads to other Container Platforms

RedHat OpenShift provides a Cloud Native Computing Foundation (CNCF) certified Kubernetes environment and hence support compatibility and interoperability for containerized applications.

  • Platform health monitoring

RedHat OpenShift provides Prometheus based cluster and application monitoring along with Grafana based Dashboard and Visualization. For Pivotal platform, health monitoring can be done using PCF Healthwatch. Nevertheless, third-party tools, such as AppDynamics or Datadog, can be used.

 

3. Approach for selecting right Container Orchestration Platform

In Part IV of this blog series, we will look at an approach for selecting a particular deployment strategy for your Containerized Cloud app. This will be supplemented with business scenarios and how enterprises and ISVs are using these platforms.

So, keep reading!

If you’d like to explore a bit more, check out the Product Modernization Hub and how your business can leverage the cloud to catalyze growth with Xoriant’s cloud enablement offerings.

You may also reach us at PE@Xoriant.com and our experts will schedule a FREE product assessment session to provide you with a custom approach as per your needs.

 

4. References

  1. https://www.docker.com/
  2. https://kubernetes.io/
  3. https://rancher.com/
  4. https://www.openshift.com/
  5. https://pivotal.io/