Deployment Automation: High-quality software at the push of a button

Deployment (software distribution) refers to semi-automated or fully automated processes to distribute software packages on platforms. [1] The aim of a deployment is to install a new software version on all servers in an environment in a reliable and risk-free manner. [2]

Whereas deployments used to be sporadic in the past, today we see a trend towards regular deployments. Whilst there is no one-size-fits-all approach for all e-commerce platforms, the basic rule applies to all systems is that the fewer changes within a single deployment, making the deployment smaller, the better.

Challenges of manual deployment

The growing complexity of applications, more frequent application changes, and the need to deploy across multiple environments and infrastructures push older deployment processes and tools to their limits. The existing manual or semi-automated application delivery models, in which a system engineer executes planned releases in accordance to instructions on a step by step basis, are inefficient, time-consuming, costly, and error-prone.

Therefore, the manual deployment process is used as little as possible, which aggravates the problem. As a result, deployments become larger in size, have more complex manuals, and present a cluster risk because they cover multiple changes in a single release.

In addition, the employees who execute the deployments gain little routine. Deployments on the development- and staging environments are also often performed by developers themselves; as a consequence, the various environments may drift apart.

Quality and speed thanks to automated deployment

Because of the above-mentioned challenges, manual deployments are increasingly being replaced by automated deployment processes.
Automated deployment is a process in which a release is loaded onto a platform without manual interaction. Deployments are automated to the extent that they can be triggered directly by the development team or even by a project manager, without the intervention of a system engineer. 

Automated deployment can be used for both production as well as test- and development environments. Automation improves the stability of a deployment by allowing the process to run more regularly and prevent the drift of environments. In addition, the costs are significantly reduced by automated deployment.

Orchestration via Octopus Deploy

Unic uses Octopus Deploy to orchestrate automated deployments. Octopus Deploy offers many possibilities to divide complex deployments into steps that can be applied to different environments and with specific characteristics. Parameters can be limited to different scopes and overwritten. All functions are summarized in a clear interface and thus offer the best overview and high flexibility. [3]

The deployment solution is part of Unic's business offer. We believe that automated deployments are an essential part of running a successful, state-of-the-art and innovative e-commerce solution.