Deployment automation allows applications to be deployed across the various environments used in the development process, as well as the final production environments
Table of Contents:
Below we have compiled publicly available sources from around the world that present views on Deployment Automation.

Deployment Automation Overview

Deployment automation allows applications to be deployed across the various environments used in the development process, as well as the final production environments. This results in more efficient, reliable, and predictable deployments. Solutions that automate your deployment processes improve the productivity of both the Dev and Ops teams and enable them and the business to develop faster, accomplish more, and ultimately build better software that is deployed more frequently and functions more reliably for the end-user.

Main Benefits of Deployment Automation

  • Repeatability – Every deployment deploys the same
  • Fewer errors – Removing manual steps reduces human error
  • Anyone can deploy – eliminate bottlenecks by removing the need for experts to do the work
  • Work on what matters – developers can spend time working on new features, not on fixes for manual deployments
  • Customer satisfaction – frequent updates with new features addresses customer needs sooner and keeps organizations competitive
  • Lower costs – fewer errors, fewer human hours needed for deployments means lower costs

Deployment Automation Approaches

  • Scripting – deployments can be automated by writing scripts which perform actions automatically on specific environments in a specific context. The scripting approach is simple but limited, because as soon as environments change, without careful ongoing maintenance, scripts will break and deployments can fail.
  • Deployment with CI systems – continuous integration servers like Jenkins make it possible to deploy applications automatically as part of the build process. This is an extension of the scripting approach, because the CI system usually is not aware of the details of the application and the underlying environment, rather the CI system automatically triggers scripts which can deploy the application.
  • Basic deployment tools – there are numerous tools that can deploy applications automatically, without requiring organizations to write and maintain scripts. However, these tools are typically suitable only for simpler applications that do not have multi-step or multi-component installations, because they do not have "orchestration" capabilities. So they cannot support deployments that have a sequence of steps occurring in a certain order with dependencies between different components. Also, the basic tools typically cannot fully model the underlying environment on which the application is installed.
  • Model-driven deployment – the most advanced tools are able to package even the most complex software systems, model the environments on which these systems run, and orchestrate the deployment process across numerous software components, servers and installation steps. They also provide visibility, tracking and auditing into what happened in deployments across the organization.
  • Continuous Deployment - an extreme form of deployment automation where numerous, or all, changes made in development undergo automated testing and are immediately deployed to production.

Deployment automation is closely tied to release automation. An essential part of releasing a software product is deploying it, first on development environments, then on QA and UAT environments, and finally on the real production environment, either on the developing organization's premises, on a customer's premises or on the cloud. Deployment automation is a central part of modern Application Release Automation tools, and an important facilitator of accelerating software release cycles from months to weeks or even days, as dictated by the agile software development approach.

Deployment Automation Best Practices and Approaches

Gartner Magic Quadrant: Application Release Automation

  Download the full report


See all Deployment Automation Best Practices and Approaches

Deployment Automation and Management in ITIL



Deployment Automation Tools


See all Deployment Automation Tools

Deployment Automation in Specific Environments

Databases



Web Applications

 


Cloud

 


Enterprise

 


Deployment Automation How To

Deployment Automation Using Specific Tools



See all resources on Deployment Automation Using Specific Tools

 

Deployment Automation Training



Deployment Automation Case Studies



Deployment Automation Consultants and Service Providers


 


Further Reading

  • Software Deployment ProcessResources offering general descriptions of the deployment process, deployment in specific environments, how deployment works in specific tools, and examples of deployment processes at Amazon, GitHub and more.
  • Deployment AutomationDeployment automation allows applications to be deployed across the various environments used in the development process, as well as the final production environments. 
  • Types of Software DeploymentsResources on how to deploy complex software on different contexts, environments and stacks.
  • Deployment PlanningGeneral resources on deployment planning, deployment in specific environments such as Geronimo, Oracle, WebSphere, and examples of deployment planning at real organizations.
    • Examples of Deployment PlanningGeneral resources on deployment planning, including detailed examples of software deployment planning at real organizations.
    • Software Deployment ChecklistGeneral resources on what a deployment checklist should contain, and specific checklists for general deployments, and for deploying in specific environments such as Google Cloud, Django and Drupal.
    • Deployment Plan TemplateResources offering document templates that can be used to plan complex deployments, and examples of deployment templates used by real organizations.

 

 

  • No labels