[This article was written by Josh Pederson.]
Recently in the ElectricFlow 5.4 release we rolled-out Dynamic Cloud Environments – a powerful new feature for integrating deploy automation with cloud VMs. This new capability allows you to define, provision, and manage cloud VMs directly from the ElectricFlow UI, with power under-the-hood to seamlessly execute all of the necessary API calls for the target cloud platforms and configuration management tools.
Let us review how deploy automation and cloud resources fit naturally together – like peas and carrots – and what this new feature allows you to do:
Define once, provision repeatedly
At the core of the ElectricFlow Dynamic Cloud Environments solution is a simple and robust template model that allows DevOps teams to define each type of resource for their environment. This definition includes access credentials to either AWS EC2 or OpenStack cloud platforms, reference to existing AMIs, and optional middleware configuration with Chef recipes. All of the nitty gritty details of cloud resources are captured in these template definitions that are called during ElectricFlow’s automated provisioning sequence to ‘spin up’ cloud resources on-demand.
List of Resource Templates within ElectricFlow. These definitions capture the core details of individual cloud resources.
With flexibility in mind, ElectricFlow allows for easy integration with other cloud platforms, such as Windows Azure or VMware vSphere, and additional middleware configuration such as Puppet or SaltStack. Once registered within ElectricFlow, these additional platforms and tools can become available as options within the template definitions.
Modeling of Environment Templates allows users to define the exact specification of tiers and corresponding cloud resources for their desired cloud environment.
Automated provisioning when you want it
With template definitions in place, ElectricFlow automatically provision the defined cloud environment as part of the overall application deploy process. Under the hood, ElectricFlow reads the Environment Template definition and makes the necessary cloud platform API calls to provision resources as defined in the Resource Templates. If Chef configuration is required, ElectricFlow will first finish provisioning then call the user’s Chef Server to run recipes and configure middleware.
The status of each step of the overall provisioning sequence is readily available in our ‘progressive disclosure’ UI, showing users a very clear indication of their progress. Once the new cloud environment has been completely provisioned and configured, ElectricFlow will then initiate the deployment process and place application artifacts exactly where they belong on the new environment.
Fine tune control of cloud VMs
Cloud environments by nature can be ephemeral and used to suit specific deploy scenarios in the overall release pipeline. To prevent excessive spend or overuse of physical resources ElectricFlow users have direct access to manage their cloud environments and retire them as needed. When a QA Team has gone home at the end of the day, their cloud environment can be retired and easily re-provisioned for use tomorrow. Cloud resources can also be retired directly through their platform console with ElectricFlow Deploy registering the change within the product UI.
The evolution continues
The dynamic cloud environments solution has evolved from a set of plugins to a first-class feature in ElectricFlow. This evolution will continue in upcoming product releases with support for scaling out (e.g, adding more cloud resources on-demand), resource monitoring, and support for additional cloud platforms and configuration management options. The end goal is to achieve true seamless integration of cloud resources into application release automation.
Want to see a demo of ElectricFlow’s Dynamic Cloud Environments capabilities?
Attend our upcoming webinar to see how ElectricFlow provides seamless integration with cloud platforms and reduces the level of knowledge and effort required to define, provision, and manage cloud resources.