Using Spinnaker to Migrate to Containers At Scale
Jun 7, 2019 by Armory
There are many advantages to switching to a containerized, service-oriented application architecture. However, there are also undeniable challenges that arise from moving to containers, especially for enterprise-scale applications.
The core of the challenge for enterprise container migrations is complexity. Running hundreds of applications managed by a team of hundreds or more developers that uses thousands of containers can easily become unmanageable. Add in a multicloud deployment and keeping track of dev, test and production environments as well as the distributed responsibility for application health common in a DevOps system, and containers can seem like a recipe for chaos.
When thinking about these challenges, it’s important to remember that Spinnaker is more than just a way to get your code safely into production. Spinnaker is a powerful tool to help manage complexity—though it’s true, managing the deployment process is its core function. Here’s how Spinnaker facilitates moving to containers at scale.
Spinnaker offers a single pane of glass to look at your entire application and your pipeline. Getting visibility into the entire application, even if it’s distributed over multiple public clouds or a hybrid cloud, gives you the dramatically more control over the entire system.
In addition, Spinnaker often takes the place of several tools. For example, when Scopely started using Spinnaker with Armory’s support, it replaced four tools (two of which were custom-built deployment tools built internally) with Spinnaker. Consolidating the number of tools you’re using to manage the application lifecycle simplifies your system and is an important step towards reducing complexity.
Reducing the learning curve
For companies making the switch from VMs to containers, at scale, the individual and collective learning curve is a major impediment. Spinnaker can alleviate this challenge in two ways:
- By reducing the number of tools. As mentioned above, Spinnaker can take the place of several deployment tools, reducing the number of new applications your team has to learn
- Spinnaker’s UI abstracts away many of the decisions about deployment, so your team doesn’t have to care about the best deployment location for a particular service
Spinnaker is tightly integrated with Kubernetes, so using Spinnaker to move an application from VMs to containers on Kubernetes is relatively simple and can be accomplished without having to configure anything in the cloud provider console directly.
When you’re dealing with multiple teams and dozens of pipelines, Spinnaker’s ability to templatize pipelines is crucial both for rapidly creating multiple pipelines as well as for managing those pipelines.
Templated pipelines allow you to create a master pipeline template with child templates. Instead of changing configurations in every pipeline, you can change the parent template and all of the changes will automatically populate in the child templates. This makes management easier, and provides visibility into compliance with corporate governance policies.
When migrating to containers at scale, managing the complexity inherent in a large distributed, containerized application is one of the biggest challenges. In the real world, you also have to consider your team’s skillset and what new technologies the move to containers will involve. Spinnaker can help the transition by providing a single pane of glass to manage the entire application, reducing the number of tools your team needs to use and leveraging templates to make managing multiple pipelines and multiple environments feasible.