What is container choreography?

Container platforms like Docker are very popular today for application packaging based on microservices architectures. Containers can be made highly scalable and can be created on demand. While this is great for a few containers, imagine you have hundreds.

When quantity increases dynamically with demand, managing the container lifecycle and its management becomes extremely difficult.

Container choreography addresses this problem by automating container scheduling, deployment, scalability, load balancing, availability, and networking. Container choreography is the automation and management of the lifecycle of containers and services.

1.Kubernetes

Kubernetes is an open source platform originally designed by Google and now maintained by the Cloud Native Computing Foundation. Kubernetes supports declarative configuration and automation. It helps automate the deployment, scaling, and management of containerized workloads and services.

The Kubernetes API helps establish communication between users, cluster components, and external third-party components. Kubernetes control plane, and the nodes run on a set of nodes that together form a cluster. An application workload consists of one or more pods running on worker nodes. The control plane manages the Pod and worker program nodes.

2.OpenShift

Redhat provides OpenShift container Platform as a Service (PaaS). It helps automate applications on secure and extensible resources in a hybrid cloud environment. It provides an enterprise-level platform for building, deploying, and managing containerized applications.It is built on Redhat Enterprise Linux and the Kubernetes engine. Openshift has a variety of capabilities to manage clusters through the UI and CLI. Redhat also offers two variants of Openshift,

· Openshift Online — offered as software as a Service (SaaS)

· Dedicated OpenShift — provided as a managed service

Openshift Origin is an open source upstream community project used in the Openshift Container Platform, Openshift Online and Openshift Dedicated.

3.Nomad

Nomad is a simple, flexible and easy-to-use workload coordinator that can deploy and manage containerized and non-containerized applications on a large scale both internally and in the cloud. Nomad runs as a single binary, consumes less resources (35MB), and is supported on macOS, Windows, and Linux.

Developers use declarative Infrastructure code (IaC) to deploy their applications and define how they should be deployed. Nomad automatically recovers applications from failures.

Any type of Nomad Orchestrate application (not just a container). It provides first-class support for Docker, Windows, Java, VM, and more.

Characteristics of the

· Simple and reliable

· Modernize older applications without rewriting them

· Easy scale alliances

· Proven scalability

· Easy cloudy

· Native integration with Terraform, Consul and Vault

4.Docker Swarm

Docker Swarm uses a declarative model. You can define the desired state of the service, and Docker will maintain that state. Docker Enterprise Edition has integrated Kubernetes with Swarm. Docker now offers the flexibility of choreography engine selection. Docker engine CLI is used to create a large number of Docker engines in which application services can be deployed.

The Docker command is used to interact with clusters. The machines that join the cluster are called nodes, and Swarm Manager handles the activity of the cluster.

Docker Swarm consists of two main components:

· Manager — The manager node assigns tasks to the worker nodes in the cluster. Elect the leader according to Raft consensus algorithm. The leader handles all cluster administration and task choreography decisions.

· Work node – The work node receives and executes tasks from the management node.

Characteristics of the

· Cluster management integrated with Docker Engine

· Decentralized design

· Declarative service model

· Zoom ratio

· Reconciliation of required state

· Multi-host networking

· Service discovery

· Load balancing

· Default security

· Rolling updates

5.Docker Compose

Docker Compose is used to define and run multi-container applications that work together. Docker-compose describes groups of services that share software dependencies, are choreographed and extended.

You can use YAML files (dockerfiles) to configure the application’s services. Then, use the docker-compose up command to create and start all the services from your configuration.

Docker-comemage.yml looks like this:

version: '3' volumes: app_data: services: elasticsearch: image: Docker. Elastic. Co/elasticsearch/elasticsearch: 6.8.0 ports: - 9200:9200-9300:9300 volumes: - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12 - ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data kibana: depends_on: - elasticsearch image: Docker. Elastic. Co/kibana/kibana: 6.8.0 ports: - 5601:5601 volumes: - ./kibana.yml:/usr/share/kibana/config/kibana.yml app: depends_on: - elasticsearch image: asadali08527/app:latest ports: - 8080:8080 volumes: - app_data:/var/lib/app/Copy the code

Docker Compose can be used to decompose application code into several independently running services that communicate using an internal network. The tool provides a CLI for managing the entire life cycle of an application. Docker Compose has traditionally focused on development and test workflows, but now they’re focusing on more production-oriented features.

Docker Engine can be a standalone instance of a Docker Machine or an entire Docker Swarm cluster.

Characteristics of the

· Multiple isolated environments on a single host

· Retain volume data when creating containers

· Recreate only the containers that have changed

· Synthetic movement between variables and the environment

6.Minikube

Minikube allows users to run Kubernetes locally. With Minikube, you can test applications locally within a single-node Kubernetes cluster on a PERSONAL computer. Minikube provides integration support for the Kubernetes dashboard.

Minikube runs the latest stable version of Kubernetes and supports the following features.

· Load balancing

, the cluster

Persistent volume

· Node ports

· ConfigMap and Secrets

· Container runtime: Docker, CRI-O and containerization

· Enable CNI (Container network Interface)

7.Marathon

Marathon is for Apache Mesos, which has the ability to coordinate applications and frameworks.

Apache Mesos is an open source cluster manager. Mesos is an Apache project capable of running containerized and non-containerized workloads. The main components in a Mesos cluster are the Mesos agent node, Mesos master server, ZooKeeper, and framework-the framework coordinates with the main framework to schedule tasks to the agent node. Users interact with the Marathon framework to schedule jobs.

The Marathon scheduler uses ZooKeeper to locate the current host to submit the task. The Marathon scheduler and Mesos primary servers have secondary primary servers running to ensure high availability. The client interacts with Marathon using the REST API.

Characteristics of the

· High availability

· Stateful applications

· Beautiful and powerful user interface

· Constraints

· Service discovery and load balancing

· Health examination

· Event subscription

Indicators,

REST API,

8.Cloudify

Cloudify is an open source cloud choreography tool for deployment automation and lifecycle management of containers and microservices. It provides features such as on-demand clustering, automatic repair, and scaling at the infrastructure level. Cloudify manages the container infrastructure and coordinates the services running on the container platform.

It easily integrates with Docker and Docker-based container managers, including the following.

· Docker Swarm

Docker, writing

Kubernetes,

, Apache Mesos

Cloudify helps create, repair, expand, and dismantle container clusters. Container choreography is the key to providing a scalable and highly usable infrastructure with a running container manager. Cloudify provides the ability to coordinate heterogeneous services across platforms. You can deploy the application using CLI and Cloudify Manager.

9.Rancher

Rancher is an open source platform that uses container choreography (called cow). It enables you to take advantage of choreography services such as Kubernetes, Swarm, Mesos, etc. Rancher provides the software needed to manage containers, so organizations don’t have to build container services platforms from scratch using a unique set of open source technologies.

Rancher 2.x allows you to manage a Kubernetes cluster running on a customer specified provider.

Getting started with Rancher requires two steps.

1. Prepare a Linux host with 64-bit Ubuntu 16.04 or 18.04 (or another supported Linux distribution with at least 4GB of memory). Install the supported version of Docker on that host.

2. Start server To install and run Rancher, run the following Docker command on your host:

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Copy the code

The user interface allows you to manage thousands of Kubernetes clusters and nodes.

10.Containership

Containership is used to deploy and manage the multi-cloud Kubernetes infrastructure. A single tool provides flexibility to operate in public, private cloud and local environments. It enables you to configure, manage, and monitor your Kubernetes cluster across all major cloud providers.

Use cloud native tools such as Terraform for configuration, Prometheus for monitoring and Calico for network and policy management. It is built on top of vanilla Kubernetes. The Containership platform provides intuitive dashboards and powerful REST apis for complex automation.

Characteristics of the

Multi-cloud dashboard audit logs GPU instance support interrupt-free upgrade schedulable master comprehensive metrics Real-time record Zero downtime deployment persistent storage Support private registration Support workload automatic scaling SSH key management

11.AZK

AZK is an open source orchestration tool for the development environment through the manifest file (azkfile.js), which helps developers install, configure, and run common tools for developing Web applications using different open source technologies.

AZK uses containers instead of virtual machines. Containers, like virtual machines, have better performance and lower physical resource consumption.

You can reuse the azkfile.js file to add new components or create new components from scratch. It can be shared, ensuring an overall balance between development environments on different programmer machines and reducing the chance of errors during deployment.

12.GKE

GKE provides a fully hosted solution for container application choreography on the Google Cloud Platform. The GKE cluster is supported by Kubernetes. You can use the Kubernetes CLI to interact with the cluster. The Kubernetes command can be used to deploy and manage applications, perform administrative tasks, set policies, and monitor the health of deployed workloads.

Advanced management features of Google Cloud are also available for GKE clusters, such as Google Cloud load balancing, node pooling, automatic node expansion, automatic node upgrade, automatic node repair, logging, and monitoring using Google Cloud’s suite of operations.

Google Cloud provides CI/CD tools to help you build and provide application containers. You can use Cloud Build to Build Container images (such as Docker) from various source code repositories, and you can use Container Registry to store Container images.

GKE is an enterprise ready solution with pre-built deployment templates.

13.AKS

AKS is a fully managed Kubernetes service from Azure that provides serverless Kubernetes, security, and governance. AKS manages your Kubernetes cluster and allows you to easily deploy containerized applications. AKS automatically configures all Kubernetes master nodes and nodes. You only need to manage and maintain the proxy node.

AKS is free; You only pay for the proxy nodes in the cluster, not the master node. You can create AKS clusters in the Azure portal or programmatically. Azure also supports other features such as advanced networking, Azure Active Directory integration, and monitoring using Azure Monitor.

AKS also supports Windows Server containers. Its cluster and deployed application performance can be monitored from Azure Monitor. Logs are stored in the Azure Log Analytics workspace.

AKS is authenticated by Kubernetes.

14.AWS EKS

AWS EKS is a fully hosted Kubernetes service. AWS allows you to run EKS clusters using AWS Fragrate, a serverless computation for containers. Fragrance eliminates the need to deploy and manage servers, allowing you to pay per resource for each application.

AWS allows the use of other features through EKS, such as Amazon CloudWatch, Amazon Virtual Private Cloud (VPC), AWS Identity, Auto Scaling groups and Access Management (IAM), monitoring, Scaling and load balancing applications. EKS is integrated with AWS App Mesh and provides a Kubernetes native experience. EKS runs the latest Kubernetes and is certified by Kubernetes.

※ Some articles from the network, if any infringement, please contact to delete; More articles and materials | click behind the text to the left left left 100 gpython self-study data package Ali cloud K8s practical manual guide] [ali cloud CDN row pit CDN ECS Hadoop large data of actual combat operations guide the conversation practice manual manual Knative cloud native application development guide OSS Operation and maintenance actual combat manual cloud native architecture white paper Zabbix enterprise distributed monitoring system source document 10G large factory interview questions