Autodesk sails into new markets in 4 weeks with deployment built on Armory and AWS 

In order to deliver software to their customers faster, Autodesk, a global leader in design and make technology, needed to standardize on cloud-native tools and adopt a multi-cloud continuous delivery platform. In 2019, Autodesk partnered with Amazon Web Services (AWS) and Armory to manage deployments reliably and safely.

“The partnership has been flawless. The AWS and Armory program managers were always on top of things.” 

Shrirang Moghe, Sr. TPM/Sr. Software Architect at Autodesk 

Looking for enterprise-grade automation and support to speed delivery into new regions

Moving to continuous delivery across multiple regions is a huge step. Plus, Autodesk has to do it quickly to meet current and new customer needs.

Finding a platform that automates building, packaging, testing, and deploying software to select cloud regions was also important. Autodesk liked what Spinnaker offers, but to benefit from enterprise-grade scalability and support, Autodesk needed something more.

We use many of the products that AWS has to offer but unifying deployment tooling under Autodesk’s CloudOS with Spinnaker technology was critical for our regional scalability

 Constructing continuous software delivery 

So, the search was on for a way to supercharge Spinnaker. After considering the options, Autodesk chose Armory Cloud Enterprise running on Amazon Elastic Kubernetes Service (Amazon EKS) and deploying to Amazon Elastic Container Service (ECS) and Amazon Elastic Compute Cloud (EC2). 

Other critical AWS services that are being used in the project are AWS Fargate and AWS Lambda. Amazon Professional Services was also brought in to help with integration and solution design. In nearly 6 months, Autodesk, Armory, and AWS implemented what Moghe described as “best of the breed in terms of CI/CD.” Working with AWS has enabled Autodesk to deploy one service in production already with many more to come this year. 

“Armory is definitely the best-in-class right now on Spinnaker. Amazon has done a bang-up job of delivering towards the goal of automated regional expansion on top of Spinnaker, namely: Lambda with Blue/Green deployment strategy & new account creation.” 

Shrirang Moghe, Sr. TPM/Sr. Software Architect at Autodesk 

Shortening the delivery time 

One of the first projects the partnership tackled was building CloudOS’s Skipper. Skipper can understand an Autodesk application definition file (ADF), which states what resources should be created and deployed in a service or service ensemble and the region for deployment. Skipper sits on top of Armory Cloud Enterprise, parses the ADF, and presents a deployment pipeline using Jsonnet (a data templating language) to Spinnaker on the back end. Thanks to innovations like Skipper and an access control service, Autodesk can be confident that deployment to a new region will take less time, reducing from a few months to just weeks. 

Plugging in to automatic, dynamic account registration to save time and effort 

With AWS and Armory, Autodesk built a Spinnaker plugin for CloudOS that can create an account dynamically. Consider a service deployed in the U.S., for example. If someone changes a line in the deployment manifest to say it should be deployed in another region, the plugin would understand the change and handshake with a system Autodesk built. If there was no account for that region, the system would create one. It also creates the virtual private cloud (VPC), creates the networking backend, and bubbles up the account coordinates into Spinnaker and Skipper. Skipper then uses Spinnaker with an Amazon API to deploy the service into the brand-new account.

That is the true power of automation. No one has to fill out multiple forms.

It’s now easy being a blue/green (dual-environment) or canary (staged) deployment 

Autodesk uses AWS Lambda for code-driven infrastructure and microservice development. Because Spinnaker does not have out-of-the box support for Lambda, AWS, Armory, and Autodesk built a native integration between the two to enable blue/green and canary deployment. Blue/green deployment uses two environments to increase application availability and reduces deployment risk by simplifying rollback if a deployment fails. Canary deployment enables function and service rollout in stages, reducing release time and accelerating delivery cycles. The integration is now also available to the open-source community. 

Commit. Deploy. Repeat.

Focus on writing great code, not deploying it!