EMCO OVERVIEW
The Edge Multi-Cluster Orchestrator (EMCO) is a software framework for intent-based deployment of cloud-native applications to a set of Kubernetes clusters, spanning enterprise data centers, multiple cloud service providers and numerous edge locations.
The EMCO project was launched in October 2021, With code seeded by Intel and contributions from Aarna Networks, the main objective of the project being the automation of the deployment of applications and services across multiple clusters.
Before moving forward let us understand the significance of the word edge being used here.
Today we live in a centralised world where most of our data is transferred and then processed over the central server, however with the exponential increase in the data in recent years and the need to reduce latency, this architecture does not seem viable anymore.
So there has been a gradual shift towards edge computing, which can be thought of as an architecture in which computation is being done at or near the source of the data.
What is edge?
The word edge in this context means the edge of the network where the device generates the data.
Take voice assistance devices for example, they resolve your requests by sending it to the cloud, and the round trip time can be very noticeable. Your device has to process your speech, send a compressed representation of it to the cloud, the cloud has to uncompress that representation and process it, the more processing done on the local device, the less you have to rely on the cloud. Edge computing will reduce this latency, and why is this important?
So when giving verbal commands to your device you may experience some lag and frustration, however in the future, consider the case of autonomous vehicles any lag there may leave you frustrated for the very last time in your life, hence we can clearly see how essential edge computing is going to be in the future.
These edge devices will themselves have resources of computation, so we can think of autonomous vehicles as a data server on wheels, voice assistance devices as data servers with the capability to engage in voice interaction, music playback, making to-do lists, streaming podcasts, and playing audio-books etc.
Why EMCO?
So now with the basic understanding of what the EMCO project is, let us look at the use case of this project in the industry. Currently there is a gap in the industry of cloud-native edge orchestration tools, which works across a large number of edge and core-sites.This gap is being filled by this project, which also includes multiple vendors and users.
EMCO operates at a higher level than Kubernetes and interacts with multiple edges and clouds running Kubernetes. It is designed to be flexible, modular and highly scalable. It is also aimed at various verticals, including telecommunication service providers.
The workload that will run over EMCO can be a simple app or a complicated app that is composed of multiple simple apps, or it can be a network function in the form of a container/VM, etc. Increasingly we also see a requirement for deploying 'composite applications' in multiple geographical locations (edges).
A 'composite application' is a combination of multiple applications with each application packaged as a Helm Chart. Based on the deployment intent, various applications of the composite application get deployed at various locations, and get replicated in multiple locations
Life cycle management
Along with deployment and orchestration it also manages the life cycle of these applications, including upgrades as well as comprehensive status monitoring of deployed applications.
We should keep in mind that the life cycle management of these composite applications is quite tedious. Like Instantiation, updates and terminations of the composite application across multiple Kubernetes clusters (edges and clouds), monitoring the status of the composite application deployment etc.
So when we deploy multiple composite applications over, say thousands of clusters, each of the applications having multiple microservices (there can be multiple deployments of the same composite application for different purposes) we clearly get an idea of how complex this process is going to be.
The solution? A Multi-Edge and Multi-Cloud distributed application orchestrator enables one-click deployment of the composite applications and makes a one simple dashboard to know the status of the composite application deployment at any time possible.
We can clearly see how EMCO will automate the whole process of deploying the applications on the suitable clusters, giving us a single dashboard to have a good overall look.
Another advantage of EMCO is that it will be using auto-configuring service mesh (ISTIO) and security policy (NAT, firewall), which enables the communication between deployed apps or between a deployed app and an external service within or across clusters with/without mutual TLS.
EMCO is an extensible platform, that means that the functionality of this project can be extended depending on the use case. This is done by the use of EMCO controllers, which are taken on board depending on features required.
We would be looking at controllers and architecture of EMCO in the subsequent blogs.
Thanks a lot for reading!