Armory Launches Continuous Deployment-as-a-Service Solution with Support from AWS SaaS Factory
By Ranjith Raman, Sr. Partner Solutions Architect – AWS
Automating code deployment across multiple environments is a chronic challenge that many organizations wrestle with. Automation isn’t always consistently leveraged, and undetected bugs can result in production outages. Operational downtime can result in lost revenue and reputation.
To help organizations overcome these challenges, Armory recently launched its Continuous Deployment-as-a-Service solution. Armory is an AWS Partner with the DevOps Competency and a leader in delivering continuous deployment (CD) solutions.
The CD-as-a-Service solution delivers the ability to declaratively automate your entire deployment process across multiple environments so that development teams can focus on writing great code rather than deploying it. By automating code deployments across all environments, this software-as-a-service (SaaS) solution removes demands on developers, and reduces the risk of service disruptions caused by change failures.
Armory’s new solution leverages advanced deployment strategies (blue/green and canary deployments) and allows users to easily trigger a deployment from their existing tools, without any migration effort or restructuring their code and repos.
The AWS SaaS Factory team supported Armory during the design of the solution through deep-dive workshops and sessions that helped accelerate the delivery of the SaaS product.
“The AWS SaaS Factory team was a critical part of the early design thinking of our SaaS offering,” says Stephen Atwell, principal product manager at Armory. “Their documented best practices helped us quickly optimize our architecture to leverage relevant AWS services, and accelerated the delivery of CD-as-a-Service.”
Q&A with Armory
The AWS SaaS Factory team spoke with Stephen Atwell, principal product manager at Armory, to learn more about the CD-as-a-Service SaaS solution, the value its new solution brings to customers, and the key lessons learned from the journey to SaaS on AWS.
AWS SaaS Factory: Can you tell us a bit about yourself and your role at Armory?
Stephen Atwell: I’m the principal product manager who has been leading Armory’s CD-as-a-Service initiative. With this initiative, we are trying to take the best practices we see the largest software shops adopt and make them simple enough for companies of any size to adopt and benefit from.
AWS SaaS Factory: Can you talk about the CD-as-a-Service SaaS solution you have launched on AWS?
Stephen: Historically, many DevOps practices, like blue/green and canary deployments, have required authoring custom orchestration and scripts to manage. For small teams, staffing such complexity is not an option. CD-as-a-Service aims to be the simplest deployment solution on the market that is capable of handling complex use cases, production-ready deployment strategies, and orchestration across large numbers of targets.
With Armory CD-as-a-Service, you can:
- Declaratively automate your entire deployment process, across all environments.
- Leverage canary and blue/green strategies during deployment to mitigate risk.
- Easily trigger a deployment from your existing tools, without a significant migration effort:
- Github Actions – Armory-provided Github Action.
- Spinnaker – Armory-provided Spinnaker plugin.
- Everything else – Armory-provided command line.
- Leverage your existing automation, either in a staging environment after deployment, or in a production environment during a canary or blue/green strategy:
- Leverage your existing monitoring for automated canary analysis during deployment.
- Leverage your existing tests for environment or canary validation.
- Deploy multiple Kubernetes objects together and make rollback decisions for them as a whole.
- Deploy all changes, not just those to deployment objects, through the same pipeline every-time.
- Route traffic with or without the use of a service mesh.
AWS SaaS Factory: Who are your customers and what are some key customer benefits?
Stephen: We have customers over a wide range of industries, ranging from software companies to finance and consumer applications. While CD-as-a-Service is used by companies of all sizes, we are currently focusing on helping smaller companies and teams for whom existing CD solutions have proven too complex.
AWS SaaS Factory: What were your primary business motivations for you and the team to deliver the solution as-a-service?
Stephen: We wanted it to be as simple and easy for a customer to get up and running, and we want to ensure they would not need to spend their own manpower running the solution. Having CD-as-a-Service be a SaaS solution allows customers to start deploying it in minutes, instead of days or weeks, and not worry about operating their own deployment tools.
AWS SaaS Factory: Can you walk us through how AWS SaaS Factory helped you with these efforts?
Stephen: The AWS SaaS Factory team was a critical part of the early design thinking of our SaaS offering. Their documented best practices helped us quickly optimize our architecture to leverage relevant AWS services, and accelerated the delivery of CD-as-a-Service.
AWS SaaS Factory: Can you walk us through the architecture? What AWS services are key?
Stephen: Armory CD-as-a-Service contains components you manage: the command line interface (CLI), remote network agent (RNA), and Github Action (GHA). These components communicate with our SaaS services to deploy your apps to your existing infrastructure.
Figure 1 – Armory CD-as-a-Service architecture.
When you start a deployment from the CLI or GHA, it connects to the CD-as-a-Service SaaS API. While executing your deployment, CD-as-a-Service leverages the designated RNA to connect to your Kubernetes cluster and issue deployment commands and read status of the deployed objects. You can track the status of a deployment in the Armory CD-as-a-Service SaaS user interface (UI).
From an AWS services standpoint, our web UI is hosted from an Amazon Simple Storage Service (Amazon S3) bucket using Amazon CloudFront. Most of our backend services are implemented in Docker containers running within Amazon Elastic Kubernetes Service (Amazon EKS), and we store secrets within AWS Secrets Manager.
AWS SaaS Factory: What were the core technical challenges when designing your SaaS solution?
Stephen: One of the initial challenges we faced was establishing secure connections to our customers’ environments. Another was abstracting the common deployment patterns and components, such that we could offer a simple interface to developers but still enable powerful rollout strategies including blue/green and automated canary analysis.
AWS SaaS Factory: From a technical perspective, how did you make your customer onboarding process seamless?
Stephen: We went through the steps customers need to do, and asked ourselves “how do we simplify this task for new users who have never done it before?” For example, one of the challenges we have is connecting to our customers’ Kubernetes clusters. Many companies do not expose these to the internet. Because of this, we use a lightweight agent to connect clusters back to our SaaS APIs over an outbound network connection.
To connect a new cluster, the customer clicks “Add cluster” in our UI. We then generate a cluster-specific authentication key and give them a single command line to run. That command stores the credentials within a secret and starts the agent reading those credentials. Once the agent connects, we inform them the cluster is connected successfully. The entire process from landing on our signup page to deploying your first app takes less than five minutes.
AWS SaaS Factory: What advice would you share to other software providers as they navigate to SaaS?
Stephen: If your software is hard to run as a SaaS offering, it likely means it’s difficult for your customers to run. Bite the bullet and get a SaaS version. You will reap the rewards of providing your customers with an easier option, simplify your sales process, and can often gain improved visibility into product usage, allowing you to make better product decisions.
To try out Armory’s Continuous Deployment-as-a-Service solution, click on this trial link to get started.
About SaaS Factory
AWS SaaS Factory helps organizations at any stage of the SaaS journey. Whether looking to build new products, migrate existing applications, or optimize SaaS solutions on AWS, we can help. Visit the AWS SaaS Factory Insights Hub to discover more technical and business content and best practices.
SaaS builders are encouraged to reach out to their account representative to inquire about engagement models and to work with the AWS SaaS Factory team.
Sign up to stay informed about the latest SaaS on AWS news, resources, and events.
Armory – AWS Partner Spotlight
Armory is an AWS DevOps Competency Partner and a leader in delivering continuous deployment solutions.