Container solutions in the market

Docker Inc

Docker’s stated goals include - simplify and accelerate development workflows. A containerization platform software provider initially released in 2013. Written in ‘Go’ programming language and positioned as a freemium SAAS (Software As A Service), uses Apache License 2.0 as the source code license.

Features of Dockers
  • Integrated and automated container security policy
  • Runs trusted images. As one of the pioneers in containerization platforms, many plugins are available helping enhance features. Additionally, with 6 million repositories on the Docker Hub, there are plenty of docker images for developers to use
  • No Lock-in : Supports almost any type of application, OS, infrastructure, and orchestrator
  • Unified and automated agile operations
  • Portable containers across the cloud
  • Automated governance
  • Docker supports CI/CD (Continuous Integration / Continuous Deployment-Delivery)
Dockers Containerization Platform Products
  • Docker Desktop : Application installable on MacOS and Windows OS for building and deploying containerized applications. Features include Docker Runtime, Developer Tools, Docker App and Kubernetes
  • Docker Hub : Repository of container images. The repository is supported by container community developers, open source projects and independent software vendors (ISV) building and uploading their code in containers. Developers can access public repositories for free or can choose paid plans for private repositories
  • Docker Swarm : Docker’s container orchestration tool, using standard Docker API and networking. Allows applications to be deployed as services (microservices) in a Swarm Cluster

Red Hat-IBM OpenShift

OpenShift is a family of containerization software developed by Red Hat (bought by IBM in 2019). Its flagship product is the OpenShift Container Platform—an on-premises platform as a service built around Docker containers orchestrated and managed by Kubernetes on a foundation of Red Hat Enterprise Linux. Red Hat® OpenShift® is a hybrid cloud, enterprise Kubernetes application platform.

Features of Red Hat-IBM OpenShift
  • OpenShift supports multiple Application Development Lifecycle stage environments (such as Dev, QA, Pre-Prod, and Prod), allowing organizations adopt and implement the OpenShift platform
  • RedHat API for Docker allows applications created on OpenShift to run anywhere that supports Docker-formatted containers
  • OpenShift includes pre-created quick start application templates that allows to build application, languages, frameworks and databases – Java, Node.js , NET, Ruby, Python, PHP and others
Red Hat-IBM OpenShift Containerization Platform Products
  • (Self-Managed)
    • Red Hat OpenShift Container Platform : A Kubernetes platform designed for use on private infrastructure. Facilitates build, deployment and administration of container-based applications across cloud and on-premises infrastructure
  • (Hosted Service)
    • Red Hat OpenShift Dedicated : Private Red Hat OpenShift clusters hosted on Amazon Web Services and Google Cloud, delivered as a hosted service and supported by Red Hat
    • Red Hat Microsoft Azure : Red Hat OpenShift clusters hosted on Microsoft Azure, delivered as a hosted service jointly engineered, operated, and supported by Red Hat and Microsoft
    • Red Hat IBM : Managed service of OpenShift on IBM’s public cloud, delivered as a hosted service and supported by IBM
  • Additional Services by Red Hat OpenShift
    • Red Hat OpenShift Container Storage : Software-defined storage integrated with and optimized for Red Hat OpenShift Container Platform. The container-native storage can be provisioned and de-provisioned on demand as an integral part of the OpenShift administrator console
    • Red Hat Quay : A container and application registry providing secure storage, distribution, and deployment of containers on any infrastructure. It is available as a standalone component or in conjunction with OpenShift. Red Hat Quay.io is a hosted version of Red Hat Quay
    • Red Hat Fuse Online : A low-code integration platform as a service (iPaaS) to help developers build faster integration solutions. Cloud-hosted toolchain and runtime, delivering an integration solution right from a browser
    • Red Hat Marketplace Operated by IBM : Certified software for container-based environments
    • Red Hat Advanced Cluster Management for Kubernetes : A management solution designed to help extend and scale Red Hat OpenShift. Created to manage hybrid cloud-native applications running in container environments. Provides visibility, policy governance and control for organizations in containerized environments. Works across the hybrid cloud -- from Red Hat OpenShift deployed on-premises, on bare metal, and on major public cloud providers to native clusters from Amazon Web Services, Google Cloud Platform, IBM Cloud and Microsoft Azure

D2IQ - Mesosphere

Mesosphere DCOS (Data Center Operating System) is an open-source, distributed operating system built with Apache Mesos. It was developed and announced in April 2016. Mesosphere’s DCOS differentiated by providing dedicated container scheduling. Designed to help businesses to automate, deploy apps and scale. The platform targets businesses looking to streamline the production of hyperscale data centers. In 2019 Mesosphere changed its name to D2IQ, the stated goal was to focus on Kubernetes and cloud native solutions.

Features of D2IQ (Mesosphere DCOS)
  • Supports deployment of data center services such as Apache Hadoop, Spark, Kafka, YARN, and Kubernetes
  • Integrates current resources and emerging technologies to increase process efficiency of data and container services
  • D2IQ-Mesosphere DCOS helps user to achieve automation and scalability
  • The GUI support eases use and management. Components like Velocity, Marathon-Load Balancer and Infinity facilitate development and operations
    • Velocity launched as a developer agility and CI/CD platform for the DCOS, leveraging open source tools like Jenkins to make it possible for development teams to go from source code to production with ease and speed
    • Marathon and Marathon load balancer (Marathon-LB) work together to provide a meta-framework for scheduling, container orchestration, and load balancing as part of the Mesosphere DC/OS platform.
D2IQ - Mesosphere DCOS Containerization Platform Products
  • Mesosphere DC/OS Platform : The platform facilitates IT organizations to deploy cloud native technologies as-a-service while maintaining centralized governance. In conjunction with D2iQ Kubernetes Platform it offers interoperability testing across multiple services and support to ensure an enterprise-grade experience. Allows architects to adopt open source and cloud native technologies within their private data centers, resulting in scalable architectures incorporating a wide variety of technology services. Includes built-in service automation to simplify the deployment of technologies such as Kubernetes, Kafka, Jupyter, and TensorFlow.
  • D2iQ Kubernetes Platform : Provides an enterprise grade technology and come bundled with training, services and support to assist with deployments of cloud native applications to production at scale. Technology solutions accompanying the platform include:
    • D2iQ Kommander: Enables governance and lifecycle management of disparate Kubernetes clusters from a single management interface for viewing multi-cluster health, managing distributed operations, and leveraging operational insights
    • D2iQ Konvoy: Provides a comprehensive, enterprise grade Kubernetes distribution with the add-ons needed for production selected, integrated, and tested for quicker implementation
    • D2iQ Kudo: Provides a framework for developing Kubernetes Operators, that encode the operational runbooks for managing complex and stateful applications. Kudo allows Kubernetes Operators use a declarative approach, addressing the full lifecycle of a service. D2iQ maintains a core set of high value KUDO operators designed for building data rich applications using technologies like Spark, Kafka, and Cassandra. KUDO for Kubeflow is targeted at simplifying the adoption of machine learning workloads on Kubernetes
    • D2iQ Conductor: Provides on-demand access to hands-on cloud native training

AWS ECS/EKS

In 2006, Amazon Web Services (AWS) began offering IT infrastructure services to businesses in the form of web services, commonly known as cloud computing. Amazon Web Services (AWS) is a cloud platform, offering over several fully featured services. AWS offers container orchestration options through Amazon’s Elastic Container Service (ECS) and Elastic Kubernetes Service (EKS).

AWS ECS comes in two instances:

  • ECS powered by EC2: Traditional ECS - powered by Amazon EC2 compute (Electronic Compute Cloud) - was launched in 2015 to easily run Docker containers on the cloud. ECS/EC2 facilitates control over the installation, configuration, and management of the compute environment
  • ECS powered by Fargate: Fargate was released in 2017 as a mechanism to run containers without having to manage the underlying EC2 compute. ECS Fargate offers serverless compute for containers

AWS added Elastic Kubernetes Service (EKS) in 2018 in response to the growing customer use of Kubernetes on AWS.

Features of AWS ECS/EKS
  • Have ‘Nodes’ which are practically EC2 instances where the containers run
  • Have a layer of abstraction for containers. Kubernetes refers to this as ‘Deployments’ while ECS refers to it as ‘ECS service’
  • Have a holistic abstraction called a Cluster which is a combination of all working components
  • Use a load balancer to receive traffic into the containers
  • Simplified interface, flexible and extensive platform
AWS Containerization Platform Products
  • AWS ECR – Amazon Elastic Container Registry : Facilitates store, encrypt, and manage container images. A fully-managed Docker container registry allowing developers to store, manage, and deploy Docker container images. Integrated with AWS Identity and Access Management (IAM) provides resource-level control of each repository
  • AWS ECS – Amazon Elastic Container Service : Run containerized applications or build microservices
  • AWS EKS – Amazon Elastic Kubernetes Service : Manage containers with Kubernetes
  • AWS Fargate : Run containers without managing servers. A serverless compute engine for containers that works with both AWS-ECS and AWS-EKS. Fargate removes the need to provision and manage servers, additionally security is improved through application isolation
  • AWS EC2 – Amazon Elastic Compute Cloud : Run containers with server-level control
  • AWS App2Container : Tool to containerize and migrate existing .NET and Java applications
  • AWS Copilot : Quickly launch and manage containerized applications. A CLI tool that enables developers to build, release, and operate production ready containerized applications on Amazon ECS and AWS Fargate

Microsoft Azure Container Service

Microsoft Azure Container Service (ACS) provided by Microsoft helps to simplify the management of Docker clusters for running containerized applications. ACS supports 3 Orchestrators: DCOS with Marathon, Docker Swarm, and Kubernetes. ACS facilitates container management at scale with a fully managed Kubernetes container orchestration service that integrates with Azure Active Directory.

Features of Azure Container Service
  • Simplest, most open and flexible way to run container applications in the cloud
  • Fully managed container platform
  • Hybrid platform support
  • DevOps and VSTS for CI/CD
  • Supports almost any programming language
  • Compatible with many open-source client tools
  • Does not support hybrid operating system – Windows and Linux cannot be integrated into a single container
  • Simplified configurations
  • Easy setup / Interactive CLI
Microsoft Azure Containerization Platform Products
  • Azure Kubernetes Service (AKS) : Facilitates the deployment, management, and operations of Kubernetes. AKS offers serverless Kubernetes with Azure Active Directory security and governance options at enterprise-scale. CI/CD experience is integrated into AKS, allowing development and operations teams on a single platform to build and deploy applications
  • Azure Container Registry : Facilitates build, store, secure, scan, replicate, and manage container images and artifacts with a managed, geo-replicated instance of OCI distribution (Open Container Initiative by Linux Foundation). Connect across environments, including Azure Kubernetes Service and Azure Red Hat OpenShift, and across Azure services like App Service, Machine Learning, and Batch
  • Azure Container Instances - ACI : Run containers on Azure without managing servers. Running workloads in Azure Container Instances (ACI), allows the focus on designing and building of the application instead of managing the infrastructure that runs them
  • Azure Service Fabric : Develop microservices and orchestrate containers on Windows or Linux. Service Fabric is an open source project and it powers core Azure infrastructure. Azure Service Fabric enables automatic scaling, rolling upgrades, and self-healing from faults when they occur

Google Cloud Platform – Google Container Engine (GKE)

Google Cloud provides you with different options to choose from for running the containers. These are Google Kubernetes Engine (for container cluster management), Google Compute Engine (for Virtual Machines and CI/CD pipeline) and Google App Engine Flexible Environment (for containers on fully managed PaaS).

Features of Google container Engine (GKE)
  • Enterprise-ready containerized solutions with prebuilt deployment templates and feature portability
  • GKE Sandbox provides a second layer of defence between containerized workloads on GKE for enhanced workload security
  • GKE is both HIPAA and PCI DSS compliant
  • GKE supports the common Docker container format
  • GKE clusters are fully managed by Google, ensuring cluster is available and up-to-date
  • Persistent storage configuration and options
  • Automated orchestration, deployment, and scaling of containers
  • Integrated Logging
  • Kubernetes is built and supported by Google
  • Simple setup for new users
Google Cloud Containerization Platform Products
  • Google Container Engine (GKE) : Secured and managed Kubernetes service with four-way auto scaling and multi-cluster support
  • Google Compute Engine : Compute Engine lets you create and run virtual machines on Google infrastructure. Compute Engine offers scale, performance, and value that lets you easily launch large compute clusters on Google's infrastructure. Possible to run thousands of virtual CPUs on a system that offers quick, consistent performance
  • Google App Engine Flexible Environment : App Engine allows developers to build highly scalable applications on a fully managed serverless platform. Based on Google Compute Engine, the App Engine flexible environment automatically scales apps up and down while also balancing the load. App Engine flexible environment instances are Compute Engine virtual machines, which means use of custom libraries, use SSH for debugging, and deploying of user’s own Docker containers is possible
  • Google Artifact Registry (beta) : Store, manage and secure container images and language packages. Integrated with Google Cloud’s tooling and runtimes and comes with support for native artifact protocols, possible to integrate it with CI/CD tooling to set up automated pipelines
  • Google Container Registry: Registry for storing, managing and securing Docker images
  • Google Container Security : Container environment security for each stage of the life cycle. Security is managed at Google Cloud Platform infrastructure level, software supply chain level and the runtime security
  • Google Knative : Kubernetes-based platform to build, deploy, and manage serverless workloads. Knative offers features like scale-to-zero, autoscaling, in-cluster builds, and eventing framework for cloud-native applications on Kubernetes. Whether on-premises, in the cloud, or in a third-party data center, Knative codifies the best practices shared by successful real-world Kubernetes-based frameworks
  • Kubernetes applications on Google Cloud Marketplace : Containerized apps with prebuilt deployment
  • Google Build : Solutions for running build steps in a Docker container. Build, test, and deploy on Google’s serverless CI/CD platform
  • Google Cloud Run : Managed compute platform for deploying and scaling containerized applications

Comparison of Container Solutions in the Market

PARAMETERS ​Docker ​RedHat OpenShift ​Mesosphere ​AWS ECS/EKS ​Microsoft Azure Container Service ​​Google container Engine (GKE)
Choice of Orchestrator Docker Swarm Kubernetes Marathon Kubernetes Kubernetes Kubernetes
Integration GitLab CI/CD Agile Spark for a specific HDFS cluster Amazon MQ, Amazon SQS, Amazon SNS and Amazon SWF Logic Apps, Service Bus, API Management and Event Grid Google Cloud
Networking & Storage Networking subsystem is pluggable, using drivers - bridge / host / overlay / macvlan / Network plugins ovirtmgmt network / Red Hat Virtualization storage domain - OpenShift Registry EMC's ScaleIO, OpenStack Cinder, Amazon Web Services (AMZN) Elastic Block Storage Virtual Private Cloud (VPC), VPN Gateway, Route 53, Direct Connect / Identity and Access Management (IAM), Directory Service Virtual Network, VPN Gateway, DNS, ExpressRoute / Azure Active Directory, Azure Active Directory Domain Services Network Attached Storage (NAS) service / Google Cloud Storage
API Management Axway API Management system Red Hat® 3scale API Management DC/OS API Amazon API Gateway Azure API Management Cloud Endpoints
Supported Images Windows & Linux Linux Windows & Linux Windows & Linux Windows & Linux Windows & Linux
Cluster Management Integrated into Docker Engine / Docker Swarm OpenShift Web Console OpenShift Origin command line interface (CJI) Kommander Konvoy Cluster AWS Portal, AWS CLI Azure Portal Google Portal gcloud command-line tool
Add Node Docker Swarm Manual Run an Arsible playbook & CU DCOS / CLI Manual Available for Nodes Manual Worker Nodes Only Not available for Master nodes Google Cloud Console CLI
Application File Compose Format Compose Format Compose Format Compose format Task definition file Compose format Kubernetes represents applications as Pods
Log Analytics 3rd party (Site24x7 provides monitoring and logging) Ops Clster, Elasticsearch, Fluentd, Kbana and Curator DC/OS UI component health page AWS Cloud Trail and AWS Cloud Watch(Log Driver) Azure Log Analytics in Operations Management Suite Stack Driver