If you are a Kubernetes user, operator, or developer deploying into K8s, you would be familiar with various components like Deployment, HELM, Istio, Kubernetes Resources like Operators, and CRDs. Kubernetes is an excellent open-source orchestration for container applications, but it requires scripts- many scripts to write and then maintain- while your organization is scaling. This blog will highlight how developers and the operation team can use the OpsMx Intelligent Software Delivery(ISD) platform ( built on open-source Spinnaker) to deploy into on-prem or managed Kubernetes 10X faster and safer.
We believe DevOps is a three-legged tool with Speed, Quality, and Risk being the primary components to be considered while doing software delivery. And anything that constraints those 3 pillars are surely a challenge and have to overcome quickly.
Some common challenges faced during deploying Kubernetes application at scale are:
- Cumbersome application deployment with multiple K8s resources
- Handling many files such as Deployments, Service, Configfile, Secrets for different environments
- Various ways of packaging K8s applications ( HELM, Kustomize…)
- Difficult to rollback due to lack of version-controlling
- Managing deployment to multiple K8s clusters
Let us check each one in detail.
Automate Kubernetes Deployments using pipelines
What are Kubernetes Deployments, ReplicaSet, StatefulSet?
Deployment is used to define the desired state in Kubernetes, and the Deployment controller changes the actual state to the desired state. The definition mentioned in a YAML file includes the application name, version name, deployment type, replicas of the pods, container image, etc.. One can define Deployments to create or delete ReplicaSets or to remove existing Deployments and adopt all their resources with new Deployments.
To deploy a stateful application, you want to use storage volumes to provide persistence for all workloads. And Kubernetes Statefulset (instead of Deployment) can provide persistence across pod (re)scheduling.
You would probably require handling some Kubernetes resources and run a few commands to deploy an application. But to achieve a frequency of multiple deployments per day, running kubectl commands is not scalable.
Speed your K8S Deployment by 10X using the CD Orchestration tool
OpsMx ISD Platform offers native support for Kubernetes Deployments.
As the Kubernetes ecosystem evolves at your organization, OpsMx ISD makes Kubernetes deployments for stateful or stateless simple and faster by using pipelines. All you need to do is create the desired specification in a YAML file, and the OpsMx ISD pipeline takes care of your deployment.
Watch the below demo-video to learn how you can create a pipeline-> add stages-> use manifest files-> add target environment-> and perform repeatable deployments.
Gain flexibility to use any Kubernetes package managers- Helm & Kustomize
What is Helm & Kustomize?
We all love HELM and Kustomize because they make the microservice deployment easy and straightforward.
What is HELM? HELM is a tool to combine all Kubernetes YAML manifest files into a single installable package.
What is Kustomize? Kustomize lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is.
But in both the practices one has to manually perform deployment.
Different developers would use different kinds of practice- such as HELM and Kustomise- to manage their application deployment. There are two problems- non-standardised process and second the deployment is still manual and slow.
Standardize your deployments with pipeline supporting HELM and Kustomize
OpsMx has native support for Helm and Kustomize based deployments. You can leverage your favorite package and configuration managers as managed resources inside our ISD pipeline and can bake manifest deployable artifacts.
For all those teams deploying using simple artifacts, our pipeline supports them all. A single tool for all Kubernetes practice.
Watch the demo by Nirmalya, Head of Engineering, OpsMx, and find out how you can use pipelines to bake artifacts from Kustomize.
Deploy Safely into Kubernetes using with OpsMx ISD, and Istio
What is Istio?
Istio is a widespread service mesh implementation that provides flexible and secure network connection among microservices and provides traffic routing, traffic splitting, metric tracking, and service discovery. It is a popular solution for managing the different microservices that make up a cloud-native application.
In canary release, traffic splitting between baseline pods and the canary pod can be a nightmare, when done manually. So the implementation of release strategies like Blue-green or canary is complex.
To gain additional flexibility in request routing (based on browsers, device, location, etc.) and manage traffic flow between micro-services and application components, Istio is installed into the Kubernetes Envoy sidecars configured to join all the pods in a cluster.
Implement canary and blue-green deployment using OpsMx ISD pipelines
OpsMx ISD has native Istio support. We offer pipelines with built-in deployment strategies, canary and blue-green strategies that will allow you to deploy applications safely into Kubernetes.
Below image represents canary strategy for Kubernetes deployment:
To understand more on how to implement canary with OpsMx ISD, you can watch the canary implementation using Spinnaker demo video by Anoop, Sr DevOps Engineer, OpsMx.
Shift Focus to Business Value and stop writing scripts
Kubernetes Manifest, CRDs, and Operators
Kubernetes users usually spend some time on extending existing APIs and making a new use-case out of it. These new extensions of existing Kubernetes controllers are referred to as Kubernetes operators or CRDs.
Typical examples of writing scripts to create operators are: monitoring to check the health of an application post-deployment, or storing deployment logs for auditing, or creating CRDs for (say) GitOps style deployment, or creating new logic for canary implementation.
Stop creating Kubernetes operators with OpsMx
OpsMx ISD Platform has first-class support for Kubernetes Resources. OpsMx can create out-of-the-box capabilities around Kubernetes deployment strategies so that you don’t have to make complex customer resource definitions(CRD). From complex deployment strategies (canary & blue-green) to GitOps style deployment OpsMx ISD provides predefined pipelines. Furthermore you can easily check the health status of application clusters, deployments status, and perform auditing of software delivery using OpsMx ISD. OpsMx lets you start your continuous delivery journey from day-1 operations, instead of creating a Kubernetes Operator. Watch the below video where we have highlighted how you can use OpsMx intelligent platform to empower your DevOps engineer with necessary capabilities such as compliance and policy enforcement, and 360-degree visibility and dashboard. Take it and use it.
Reduce risk of Kubernetes deployment with Automated Verification
What are Canary Deployments?
Canary Deployment is a deployment strategy to release your software to production without impacting the customer experience. Verifying the new release ( canary) is vital for deciding if it has to be exposed to 100% of the production traffic.
Many organizations perform manual verification of their canary performance and quality. And manual verification is never accurate and fast enough.
Reduce your Risk by 90% through Intelligent Verification
OpsMx ISD provides a mechanism to analyze logs and metrics of your canary and assess the risk using AI/ML. Based on the, the CD pipeline can stop a canary from deployment and roll back to traffic to the baseline version. OpsMx ISD integrates with various monitoring and logging tools to fetch the data and perform the regression analysis. And it is fast and accurate.
Save all the toil of manual verification and perform automated regression of performance and quality for seamless Canary deployments.