Kubernetes Deployments
Deploy any set of Kubernetes objects together, to multiple clusters, without changing the existing packaging, while managing the environment promotion automatically and jointly deciding whether to proceed or rollback for all.
What are Kubernetes Deployments?
Kubernetes deployments are container image deployments that target Kubernetes clusters.
The vast majority of IT leaders cite Kubernetes as being a current deployment target. With half deploying to Kubernetes in multiple clouds.
Problem: As your Kubernetes adoption grows, so does the latency, and complexity
Simply put, adding new Kubernetes targets and attempting to deploy your applications can take hours, involve multiple people, require custom code, and have downtime. As your Kubernetes adoption grows, so does the latency, and complexity of managing the growing number of accounts, configurations, and credentials.
Deploying beyond a single deployment within a single Kubernetes cluster – to multiple Kubernetes clusters – and managing the promotion lifecycle from one environment to the next is complex and difficult.
Leveraging multiple Canary or Blue/Green strategies that roll out multiple independent ReplicaSets and jointly deciding whether to progress or rollback for both, limits you from leveraging the best strategy for the environment.
Using one branch per environment limits the power of Git and using multiple branches. Changing your existing manifests from deployment objects to custom rollout objects is time consuming and redundant. Updating every cluster each time a new feature or fix is released is time you are not focusing on building value for your business. Updating tightly coupled services can cause breakage and downtime.
Horizontal Pod Autoscaling (HPA) state and load must be taken into account when deploying in order to ensure maximum uptime and efficient use of resources. When deploying changes other than your rollout object, they may not take effect until you manually restart your rollout object. Changes outside rollout or deployment objects don’t follow the same deployment rules.
Armory’s Solution: declarative relationships and constraints that manage the promotion lifecycle across multiple clusters and environments
Armory enables you to define your Kubernetes deployments within a yaml file in an intuitive, declarative format, that can then be checked into git and maintained alongside your application code. Armory is purpose-built to deploy at any scale, to any Kubernetes cluster, regardless of provider (EKS, AKS, GKE) with declarative relationships and constraints for each environment that manage the promotion lifecycle across multiple clusters and environments so you can commit your code and watch it safely, reliably and securely deploy to production without causing downtime or impacting your customers.
Customer Success Story
Armory helped Upwave and their team of ~20 engineers fully-automate their deployments to increase deployment frequency to 100+ times a week with a change failure rate of <5% using Armory Continuous Deployment-as-a-Service.
Learn more about Upwave’s success story with Armory →How Kubernetes Deployments Work with Armory
- Install an agent that connects to your cluster. The agent does not have any business logic per cluster; the agent is for communication purposes, so there’s no need to update each cluster with new releases or fixes.
- Structure Git repositories in whatever way makes the most sense to you. You can trigger Armory easily from wherever you are doing things today – any CI tool, like Github Actions.
- Deploy any kubernetes object type.
- Define how each environment relates to one another in the deployment manifest.
- Define constraints you want satisfied before deployment can proceed to next steps.
- Use different deployment strategies for different environments.
- Automatically account the amount of resources HPA has scaled for your application to make sure that both the old and new versions are running at that current scale.
- Deploy multiple Kubernetes manifests together and jointly decide whether to proceed or rollback for all.
- Use webhooks and canary and impact analysis to leverage your existing automation to validate changes.
- Use Manual Approvals to involve human judgment before code reaches production.
- Armory runs the complete deployment regardless of what changed, not just updates to the replicaset. This means that if you deploy additional objects, such as a configMap or a secret, and only those additional objects change, the replica set will still be restarted and the same production validation logic/deployment strategy will be run during the restart. This ensures that the other changed manifests are picked up by the new version. All changes follow the same strategy, regardless of what changed.
Benefits of Armory’s Kubernetes Deployments
Reliability, availability, and agility have always been a major concern in distributed systems. Providing highly available and reliable services in cloud computing is essential for maintaining customer confidence and satisfaction and preventing revenue losses. Scale deployments to hundreds of Kubernetes clusters with minimal latency. Improve usability, enable account management at the team level and gain the ability to add new accounts on the fly without downtime. Focus your resources on your competitive advantage, not maintaining tooling.
Who it Benefits
- Platform Ops teams – Simplify managing multiple clusters that are running across the organization and deploying to them. Spend less time building, maintaining, and troubleshooting deployments; and spend more time building value for your business.
- Application Dev teams – No need to figure out how to deploy or how to optimize your deployment. Focus on writing great code. Commit your code and watch it deploy to production safely, securely, reliably and automatically, everytime. See which stage and environment your deployment is at, the state, and all the information you need to be informed and aware.
- Executives – Save money with cost efficient and easier-to-maintain tooling, reduce the risk of outages that impact your customers; maintain SLAs, focus your resources on building your unique business value.
Summary
- Managing kubernetes deployments can be arduous and time consuming, taking you away from building real differentiated value for your customers and business.
- Adding new Kubernetes targets can cause downtime to onboard your developers, and latency can increase.
- With Armory, you can secure, simplify, and scale your Kubernetes deployments, with ease, so you can focus more time and resources on your competitive advantage – your software!
FAQ
How Scalable is Kubernetes?
When Should I Use Kubernetes at Scale?
How Fast Does Kubernetes Scale?
Commit. Deploy. Repeat.
Continuous Deployment at any scale, for all developers.