Orchestration – Connecting the dots in ITOps, DevOps, CloudOps
On one end where Cloud adoption is growing rapidly in enterprises, be it public, private or hybrid cloud so is the challenge of managing the infrastructure and application delivery. The existence of legacy infrastructure along with latest technologies adds to the woes for IT operations team.
With the need for business to be agile, infrastructure agility and agile application delivery becomes imperative. IT Ops, DevOps and CloudOps needed a transformation, as standalone automation of IT operation tasks was not meeting the business demand. Concept of Orchestration in the IT world is not new as it has been addressed through different means as found suitable at different times based on the IT system and operations being automated. But, as organizations build their IT systems over a period of time, adopting and retiring different technologies/processes at different points in time through their business journey, the automation systems were rather developed as disparate elements. This poses a bigger challenge and requires standardization of orchestration across the organization wide IT systems and an integrated way of administering automation. Many of us get confused between the terms orchestration and automation.
Automation is concerned with a single task – launching a web server, configuring a web server, stopping a service.
Orchestration, however, is concerned with automating multiple tasks in a workflow – of a process. A provisioning process may be comprised of multiple tasks and involve multiple systems. An “application” is not just a single server, it’s likely several servers – web, app and database in a traditional three-tier architecture.
What is Orchestration?
Orchestration, in an IT context, is the automation of tasks involved with managing and coordinating complex software and services. The endeavor is more complex in a cloud environment because it involves interconnecting processes running across heterogeneous systems in multiple locations.
Why orchestration and what is its final goal?
The goal of orchestration is simple to say but complex to perform. Goal is to automate the configuration, coordination and management of software and software interactions in complex infrastructure environment. The process involves automating workflows required for service delivery.
Various orchestration solutions are available in the market today. There are pure orchestration solutions offered by BMC, CA, VMware, HP CSA etc but they come with huge price tag and limited customization. This has created opportunity for many cloud management players such as Righscale, Scalr etc and configuration management players such as puppet, chef, Saltstack, Ansible etc to extend their capabilities to orchestration as well.
What do you expect in an orchestration platform?
1. Protect existing investment:During the life of an enterprise, adoption of new technologies happens as and when business demands and this results in expansion of technology landscape. The orchestration platform should in no way try to replace a technology for which an investment is already done by the enterprise. Rather co-exist with it and add value.
2. Adapt to latest technology changes
Adoption of latest technology is inevitable. Orchestration platform’s architecture should be flexible enough to adopt and adapt to these changes.
3. Cost of maintaining the orchestration platform
Sufficient consideration has to be given to determine the cost of training the manpower on any new scripting requirements for adopting such a platform, ease of implementation (implementation cost), flexibility for staged implementation etc apart from the licensing and support costs.
4. Vendor Lock-in
Most of the solution claim to avoid any vendor lock-in. But true vendor lock-in is when you are given the flexibility to not depend on the platform for life. Replacing an orchestration platform with new would cost more and poses loads of challenges.
Could standardisation resolve this?
Various solutions available in the market today are based on different programming/scripting languages like ruby, python etc. The IT ops will now need to know programming language on top of system administration skills.
To make the orchestration more simple, standards based on Domain Specific Languages (DSL) is emerging. DSL brings in higher level of abstraction to simplify the complexity of provisioning the entire cloud stack with limited customization..
There are multiple Cloud Orchestration Tools based on DSL like:
a) AWS Cloudformation (CFN)
b) Openstack Heat
c) Openstack Mistral
d) Openstack Murano
e) Apache Brooklyn
Standards available for Cloud DSL,
There are few frameworks available in the market that are based on templates like
a. Corestack (www.corestack.io) – Template based orchestration. Use any template
b. Cloudify – TOSCA based
c. IBM UrbanCode – Uses HEAT
More around WHY DSL in my next blog