Deployment automation allows applications to be deployed across the various environments used in the development process, as well as the final production environments


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


L;electric-cloud.com;Whitepaper: The Benefits of Deployment Automation;http://electric-cloud.com/resources/whitepapers/the-benefits-of-deployment-automation/;NA;NA;;;Deployment automation is no longer a luxury and has become a de-facto requirement for software companies who want to remain competitive in the current marketplace. Deployment automation streamlines the release process, making deployments systematic, predictable and repeatable.


L;refcardz.dzone.com;Detailed reference card on Continuous Delivery patterns and anti-patterns with sections on deployment automation and the deployment pipeline;http://refcardz.dzone.com/refcardz/continuous-delivery-patterns;Paul Duvall;NA;;;Minimize the time it takes to go from idea to usable software. Learn to use agile techniques and automae the entire software delivery system: build, deploy, test, release.


L;java.dzone.com;Deployment Automation vs. Server Provisioning;http://java.dzone.com/articles/deployment-automation-vs-0;Vincent Partington;2010;;;In my two previous blogs I compared deployment automation to build automation and release management automation respectively. Build automation tools automate the building of software while deployment automation focuses on deploying the software after it has been built. In the other blog I explained that release management tools manage the release process of software but don't do the actual work.


L;apmblog.dynatrace.com;Continuous Delivery 101: Automated Deployments;http://apmblog.dynatrace.com/2014/11/18/continuous-delivery-101-automated-deployments/;NA;NA;;;Leveraging his outstanding technical skills as a lead software engineer, Martin has been a key contributor to a number of large-scale systems across a range of industries. Martin is as passionate about great software as he is about applying Lean Startup principles to the development of products that customers love.


See all Deployment Automation Best Practices and Approaches

Deployment Automation and Management in ITIL



L;wiki.en.it-processmaps.com;Release and deployment management in ITIL - summary and definitions;http://wiki.en.it-processmaps.com/index.php/Release_and_Deployment_Management;Stefan Kempter;2014;;;ITIL Release and Deployment Management aims to plan, schedule and control the movement of releases to test and live environments. The primary goal of Release Management and Deployment Management is to ensure that the integrity of the live environment is protected and that the correct components are released.


L;ucisa.ac.uk;ITIL - A guide to release and deployment management;https://www.ucisa.ac.uk/~/media/Files/members/activities/ITIL/servicetransition/release_deployment/ITIL_a%20guide%20to%20release%20and%20deployment%20mgmt%20pdf.ashx;NA;NA;;


L;slideshare.net;Slide deck: ITIL v3 release and deployment management;http://www.slideshare.net/kunaljoy11/itil-v3-release-and-deployment-management;NA;2011;;



Deployment Automation Tools



L;electric-cloud.com;ElectricFlow;http://electric-cloud.com/products/electricflow/deploy-automation/;NA;NA;;;A single DevOps platform that supports the entire end-to-end software development and delivery process.


L;automic.com;Automic;http://automic.com/products/automic-release-automation;NA;NA;;;Automates your deployments once and runs them without human intervention at any speed, as an integral part of your continuous integration builds. 


V;attunity.com;Rapidly and easily manage large-scale data transmission processes. Coordinate multiple Big Data deployments tasks and data processes.;http://www.attunity.com/sites/default/files/docs/Attunity%20Maestro%202.0%20DS.pdf;NA;NA;Attunity;Maestro


V;go.cd;Go's manual triggers allow you to deploy any known good version of your application to wherever you like. This empowers QA teams with self-service environments, and increases reliability of pushing to production.;http://www.go.cd/;NA;NA;Go;ThoughtWorks


V;octopusdeploy.com;Works with your build server to enable reliable, secure, automated releases of ASP.NET applications.;https://octopusdeploy.com/;NA;NA;Octopus Deploy;


V;saltstack.com;Systems administrators, site reliability engineers and developers configure and manage modern data center infrastructure, applications and code.;http://saltstack.com/;NA;NA;SaltStack;

See all Deployment Automation Tools

Deployment Automation in Specific Environments

Databases



L;sqlmag.com;Building an Automated Database Deployment Pipeline;http://sqlmag.com/database-administration/building-automated-database-deployment-pipeline;Grant Fritchey;2014;;;Data is at the core of most businesses. At the core of data storage and retrieval, you'll often find some type of database. While a lot of work has been done in recent years supporting automation in application deployments, deploying databases is largely a manual affair.


L;infoq.com;Best practices for database change deployment automation;http://www.infoq.com/articles/Database-Change-Deployment-Automation;Yaniv Yehuda;2014;;;As business needs are the most significant driver of change, doing better with less and delivering it sooner is what differentiates leading and successful companies from the rest. When a competitor delivers relevant features, faster and with better quality than you, you're eventually going to lose market share.


L;cmatskas.com;Database deployment automation with DbUp;https://cmatskas.com/database-deployment-automation-with-dbup/;NA;2016;;;


L;www.sswug.org;Deployment Automation for SQL Server Integration Services (SSIS);https://www.sswug.org/sswugresearch/community/deployment-automation-for-sql-server-integration-services-ssis/;NA;2016;;;(Nat Sundar) SSIS was not originally designed with automated deployment in mind. However, any database that uses SSIS projects and their packages needs a way of scripting the deployment of them if the


L;dbmaestro.com;Document Download: The Challenges and Pitfalls of Database Deployment Automation;http://www3.dbmaestro.com/the-challenges-and-pitfalls-of-database-deployment-automation;NA;2016;;;



Web Applications

 


L;withouttheloop.com;Node.js - Automating the Deployment of Node.js Applications - Without the Loop;http://withouttheloop.com/articles/2016-05-26-automating-deployment-of-nodejs-applications/;NA;2016;;;Have a build process to produce a deployable (non-development) package. Host on Linux with pm2 to manage processes and restarts. Move files with rsync. Perform installation activities with ssh. Reverse proxy through nginx for improved performance and SSL termination.


L;informatica.com;Informatica Deployment Automation Script;https://marketplace.informatica.com/solutions/script_deployment_automation_script;NA;2016;;;


L;jetbrains.com;Automating Deployments with TeamCity and Octopus Deploy;https://blog.jetbrains.com/teamcity/2015/11/automating-deployments-with-teamcity-and-octopus-deploy/;NA;2016;;;


L;stackoverflow.com;Automating Deployment for Web Applications;http://stackoverflow.com/questions/45783/automate-deployment-for-web-applications;NA;2015;;


L;rackspace.com;Best practices for deploying applications on the cloud;http://www.rackspace.com/blog/automate-your-deployment-process/;Chris Nagele;2014;;


L;slideshare.net;Slide deck: Automating Web Application Deployment;http://www.slideshare.net/mathewbyrne/automating-web-application-deployment;Mathew Byrne;2011;;


L;toptal.com;Deploy Web Applications Automatically Using GitHub Webhooks;https://www.toptal.com/devops/deploy-web-applications-automatically-using-github-webhooks;NA;NA;;;


L;gohugo.io;Hugo - Automated Deployments with Wercker;https://gohugo.io/tutorials/automated-deployments/;NA;NA;;;


L;docs.oracle.com;Auto-Deploying Applications in Development Domains;http://docs.oracle.com/cd/E11035_01/wls100/deployment/autodeploy.html;NA;NA;;;


L;serverfault.com;Linux - Discussion: automated linux deployment and config management at small scale - is it worth it?;http://serverfault.com/questions/32840/automated-linux-deployment-and-config-management-at-small-scale-is-it-worth-it;NA;NA;;;



Cloud

 


L;redapt.com;AWS - Creating an automated deployment pipeline to AWS isn't as hard as you think!;http://www.redapt.com/creating-automated-deployment-pipeline-aws-isnt-hard-think/;NA;2016;;;Well, well, well. Look who's back. You got a little taste of our delicious blog buffet, and now you're hungry for more. Well, you're in luck, because today we're cookin' up a whole big batch of AWS goodness. So strap on that feedbag and dig in! (Can you tell it's almost lunch?).


L;amazon.co.uk;AWS Scripted: How to Automate the Deployment of Secure and Resilient Websites with Amazon Web Services VPC, ELB, EC2, RDS, IAM, SES and SNS;https://www.amazon.com/AWS-Scripted-Automate-Deployment-Resilient-ebook/dp/B00PAWPZ7Q#nav-subnav;Christian Cerri;2014;;;This cookbook shows you in detail with practical examples how to automate many tasks using the CLI and bash. Launch Servers, Elastic Load Balancers and RDS Databases from comprehensive scripts. Also included is a scripted approach to setting up SES (Amazon's email service) and the SNS callbacks required. The book also focusses heavily on Security: Apache, PHP, ModSecurity and MySQL are discussed and scripted in detail.


L;opennessatcee.com;How to automate deployment of an Azure-hosted APT repository;http://www.opennessatcee.com/post/120217208104/microsoft-open-source-how-to-automate;NA;2015;;;In this next video in our "how to" series, I'll create a simple JSON template that describes a Web App, a master Ubuntu VM, two client Ubuntu instances and the custom script extension paired with scriptgen to automate the deployment of an Azure-hosted APT repository with a hook metapackage across many VMs. Watch the video full screen on Channel 9.


L;openstack.org;Recorded conference session: Automated deployment of highly available OpenStack cloud;https://www.openstack.org/summit/openstack-paris-summit-2014/session-videos/presentation/automated-deployment-of-a-highly-available-openstack-cloud;Florian Haas, Adam Spiers;2003;;;Automation of OpenStack deployment is rapidly maturing, with many approaches now available. However the matter of ensuring that automated deployments are highly available remains to some extent the white elephant in the room - everyone wants reliable infrastructure, but setting it up often still requires complex manual work.


L;blog.newrelic.com;AWS - Modular Infrastructure Deployments at New Relic;https://blog.newrelic.com/2017/02/10/aws-architecture-modular-infrastructure-deployments-video/;NA;2016;;;Recently our very own Software Engineer Lisa Moreno appeared on This Is My Architecture , a new video series from Amazon Web Services that highlights innovative architectural solutions on the AWS Clou


L;powerupcloud.com;Deployment Automation Using AWS Code Deploy;http://blog.powerupcloud.com/2016/03/24/deployment-automation-using-aws-code-depoly/;NA;2016;;;


L;weblogs.asp.net;Automatic deployment of multiple repositories to Azure;http://weblogs.asp.net/bleroy/automatic-deployment-of-multiple-repositories-to-azure;NA;2015;;


L;slideshare.net;Slide deck: Deployment Automation for Hybrid Cloud and Multi-Platform Environments;http://www.slideshare.net/Urbancode/deployment-automation-forhybridcloudsibmsharma;IBM UrbanCode;2014;;


L;fabriccontroller.net;Azure, Slack - Automatically deploy and manage complete environments on Azure using Slack;http://fabriccontroller.net/chatops-deploy-and-manage-complete-environments-on-azure-using-slack/;NA;2016;;


L;iaas.uni-stuttgart.de;TOSCA - a standard for portable automated deployment and management of cloud applications;http://www.iaas.uni-stuttgart.de/RUS-data/INBOOK-2014-01%20TOSCA%20Portable%20Automated%20Deployment%20and%20Management%20of%20Cloud%20Applications.pdf;Tobias Binz, Uwe Breitenbücher, Oliver Kopp, Frank Leymann;2014;;


L;gooddoglabs.com;IAM - From IAM Requirement to Orchestrated Deployment in 30 Minutes;http://www.gooddoglabs.com/iam-deployment-in-30-minutes/;NA;2015;;


L;kurmi-software.com;Cisco HCS - Video: How to automate deployment on Cisco HCS with Kurmi?;http://www.kurmi-software.com/en/how-to-automate-deployment-on-cisco-hcs/;NA;2016;;;



Enterprise

 


L;blog.vce.com;Policy Based Deployment and Automation for Enterprise Applications;https://blog.vce.com/2015/04/27/nirvana-with-policy-based-deployment-and-automation-for-enterprise-applications/;Lakshmi Pedda;NA;;


L;divinesystems.com;OBIEE - Repository deployment automation and Archiving old Repository files in OBIEE 11g using python scripts;http://www.divinesystems.com/blog/?p=193;NA;2016;;


L;adminarsenal.com;Using PDQ Deploy Auto Deployment;http://www.adminarsenal.com/using-pdq-deploy-auto-deployment/;NA;NA;;;



Deployment Automation How To

Deployment Automation Using Specific Tools



L;toptal.com;Deploying web packages using Microsoft IIS;http://www.toptal.com/devops/deploy-web-applications-automatically-using-github-webhooks;Jason Lee;2012;;;Deploying web applications to one or more servers manually can often be a monotonous process, and take up a significant amount of your time. With little effort, it is possible to automate the process of deploying your web application with almost zero human intervention.


L;msopentech.com;Tutorial: Using Ant and Jenkins to automate the deployment of Java projects from the Azure Toolkit for Eclipse;https://msopentech.com/blog/2015/04/16/tutorial-using-ant-and-jenkins-to-automate-the-deployment-of-java-projects-from-the-azure-toolkit-for-eclipse/;Martin Sawicki;;;This tutorial describes how to automate the deployment of Java projects to Azure using the Azure Toolkit's command line Ant support and Jenkins. Many of the concepts presented here can also be applied in other automation scenarios or with other command line tools.


L;hiddentao.com;Best practices for automated deployment with Docker;http://www.hiddentao.com/archives/2013/12/26/automated-deployment-with-docker-lessons-learnt/;NA;2013;;;Recently for my client's project we decided to automate our staging server deployments usingDocker, as a pre-cursor to rolling out Docker deployments across our production servers is everything worked out well. For those who haven't heard of Docker before I can briefly summarize what it does.


L;kenbonny.net;How to Handle Automatic Deployment in a Small Project;http://kenbonny.net/2017/01/23/deploy-automation-on-a-smaller-scale/;NA;2016;;;Automatically deploying software doesn't only help huge projects that have set up their own Octopus deploy. It can also help on a smaller scale. To help my wife with her job, I build her a CLI tool


L;publib.boulder.ibm.com;Automating the Deployment Process;https://publib.boulder.ibm.com/infocenter/toolsctr/v1r0/topic/sgtk_sa_win/automating_deployments.html;NA;NA;;;


L;chromatichq.com;Automated Servers and Deployments with Ansible & Jenkins | Chromatic;https://chromatichq.com/blog/automated-servers-and-deployments-ansible-jenkins;NA;NA;;;



See all resources on Deployment Automation Using Specific Tools

 

Deployment Automation Training



L;redhat.com;Red Hat Certificate of Expertise in Enterprise Deployment and Systems Management;http://www.redhat.com/en/services/training/ex401-red-hat-certificate-expertise-enterprise-deployment-and-systems-management-exam;NA;NA;;;The Red Hat Certificate of Expertise in Enterprise Deployment and Systems Management exam (EX401) tests candidates' knowledge, skills and ability to use Red Hat-supported products, including Red Hat Enterprise Linux® and Red Hat Network Satellite to deploy and manage systems in an efficient, scalable, replicable, and reliable manner.



Deployment Automation Case Studies



L;msdn.microsoft.com;Automated build-deploy-test workflows in Microsoft TFS;https://msdn.microsoft.com/en-us/library/hh191495.aspx;NA;NA;;;You can use a build-deploy-test workflow on Team Foundation Server to deploy and test your application when you run a build. This lets you schedule and run the build, deployment, and testing of your application with one build process.


L;techblog.constantcontact.com;Deployment automation for Continuous Delivery at Constant Contact;http://techblog.constantcontact.com/devops/deployment-automation-continuous-delivery-pt1/;Ron Duphily;2013;;;I want to share with you the improvements we've made to our deployment automation to support Continuous Delivery (CD). In this blog post, I'll describe how we deploy our applications using CD. Today, our development teams are looking for ways to get features and bug fixes out into production as quickly as possible.


L;patpohler.com;Using Beanstalk to setup Automated Deployments;http://www.patpohler.com/automated-deployments-beanstalk/;Patrick Pohler;2014;;;When I started freelancing I didn't worry too much about deploying code to a client environment. All I did was simply FTP up the changed files. As Anecka started getting more projects, as well as longer-term contracts which required on-going maintenance, I noticed more and more of my time was getting sucked into figuring out what needed to be be deployed and on what server.


L;voiceofthedba.com;Redgate - Watch the Manual DBA v Automated Deployment Challenge;https://voiceofthedba.com/2017/01/05/watch-the-manual-dba-v-automated-deployment-challenge/;NA;2016;;;At last year's SQL in the City, I played the part of a manual DBA making changes and deploying those from development to test, staging, and production environments. Actually, I don't think we went


L;allthingsdistributed.com;The Story of Apollo - Amazon's Deployment Engine;http://www.allthingsdistributed.com/2014/11/apollo-amazon-deployment-engine.html;Werner Vogels;2014;;


L;thoughtworks.com;Kickstart CD with deployment automation;https://www.thoughtworks.com/insights/blog/kickstart-cd-deployment-automation;NA;2016;;;



Deployment Automation Consultants and Service Providers



L;itmethods.com;Deployment Automation - iTMethods;http://www.itmethods.com/aws-automation/deployment-automation/;NA;2016;;;


 


Further Reading