Deployment automation is a key element of the continuous delivery model of software engineering. With continuous delivery, software is built in such a way that it is always ready to be released into production. Continuous delivery and deployment automation enable software makers to shorten time-to-market for product improvements and to react quickly to business challenges or opportunities.
Technologies for deployment automation and continuous delivery
While continuous delivery isn’t entirely a matter of tools and technologies—organizational culture, policies, and procedures matter also—nevertheless the tools are indispensible. Common deployment automation and continuous delivery tools include:
Version-controlled source code repositories. In the shared repository, developers check in their new code daily (or even more often), with each commit assigned a unique identifier. All assets necessary to build the full application package are kept in the repository, and the entire code base can be checked out at the point of either the latest commit or any previous commit.
Continuous integration server. The continuous integration (CI) server automatically pulls code and artifacts from the repository, builds the application, subjects it to automated unit and integration tests, and notifies developers of any failed tests.
Configuration management systems. Critical to deployment automation, configuration management systems allow for pre-programmed deployment of application code and supporting assets across a cluster of host machines in test, staging, or production environments.
Containerization. Deployment automation is made more powerful and flexible by packaging application code and supporting assets within virtual machines or lightweight Docker containers.
Dynatrace: The APM solution for deployment automation and continuous delivery
Building performance quality gates into your automated continuous integration system. Your CI system, rather than merely ensuring that the latest build "works", can invoke Dynatrace to automatically perform agile modeling of the current application architecture and instant analysis of architectural metrics and execution timings, to ensure that performance regressions or bottlenecks are detected as soon as they are introduced into the build.
Enabling you to use standard configuration management technologies (such as Puppet, Chef, or Ansible) to automatically deploy lightweight Dynatrace agents into your applications in test, staging, or production environments.
Providing you immediate visibility into the performance behavior of deployed applications, across all application tiers, containers, and components. Dynatrace traces and records all transactions and supports fast root cause analysis of under-performance, down to the problematic line of code.