Automated ticketing for Kubernetes workloads with Nirmata and Jira
An increasing number of companies are designing their next generation of applications with Kubernetes in mind. Kubernetes is rapidly becoming the de facto container platform with deployment ranging from all major public cloud providers, on-prem VMware clusters, to extensive bare metals server farms.
Why ticketing automation?
When many companies first adopt Kubernetes (k8) they tend to manage their clusters like a conventional datacenter or VMware cluster. Kubernetes Pods (~containers) are treated like VMs or servers. Developers release new software, which gets packaged and deployed to the cluster. Sysadmins make changes directly to deployments and services. With different teams touching the application and cluster resources, the changes to the application and clusters sometimes may not be updated reliably or overlooked or even lost. As a result, reproducibility, speed, and stability of software rollouts suffer.
Ideally, as a team’s use of K8 evolves application YAML files make it into Git repos. Once automation comes into play using homebrewed kubectl scripts, K8 integrations with software like Jenkins/Circleci, or even a GitOps workflow, a team can reliably make working and known changes to a cluster. Still, teams and management are left with the difficulty of trying to figure out who changed what, why, and when. Sure, you can get that info digging around in logs in Git/K8s/Whatever, but that doesn’t provide visibility into your K8 cluster’s workflow. It definitely doesn’t get this activity on your Kanban board or weekly reports.
Kubernetes’ support for declarative configuration is a critical feature that allows for real-world container-based applications to be deployed and maintained without overwhelming Ops personnel with maintenance and deployment tasks. Using Kubernetes means a DevOps engineer does not need to manage individual servers and installation of software/apps on each server. Even with tools like Ansible and Terraform, deployment can often be a time-consuming affair. (Not to mention maintaining/monitoring post-deployment!)
But how do you manage changes to your applications and K8s clusters? How do you track changes? How do you notify and allow for approvals? In the last decade, tracking issues meant an expensive solution like StarTeam or Clearcase, or a lightweight solution like Bugzilla. These worked well with older development models and slower development cycles. Ten years ago our Bugzilla bug list determined what my coworkers and I worked on any given day. But today with the rise of the Agile model, developers and managers have turned to tools like Jira that are designed to allow new development styles and faster customer-focused development cycles.
Nirmata <–> JIRA Integration
For many companies (37,000+) the preferred tool for tracking changes to code and infrastructure is Jira. Jira is an issue tracking and Agile project management suite of software. Many companies depend on Jira as the sole source of truth for their business and development processes. More than just tracking issues it’s used to measure the velocity of development for your team as well the workload of your developers and increasing Ops workloads as well.
While you can manually track changes to your clusters with Jira. It’s time-consuming and things tend to get missed. (I remember when updating bugs/issues frequently interrupted my flow as a Platform Engineer.) Happily, Jira’s REST APIs allow you to integrate Jira with 3rd party applications like Nirmata. Nirmata allows you to automatically track changes made to your K8 cluster. This is not limited to the Nirmata UI, but also includes Git, Nirmata API, and Nirmata integrations like Jenkins, and Circleci.
Nirmata setup is fairly simple
1) Get an API token from Jira
2) Configure Jira in the Nirmata Environment (~namespace)
3) Make sure your Update Policy for the Environment is set to notify
4) Make changes to your running application via the Nirmata UI, Nirmata API, Nirmata integrations, or Git.
5) You’ll see a Jira issue like this
Nirmata’s JIRA integration provides customers with an easy and efficient way to track and notify on application and cluster service changes. Nirmata is a composable platform that can be easily integrated with other service deck platforms to achieve efficient and accurate..