Total Control of Even Your Most Complex Automated Deployment Processes

We all know deploying large custom multi-tier applications is tough and complex. Many have some automation with scripts to handle aspects of the overall application deployment, but we are all too familiar with those multi-page deployment instructions with lots of manual tasks, aren’t we? These manual steps, coupled with pockets of script-based automation are error prone.

How do you guarantee that deployments can be run confidently across different environments repeatedly? That is really one of the core challenges many of the deployment automation products are trying to solve.

Enter: Model-Driven Deployments

ElectricFlow Deploy allows you to model the logic necessary to automate even your most complex deployment processes using an intuitive, task based graphical user interface.  This shortens learning curves, increases re-usability, and helps you deliver better software faster.

Using ElectricFlow Deploy, you can break down deployments into their most basic components: What (code)needs to be deployed Where (on which environments) and How (what steps, in what order, and following what conditions) will it be accomplished.

ElectricFlow provides several key process definition capabilities for defining the “how” (what we call processes), no matter how complex the process is.

  1. Conditional process branching – which provides tremendous flexibility and granular control to enable you to model complex deployment logic to fit your needs
  2. Parallel steps – which enable you to streamline your deployment executions to significantly reduce deployment times

This flexibility to support the automation of uniquely complex deployment procedures in a simple, repeatable way – across all your different environments – leads to deployment automation that is predictable, reliable – and: BORING.

Let’s dive into more details.

Conditional process branching

branching - deployment automation

A fundamental capability that enables these sophisticated automated processes is the ability to determine process flow at any step of a process, based on specific run-time conditions. ElectricFlow Deploy can make process branching decisions based on a rich set of criteria, such as status of the last step run, data stored on system objects, and custom conditions written in Javascript.

The combination of these conditions enables you to write flexible yet portable process logic. For example, if the retrieval of the data failed and the environment is “dev” clean up and try again, but if it fails and the environment is “QA” create an issue in your issue tracking system and save the environment for further analysis, but if it fails and the environment is “production”, rollback to the last good working version.

Parallel steps

parallel steps

Another fundamental capability that maximizes the throughput of your application deployments is the ability to run steps in parallel. For example, you might choose to have the systems in your DB tier built out and configured at the same time that you build out and configure your web servers. You might then set a dependency to not start the app server until the other two tiers are up and running.

In ElectricFlow Deploy, parallel steps are process branches where all (or some) of the transition conditions evaluate to true. When this happens, then all of those paths will start executing. This is powerful because it enables you to have selective parallelism. For example, I could have 3 paths that execute in parallel based on a number of servers in the whole environment, and have other paths remain dormant unless a certain server count is reached. Having this type of flexible process definition enables deployment processes which can be written and used for the widest set of conditions, cutting back on automation sprawl and, eventually, total cost of ownership.

parallel steps2

Conclusion

Automating application deployments is critical to achieving faster delivery of high quality software. But achieving reliable and repeatable deployment automation across a variety of deployment environments and configurations is challenging. ElectricFlow Deploy makes this possible by providing sophisticated logic in it’s deployment processes with capabilities such as conditional branching and selective parallelism, enabling intelligent processes which can be used successfully across many different complex environments and configurations. This ultimately increases efficiency and throughput of your software delivery teams.

Want to find out for yourself how ElectricFlow Deploy can power your unique deployment scenario? Request a free trial!

Dan Gordon

Dan Gordon

Dan Gordon is a Product Manager at Electric Cloud with more than twenty years of experience in the IT software industry. He brings a focus on helping companies build the best tools to help development and IT organizations achieve continuous delivery of quality software. Previously, Dan served as product manager and systems architect for the enterprise IT automation software business within HP Software. He has also held managing and systems engineering roles at Opsware, and been a developer, a network administrator, and a security administrator at Sun Microsystems. Dan is passionate about enabling all software companies (and all companies are software companies) to deliver value to their customers at high velocity.
Dan Gordon

Share this:

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe

Subscribe via RSS
Click here to subscribe to the Electric Cloud Blog via RSS

Subscribe to Blog via Email
Enter your email address to subscribe to this blog and receive notifications of new posts by email.