Deployment automation refers to automating the deployment of software applications or systems. It involves using various tools, scripts, and technologies to streamline and accelerate deployment, reducing manual effort and potential errors.
Traditionally, software deployment involves manual steps such as copying files, configuring servers, and executing scripts. This manual approach was time-consuming, error-prone, and often resulted in inconsistencies between different environments. Deployment automation addresses these challenges by automating the entire process, from building the software package to deploying it in the target environment.
Deployment Automation Process
An automated deployment process has the following inputs:
Adoption Expectations
System Components | MVP | MVP+ |
---|---|---|
Document existing deployment process |
+ |
+ |
Adopt recommended CI\CD tools |
+ |
+ |
Adopt recommended artifacts storage tool |
+ |
+ |
Develop automated deployment script |
+ |
+ |
Track deployments and versions |
+ |
+ |
Use the same packages for every environment |
|
+ |
Define access model and promotion approval process |
|
+ |
Post-deployment automated smoke tests |
|
+ |
Tools
Functionality | Tool Name |
---|---|
CI/CD tools |
Azure DevOps, Jenkins, GitHub Actions, |
Artifact Management System |
JFrog Artifactory, Azure Artifacts, Azure Container Registry |
Roles
Name | Responsibilities |
---|---|
Solution Architect System Architect |
Design and propose cloud native solutions or solutions that supports simple virtualization and containerization |
Build Engineer System Engineer |
Define and document deployment process Create and maintain automated pipelines to deploy solution |
Operations Manager |
Manage teams and activities related to deployment automation |