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
CloudBees Flow 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 CloudBees Flow 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. CloudBees Flow provides several key process definition capabilities for defining the “how” (what we call processes), no matter how complex the process is.
- Conditional process branching - which provides tremendous flexibility and granular control to enable you to model complex deployment logic to fit your needs
- 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
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. CloudBees Flow 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
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 CloudBees Flow 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.
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. CloudBees Flow 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 CloudBees Flow Deploy can power your unique deployment scenario? Request a free trial!
Stay up to date
We'll never share your email address and you can opt out at any time, we promise.