Achieving Modern Software Deployment with Armory Enterprise
Oct 26, 2022 by Adam Frank
Delivering Software to Production Reliably and Safely is Challenging.
Continuous deployment of software to production is a significant challenge for enterprises. The result: most software deployment is cumbersome, slow and expensive. We’ve released this blog as an excerpt from this ebook to help solve these challenges: Armory Enterprise Overview: Achieving Modern Software Delivery
Consider what software delivery looks like for a simple application, developed by one team, and delivered by the hand-crafted software delivery pipeline. Such a pipeline implements a largely manual process, requiring human intervention for approvals at certain steps. This leads to:
- Inefficiencies and difficulty scaling to enterprise needs.
- Variable quality and timeliness in the release of software from development to production.
- Error-prone deployment.
- Rolling back to the last known good version of the application to recover from a bad release.
This is bad news for your technical operations – recovering from a bad release, unplanned outage, or application failure can be a stressful and lengthy process.
The state of this software delivery pipeline makes achieving reliability, repeatability, security and compliance, and frequent deployments difficult. Several common challenges exist:
- The run-time environments — development, test, staging and production — are fragile.
- Bash scripts that deploy the application to staging and production are often run with elevated privileges, adding security risk to the software delivery process.
- Ad hoc blue-green deployments are implemented with scripts that dynamically select which production environment is hosting the last known-good release versus the release running in production.
- These scripts are synchronized with network and load balancer configurations that route traffic to the green (or blue) version of the software in production.
- Mechanisms for implementing security and assuring compliance also require manual steps.
The end result is that reviews of feature tests, performance tests, and security and compliance are all manual steps in a clunky and brittle software delivery process.
The complexity of building and maintaining such pipelines increases the time between deployments and decreases the likelihood of a successful deployment, damaging your customer experience and hindering your developer productivity.
Reliable Delivery of Software to Production with Armory Enterprise
Modern software delivery becomes essential as enterprises manage and coordinate the delivery of more than one application. Armory Enterprise provides a continuous delivery platform that can manage and orchestrate all of your organization’s deployments of applications, services and components using an optimal number of pipelines.
Armory’s continuous delivery platform replaces the scripts, described earlier, that move software into staging and production with Armory-enabled continuous integration and continuous delivery (CI/CD) pipelines.
Armory manages the complexity of many deployments by supporting distinct roles and responsibilities at different stages in the pipelines, and in different environments. By doing this, Armory helps you implement best-in-class continuous delivery pipeline security, including:
- Declarative policy specification (e.g., via the Open Policy Agent).
- Automated policy enforcement, compliance with standards (e.g., ISO 27001, SOC 2, PCI DSS, etc.).
- Privileged access management.
- Role-based access control (RBAC).
- Identity and credentials management.
Modern software delivery pipeline managed through Armory Enterprise monitors software delivery pipelines that implement CI/CD. Package assembly, provisioning, configuration and testing in each environment is all automated. Software is continuously validated with no unnecessary manual steps, adding guardrails as software progresses towards production. The green and red arrows represent the flow of monitoring and metrics to developers, giving them visibility into the pipelines and raising alerts about problems that might prevent their software from being released to production.
Using Armory Enterprise to build, manage and maintain these pipelines decreases the time between deployments and increases the likelihood of successful deployments, improving the quality of software running in production and accelerating your developer productivity.
Automated blue-green deployments allow developers to migrate users to a new release of their software by running staging and production environments in parallel and automating two steps in the CI/CD pipelines:
- Smoke tests are run against a release candidate (e.g., in the blue environment in Figure 2 before it’s promoted to run in production.)
- Traffic is routed from the green to the blue environment. If all goes well, the blue environment runs the newly released software in production, and the green environment is used to stage the next release of the software.
If there’s a problem with the release candidate running in production, the second step is reversed, so that traffic is always routed to the latest stable release.
With these improvements, you’re able to make frequent deployments of high-quality software and in turn deliver value, innovation and superior digital experiences to your customers.
Learn more about Armory’s continuous deployment solutions.
Kubernetes, GitOps, and Modern Software Deployment
Modern software delivery to the cloud enables enterprises to make their applications highly available and manage their performance. Many enterprises deploy their mission critical applications on Kubernetes to do this safely and at scale.