Upwave Improves Code Quality and Consistently Deploys to Production in <20 minutes with Armory CD-as-a-Service

Upwave, an SMB brand analytics firm with an engineering team of < 20, has transitioned from automated deployments to staging to fully-automated deployments to all environments by adopting Armory Continuous Deployment-as-a-Service. CD-as-a-Service allows Upwave to integrate all existing tests, add new smoke tests, and use advanced deployment strategies to mitigate risk during production deployments.

“With Armory CD-as-a-Service, we can do much more complex deployments than what we had before. We could have built it ourselves, sure. But the fact that CD-as-a-Service makes it easy to automate testing and deployment allowed us to eliminate a bunch of custom scripts across our SDLC.”

~Christopher Baldwin, Chief Architect, Upwave

Upwave’s Results

Deployments

100+ per week

Change Failure Rate

<5%

Mean Lead Time

<20 mins

Finding the Right Fit

When Armory first approached Upwave, Upwave knew Armory only as the company scaling and enhancing Spinnaker: the ​​open-source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence. For a relatively small company of ~70 employees and <20 engineers, Upwave Chief Architect Christopher Baldwin initially believed Armory’s solutions to be too heavyweight for the types of projects that Upwave had planned, like other CD Offerings in the space. “I looked at what Armory offered as an interstate trucking system, which is cool and powerful if you’re big and you need that sort of stuff,” said Baldwin. “In reality,” he continued, “we just need a little local delivery truck for our scenario. So it seemed like overkill.”

One other important and common consideration that drove the initial skepticism: cost. Other pre-built CD solutions they’d evaluated had generally been overcrowded with features—and consequently, overpriced relative to the value they would provide. “For our size company,” Baldwin shared, “something that’s going to be $5,000 a month is a big decision. If it’s an interesting product that does a lot of things we don’t need, then it’s probably not worth it for us.”

“Our feedback was basically, ‘Yeah, it’s interesting, but I think it’s out of our scope,’” said Baldwin of the initial impressions.” However, a mutual investor suggested that Upwave take a second look—but not at Armory’s existing Enterprise Spinnaker offering. Instead, Upwave looked at Armory Continuous Deployment-as-a-Service. Armory CD-as-a-Service automatically orchestrates the deployment and verification of code across multiple environments — and allows instant rollbacks when required. Moreover, CD-as-a-Service is easy to adopt and requires negligible migration effort: it can be invoked from any existing toolchain or CI system, and can deploy existing Kubernetes manifests without modification. Registering Kubernetes clusters is a single command per cluster regardless of whether they are internet-accessible, allowing development teams to easily deploy to a range of targets. Most importantly for Baldwin and the Upwave team, it would allow them to easily address some key last-mile challenges in their deployment flow

The main benefit we’ve realized in adopting Armory CD-as-a-Service is that we have converged on a simpler model of CI/CD which enables us to do more, so it’s easier, it’s simpler, and we have more functionality. Simply put, it raises the bar for quality across our engineering org as a whole.

After looking closer at how Armory CD-as-a-Service differed from competitive offerings and from Armory Enterprise Spinnaker, Baldwin decided that it would be worth implementing to fully automate all the steps from PR to production—provided it could deliver on all of its promised features.

Manual Approvals Presented Hurdles to Procedural Consistency and Scalability

Upwave has done very well with its existing system: $29M in funding across 5 funding rounds, 70 employees, and some of the world’s most well-known brands as customers. However, like many growing startups, success and growth haven’t made common SDLC challenges—like ensuring that the latest, highest quality code hits production the moment it’s ready—any easier to solve.

In discussing how code goes from PR to prod, Baldwin told us, “If our manual approver fails to trigger deploy to production, we could go weeks where we’re running three or four versions newer in stage than we are in production. We then have environments running different versions of the codebase, which is, to say the least, not ideal. That impacts the quality of my application.”

Armory CD-as-a-Service gives us a faster and more reliable way to address issues and ensure they don’t come back.

The most robust and customizable CD solutions—like Armory’s Spinnaker-based Continuous Deployment (aka Armory Enterprise)—have tremendous flexibility and power across a huge range of use-cases. However, the resources required to implement, operate, and maintain such flexible toolsets have historically made adoption cost-prohibitive to many would-be users. Describing this challenge that many SMB and mid-market developer orgs experience, Baldwin shared this insight: “We don’t have the resources of Netflix. We have a team of under 20, and our DevOps team is one person, so it’s difficult for a team of our size to take on something like Argo or Spinnaker. To adopt and maintain other solutions, we’d have to dedicate resources that we can’t afford to lose.” Upwave’s lack of Enterprise resources did not, however, prevent them from wanting to proactively address procedural inefficiencies. After all, any company that hopes to scale sustainably must build processes that can support hockey-stick growth: that is, non-linearly with headcount.

Before Upwave adopted Armory CD-as-a-Service, they had been doing continuous delivery to staging. Nevertheless, there was one consistent challenge that slowed the flow of fresh code to prod: a developer had to manually do smoke tests, and upon success, manually trigger each promotion to production. Baldwin recounted that the team had talked for years about fully automating production deployments. But this would have required Baldwin’s team to write—and crucially, maintain—lots of complex tooling. As many small companies find, the preciousness of time and energy requires leadership to prioritize “must-have” over “nice-to-have” projects. While that necessity rarely creates problems right away, over the long term, delaying action can lead to technical debt in the form of unscalable manual workflows. “So this idea that we can now enhance our deployments with automated end-to-end smoke testing—it’s a no brainer, right?” Baldwin asked rhetorically, “but we’ve never had it.” He continued, “That’s where CD-as-a-Service becomes beneficial for smaller organizations.”

The Solution: Armory Continuous Deployment-as-a-Service

In leveraging Armory CD-as-a-Service to address the last-mile challenges in their existing deployment process, Upwave has seen an overall improvement in code quality and a reduced lead time for changes. Baldwin shared this perspective on addressing change failures in production: “CD-as-a-Service gives us a faster and more reliable way to address issues and ensure they don’t come back.” Another major benefit that Baldwin shared: “With Armory CD-as-a-Service, we can do much more complex deployments than what we had before. We could have built it ourselves, sure. But the fact that CD-as-a-Service makes it easy to automate testing and deployment allowed us to eliminate a bunch of custom scripts across our SDLC.”

with Armory CD-as-a-Service, we can do much more complex deployments than what we had before.

In addition to running smoke tests in staging, Upwave is also using CD-as-a-Service to run these smoke tests during deployment to production. “This canary strategy decreases the risk of frequent production changes,” Baldwin told us, and “if production fails a test, CD-as-a-Service automatically rolls back the change.” He continued describing the new functionality: “We’re able to do more complex deployments now—like deploying database schema changes, and using blue-green deployments. We can do more complex deployments easier because of ​​Armory CD-as-a-Service, which increases quality and efficiency.”

In addition to running smoke tests in staging, Upwave is also using CD-as-a-Service to run these smoke tests during deployment to production. “This canary strategy decreases the risk of frequent production changes,” Baldwin told us, and “if production fails a test, CD-as-a-Service automatically rolls back the change.” He continued describing the new functionality: “We’re able to do more complex deployments now—like deploying database schema changes, and using blue-green deployments. We can do more complex deployments easier because of ​​Armory CD-as-a-Service, which increases quality and efficiency.”

Looking Ahead

Before wrapping our discussion, Baldwin shared his broad view of progress since adopting Armory: “We have definitely improved our capabilities in the CI/CD space.” Going further, he told us, “the main benefit is that we have converged on a simpler model of CI/CD which enables us to do more, so it’s easier, it’s simpler, and we have more functionality. Simply put, it raises the bar for quality across our engineering org as a whole. Isn’t that part of the software development dream?”

Commit. Deploy. Repeat.

Focus on writing great code, not deploying it!