Sunday, June 28, 2020

Cloud Orchestrator

As we has seen in last post cloud application should be "Resilient to failure".Orchestrator help us to understand, how we can create "Resilient to failure" application in cloud world. Cloud provider company given fancy name to Orchestrator (?aaS). There are few examples Orchestrators IaaS (Infrastructure as a Service), PaaS (Platform as a Service), CaaS (Container as a Service), FaaS (Function as a Service) etc. Orchestration is the automated configuration, management and coordination of computer systems, applications and services. Orchestration helps IT to automate and manage complex tasks and workflows.

The purpose of Orchestrator to manage cluster of machines (cluster life cycle).

1.       Creating and destroying VMs for you

2.       Manage networking between VMs

3.       VMs health monitoring

4.       Deploy new version of code in VMs

Creating and destroying VMs for you

If their high traffic in your service code, it helps you to create new VMs and deploy service code on it and destroying them if less traffic in your service. It helps us to scale up (add new VMs) in VMs cluster.It also help us to repair VM.

Manage networking between VMs

It also helps us to manage networking between all VMs within cluster. It makes sure all machine within network and connected with each other and isolate with those machines which are not in cluster. Some time one machine has multiple VMs and some are part of VMs cluster and some are not. Virtual networking allows us to isolate those VMs from VMs cluster.   

VMs health monitoring

It also helps to monitoring the health of VMs within cluster. It constantly checking is hardware working properly, VMs up and running and service code working properly. Some of Orchestrator allow us to be involved in health monitoring. These are some service specific health monitoring that you can define your own health monitoring rules.

Deploy new version of code in VMs

Orchestrator also help us deploy new version of code in VMs cluster. For example, like your version 1.0 of service code running in VMs cluster and you want to update with version 2.0 code in VMs cluster. It will go to all the VMs and replace with version 2.0

Orchestrator do a lot for us. When you write code make sure it will not tie with any type of Orchestrator. It will be independent of Orchestrator and it will help us to change Orchestrator if required in future.

There are three aspects to cloud orchestration

1.       Resource orchestration: where resources are allocated

2.       Workload orchestration: where workloads are shared between the resources

3.       Service orchestration: where services are deployed on servers or cloud environments

Some scenario of what Orchestrator does

This help us to deploy the code on cloud environment and create and destroy VM (Virtual machine). Here I will show how it works. General scenario developer writes code in his/her local machine in somewhere in the planet and code repository store in server and server in cloud data center regions. Inside data center regions Orchestrator create cluster of 4 VMs and surrounding with virtual private network (VPN). Which help us to isolate our VMs cluster from other networks. When user can make change in code and after that update service code repository. Orchestrator deploy code in VMs from service code repository.

In below images it shows service code in developer machine and they checked in code in service code repository and Orchestrator take the code from repository and deploy the code in VMs.

Above picture show how everything setup. We have 3 things

1.       Developer machine with service code:  Developer develop and update the code 

2.       Service code repository: It will help us to deploy the code in VMs

3.       Region: Cloud provider company data centre region  

4.       Cluster of VMs:  Here we will deploy the service code and execute it

This is the whole picture of service Orchestrator setup

Above picture 2 new items

1.       Service users: They will use our service which we have developed and deployed on VMs

2.       Load Balancer:  It help Orchestrator to manage traffic between VMs.

Orchestrator auto repair the machine if any machine failed due to some reason and mange the traffic between VMs which online that time.


In above example left bottom VMs goes offline due to some reasons. Now if any new request come for our service then Orchestrator know that one machine is offline, so it sends request to other 3 VMs which available to service the request. Meantime Orchestrator try to repair a machine with some automatic software tools if it is not possible for Orchestrator to make the machine online. If that is the case may be VMs offline due to some hardware reason they need to be fixed by network engineers in datacenter.  Same time Orchestrator will create new machine (VMs) and deploy the service code on it.


You can see bottom left machine replaced with newly created right top VM. Now you can see Orchestrator try to repair the VM if not able to repair create new VM and serve the client request.

Everything working in below gif image


Hope it will help you to design your application Orchestrator independent so in future you want change Orchestrator when required. May be in future new Orchestrator come into cloud world.  

Keep share keep learning

No comments:

Post a Comment