There is lots of diversity in technology, platform, tools, applications and infrastructure and we often do mixing of these for our business. Preparing infrastructure for such business is become tedious and time consuming job hence we require technology not only to automate your infrastructure but also to manage & provide different services as needed.
Many times, it happens that we deploy more resources then what we required and some time we have shortage of resources. What if we get resources on-demand? Getting resources on-demand with automated provisioning infrastructure will solve these resources problems.
Main benefit of orchestration is to reduce time to provision cloud services. It provides quick and easy automated solution for your cloud configuration, provisioning and deployment. It simplifies building, managing cloud infrastructure as per business requirement. We can customize it to solve our business requirement
Developing infrastructure with heterogeneous compute, networks, storage devices from variety of vendors become very difficult. It will take more cost & time. Cloud orchestration is the solution for this. It is easily interconnects all such heterogeneous components using simplified automation which minimize the errors & manual workload.
Using orchestration, we can achieve below 4Ms
Orchestration helps in easy deployment of resources, applying patches or doing changes into infrastructure, providing security compliance. It provides monitoring, metering service. It helps for usage, accounts, capacity management.
In typical IT environment when request come to build new environment then engineers should perform hundreds of manual tasks to deliver requested environment even though some tasks are automated. Here, Cloud Orchestration is come into picture to perform such tasks.
Orchestration will enumerate different resources; it will do configuration & interconnection between them with the help of declarative template. AWS Cloud Formation, OpenStack Heat provides such declarative template that orchestrates all IT processes to build environment as single workflow and when we execute these templates it will run as single process.
Orchestration has potential to reduce IT cost, save engineer’s time for new assignment. It will overall improve delivery time. Orchestration lets you easily and quickly deploy your infrastructure in a consistent & repeatable using fully configure template.
It works in easy three steps
- Select your predefined template
- Modify it as per your requirement
- Deploy the template
Heat is main project of OpenStack orchestration. It helps users to deploy complex cloud environment with the help of simple plain text called as template. User just needs to modify this template and run in OpenStack environment. This will allow user to spawn multiple instances, network resources and storage resources in automated fashion.
Heat composed of following components:
- Heat-api: This component provides support for OpenStack native Rest API.
- Heat-api-cfn: This component provides API which are compatible with AWS Cloud Formation
- Heat-engine: This main component which provide actual orchestration facility
Heat provides orchestration using template which called as Heat Orchestration Template (HOT). We can write Heat template with native heat format or it also support AWS Cloud Formation format. Heat natively understand template written for AWS or OpenStack, it simplifying application portability between AWS & OpenStack. Heat template often written in YAML format but it also understands JSON format.
Simple Template structure:
HOT templates are defined in YAML as below
heat_template_version: 2016-10-14 Description: # a description of the template Parameters: # Declaration of input parameters Resources: # Declaration of template resources Outputs: # Declaration of output parameters heat_template_version: 2016-10-14 This indicate which template version we are using for orchestration Description: # a description of the template This is optional description filed, gives information about workload that can be deployed using this template Parameters: # Declaration of input parameters Input parameters needed during initiating template Resources: # Declaration of template resources This define resource information Outputs: # Declaration of output parameters This specify how to pass information back to user
Basic Heat Template Deployment
Below you can see a very simple HOT template
heat_template_version – tell template of version which we are using for deployment. We are using 2013-05-23 version
Resources – section more details about what kind of instance, its type, flavour, and network we are deploying with this instances
Create stack using template
$ heat stack-create my_first_stack -f heat_1a.yaml