As you start to adopt DevOps and Continuous Delivery, you look for tools that can help you speed up development cycles, standardize infrastructure management, and automate software delivery.
Provisioning and configuration management tools such as Terraform, AWS CloudFormation, Puppet, Chef, SaltStack, and Ansible are popular choices for standardizing software installation and management on infrastructure and environments. These tools automate infrastructure by creating and managing your environments, using scripts that you write.
However, if you are looking to implement Continuous Delivery, you’ll need to automate the process of releasing your applications and deploying them to different environments in the enterprise release pipeline. You need Application Release Automation (ARA) to automate the release process from code to delivery, and to automate deployment from development to testing to staging to production.
Application Release Automation integrates provisioning and configuration management tools as part of the process and brings together all of the other steps and tools in your software delivery cycle to accelerate delivery and provide the enterprise-level scalability, reusability, and standardization that your business requires.
Provisioning environments, orchestrating releases, and deploying applications are all closely related parts of the software delivery process, so you might think that you can use one tool to do it all. But provisioning software won’t give you the foundation you need for successful DevOps at scale. Why not…?
You have to write many customized scripts to deploy each different application to each different environment. These scripts must be tested and forever maintained
Deployment patterns that are limited to what you script, with no “on-the-fly” pattern changes
Simple “undo” actions or no rollback capability at all… unless you script it
No support for release coordination, with limited management for technical dependencies only
Visibility that’s limited to automated work in the area of provisioning and simple deployments, with no tracking of manual tasks in the process
Limited status information that is only usable by technical users, with no automated risk assessment and no notification until something goes wrong
Basic reports that only reflect the provisioning phase of the pipeline and that don’t guide teams toward improvements
Scripts to collect information beyond basic compliance data must be hand-coded and maintained
Basic user management and access control that requires technical expertise to set up
Disparate processes and one-off scripts that don’t scale across the organization
A standardized deployment plan that is automatically generated, based on a model of your application and environment. The model determines and executes the right steps each time, so extensive scripts are not needed
Support for advanced patterns such as canary, blue-green, and rolling deployments
Intelligent, automated rollback when things go wrong
Scalable release orchestration and comprehensive dependency management
Oversight and management of your real-world, end-to-end release process, including both manual and automated tasks
Visibility into release status across the pipeline, with built-in risk intelligence that provides proactive alerts when releases are in danger of failing
Reports that visualize the entire release process and provide goal-based insights for improving release efficiency and speed
Easy-to-access, easy-to-read, comprehensive compliance data that is automatically collected
Granular access control that’s easy to configure and manage
Standardized processes that scale across teams and promote reuse
We started by looking at provisioning tools like Chef, Puppet, and Ansible to build out our DevOps plans. Once we saw XebiaLabs, we immediately understood the limitations we would encounter if we tried to repurpose provisioning tools and write scripts to automate deployments at scale. XebiaLabs met our needs for fully automated and self-service deployments, granular control over user roles and privileges, and integrations with existing tools.
- Jonathan Berdah, CTO of Customer Service and Operations at Ullink
Provisioning and configuration management tools are perfect for automating your infrastructure and ensuring consistent configurations across your environments; you absolutely need one! But to scale DevOps, you need more. You need a platform that will let you take control of your release pipelines, so you know you’re getting full visibility across – and control over – your real-world software release and deployment process.
Sometimes, combining tools makes them more effective. In the same way a hammer and chisel together help you create a sculpture, using provisioning and CM tools together with the XebiaLabs DevOps Platform help you scale DevOps across your enterprise. You get the best of both worlds: automated environment provisioning and setup followed by seamless application deployment, with full visibility and control of your end-to-end release processes.
The XebiaLabs DevOps Platform delivered Speed up deployment time while greatly reducing errors and failed deployments, dependency management and self-scheduled…View Case Study
As an integrator of services across tools and companies, NetDespatch has a complex environment with a lot of moving parts and global reach. To stay on…
As an integrator of services across tools and companies, NetDespatch has a complex environment with a lot of moving parts and global reach. To stay on…View Case Study
10 Reasons You Can’t Scale DevOps with Configuration Management Tools
10 Reasons You Can’t Scale DevOps with Configuration Management ToolsView Post