Kubernetes, GitOps, and Modern Software Deployment

Dec 22, 2022 by Anna Daugherty

What is Kubernetes? 

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.

Kubernetes (K8s) is a platform to automate deployment, scale and operate application containers across server groups. Because of its features and popularity, Kubernetes has robust support from all major cloud providers, including AWS (EC2 & EKS), Azure (AKS), Google Cloud (GKE) and Oracle.

Armory has embraced Kubernetes as one of our preferred deployment targets. This allows you to choose which cloud is best suited to run and manage your applications in production. It also allows you to leverage the abundantly available K8s community support.

Armory’s Kubernetes Agent is a lightweight service that:

The result is high-performance, large-scale Kubernetes deployments.  Replicating these configs (e.g., helm charts) and security & privacy controls in each K8s cluster allows you to scale up to thousands of clusters with minimal latency.

Figure 1. Kubernetes Cluster

What is GitOps?

GitOps is another imperative of modern software delivery. Kelsey Hightower describes GitOps as enabling “versioned CI/CD on top of declarative infrastructure.”  

GitOps uses Git as a single system of record for infrastructure and applications. With Git supporting your software delivery pipelines, your developers use familiar tools to make pull requests to automate both application deployments and operations tasks. 

Armory Enterprise manages the automated delivery of software from GitOps-enabled development to a K8s cluster hosted by Amazon, Microsoft, or Google. Consider the GitOps ecosystem shown on the left side of the figure. Using Armory Enterprise to deploy their software to K8s, developers are empowered to specify which applications run on which infrastructure to optimize the configuration, reliability, performance, monitoring and security of each application.

With GitOps and declarative cloud-native infrastructure, development teams can manage their applications and infrastructure “as code,” applying their SDLC practices to both.

CI tools and GitOps provide the source of truth for new application code to the CI/CD pipeline. Armory Terraformer and GitOps provide the source of truth for the infrastructure as code (IaC). 

The continuous deployment pipeline in Figure 2 begins with the Amory platform checking that the application and infrastructure software are in sync, secure (e.g., using scanned and tested container images, binaries, libraries, source code, etc.), paired (e.g., when container images are baked) and validated together throughout the pipeline.

Pipelines-as-Code for Modern Software Deployment

Armory Enterprise standardizes software delivery workflows across teams by leveraging Pipelines as Code. Pipelines as Code allow you to define, test, refactor and scale your software delivery pipelines as an extension of the GitOps ecosystem. 

Armory’s customers define their pipelines in YAML, JSON or HashiCorp Configuration Language (HCL), while Git ensures that they are version controlled and in sync with their applications and infrastructure. Since these languages support templates and modules, your developers can share best practices, reuse code and maintain pipeline consistency for your organization. 

The Armory platform also supports building a new pipeline by composing existing pipelines or including stages from other pipelines. These features make it faster and easier for developers to get a new application deployed and running. Learn more about enabling pipelines-as-code in Armory.

Learn more about Armory’s modern continuous deployment solutions.

Share this post:

Recently Published Posts

How to Become a Site Reliability Engineer (SRE)

Jun 6, 2023

A site reliability engineer (SRE) bridges the gap between IT operations and software development. They understand coding and the overall task of keeping the system operating.  The SRE role originated to give software developers input into how teams deploy and maintain software and to improve it to increase reliability and performance. Before SREs, the software […]

Read more

Continuous Deployment KPIs

May 31, 2023

Key SDLC Performance Metrics for Engineering Leaders Engineering leaders must have an effective system in place to measure their team’s performance and ensure that they are meeting their goals. One way to do this is by monitoring Continuous Deployment Key Performance Indicators (KPIs).  CD and Automated Tests If you’re not aware, Continuous Deployment, or CD, […]

Read more

What Are the Pros and Cons of Rolling Deployments?

May 26, 2023

Rolling deployments use a software release strategy that delivers new versions of an application in phases to minimize downtime. Anyone who has lived through a failed update knows how painful it can be. If a comprehensive update fails, there are hours of downtime while it is rolled back. Even if the deployment happens after hours, […]

Read more