ChatGPT for DevOps — Kubiya
Tags: devops, ai
Published: 2023-11-19 13:53:50


In the dynamic realm of tech, Artificial Intelligence (AI) plays a pivotal role in DevOps. It’s the powerhouse that turbocharges efficiency, agility, and continuous improvement for DevOps engineers.

AI’s automation eliminates repetitive tasks, freeing up time for strategic endeavours. Its predictive analytics foresee issues, preventing disruptions and enabling smarter decision-making. Moreover, AI fosters intelligent collaboration by offering insights and enhancing communication.

In the ever-evolving landscape of technology, AI isn’t just a luxury; it’s a necessity for DevOps engineers navigating the fast-paced world of software development.

## Let me introduce DevOps AI — Kubiya

Kubiya stands as an internal developer platform driven by conversational AI, tapping into the power of Generative AI and Large Language Models (LLMs) to deliver a user-friendly, self-serve interface. With Kubiya, engineering teams effortlessly consume DevOps services by engaging in conversations with their dedicated DevOps assistant, Kubi. This platform empowers engineers to seamlessly access resources from a myriad of popular engineering tools. Whether it’s running CI jobs, listing deployments, managing Kubernetes namespaces, handling Jira tickets, or updating configuration files in Github, Gitlab, or Bitbucket, Kubiya is the go-to assistant for a wide array of tasks.

**Understanding Kubiya AI**: 🎭 Kubiya AI isn’t your typical DevOps player — it’s a next-gen maestro. Instead of just orchestrating processes, it conducts purposeful movements that align with the core principles of efficiency, collaboration, and continuous improvement. As we explore Kubiya AI, we not only understand how it works but also discover the reasons behind its outstanding performance in the world of DevOps.

### Key Features of Kubiya AI:

* **Smart Automation with Intent** 🤖: Kubiya AI, a mindful automator, uses machine learning for purposeful automation — liberating teams strategically.

* **Predictive Analytics for Proactive Operations** 🔮: Kubiya AI foresees issues purposefully, aligning predictive analytics for proactive DevOps, minimizing downtime, and optimizing resources.

* **Intelligent Collaboration with Meaning** 💬: Orchestrating meaningful communication, Kubiya AI automates incidents for efficient teamwork, ensuring alerts reach the right stakeholders purposefully.

* **Continuous Improvement Rooted in Data-Driven Insights **📊: Kubiya AI provides purposeful data-driven insights, contributing to a continuous improvement ballet within development and operations teams.

### The True Future of AI in DevOps:

* **Efficiency Redefined with Strategic Intent **💡: Kubiya AI is a beacon of efficiency in DevOps, where every action, from automating tasks to predicting issues, is driven by strategic intent — to reshape team operations and unlock unprecedented productivity.

* **Human-AI Synergy Anchored in Purpose **🤝: The collaboration between human expertise and Kubiya AI is intentional, not arbitrary. It aims to provide intelligent support, enhancing decision-making with a clear purpose — to drive innovation and efficiency.

* **Agile and Adaptive for Strategic Advantage **🔄: Kubiya AI’s agility and adaptability go beyond technical prowess; they are strategic advantages. In the ever-changing landscape, Kubiya AI purposefully learns, adapts, and contributes to the strategic agility of DevOps processes.

## Components of Kubiya

## Connectors

Kubiya offers native integration with a variety of common cloud providers and solutions. For users who require a customized solution or want to extend functionality, the platform also supports integration with any RestAPI or platform through custom connections.

Connections are a pivotal part of Kubiya workflows, allowing developers to establish a centralized repository of actions that can be reused across various workflows. They offer a uniform method to access and manage actions, hence enhancing modularity and promoting code reuse.

## What are connectors?

Connections are collections of actions that can be executed during a chatbot conversation. Actions are concise, independent units of code designed to accomplish a particular task and deliver a result. They can be summoned using the action type within a workflow.

For instance, a connection might comprise an action that fetches the current time or an action that lists available virtual machines.

## How do connectors work?

Connections are realized as a suite of APIs provided by the Kubiya SDK, ready to be called by Kubiya. When a Kubiya workflow calls an action, it supplies any necessary parameters to the connection and obtains a result in return. This result is then utilized as input for other actions or workflow stages.

Connections can be designed for specific tasks, such as accessing a database or engaging with a cloud platform. They also support various programming languages, though currently, only Python is endorsed.

## Built-in connectors

Integrations include support for Amazon Web Services, Jira and Kubernetes, allowing you to get started quickly. Using these integrations allows one to quickly enter the world of Kubiya without developing their own custom actions. A significant feature of our platform support is the continual expansion of our support to meet evolving cloud technologies.

## Pre-Built Integrations vs. Custom Actions

**Pre-Built Integrations**:

* Rapid, hassle-free setup.

* Wide platform support.

* Hassle-free maintenance and updates.

* Ideal for most users.

**Custom Actions**:

* Requires coding expertise.

* Tailored for unique requirements.

* You manage maintenance.

* Best for specific technical needs.

Select the approach that matches your technical proficiency and integration goals

## Supported platforms

* Kubernetes

* Amazon Web Services (AWS)

* GitHub

* Atlassian JIRA

* Custom environments​

## Custom connections

Pydantic functions that execute actions on a designated engineering platform

Custom connections allows you to define your own logic which can be executed by the Kubiya virtual assistant. No AI knowledge is needed. Just simple programming to define the logic you need to execute

In the world of custom connections, there are a few things to take in mind:

 1. You own the maintenance of your actions — as those are running from your own infrastructure

 2. Very often authentication and networking to various target platforms will be managed using your own code​

## Extending with custom actions

Very often we can extend the built-in capabilities with our own custom use cases — such as executing a python function. Or sending a very specific HTTP request based on a query to the virtual assistant

we can tweak Kubiya to execute our code on our own infrastructure using the [Custom Actions SDK](https://docs.kubiya.ai/gen-2-docs/custom-actions/getting-started) which allows you to define simple Python functions which can run on your own Kubernetes cluster.

Once given a descriptive name for the function, alongside a strict Pydantic model Kubiya can respond to queries related to the function topic immediately

​Action Runners allows an effective, secured tunnel to your infrastructure from Kubiya to fulfil executions

## Action Runners

Action runners are a fundamental component of Kubiya, Action Runners enable the execution of custom actions using the Kubiya SDK. These runners enable users to execute action stores on any Kubernetes-based infrastructure, offering versatility for a wide range of use cases.

​Action runners offer a solution for users who want to take advantage of Kubiya’s functionality but cannot open network access to the broader network. Actions can be executed on local networks, such as a virtual private cloud (VPC) or on-premise environments. Remote runners allow users to control the source code of their actions in their own repositories, giving them full control over development and deployment.

![](https://cdn-images-1.medium.com/max/3154/0*jCIFjmzH3VkyyFEr)

How Action Runners communicate with your Kubiya namespace

With local runners, you can execute serverless functions against a supported infrastructure with ease, making it a key feature of Kubiya’s user-friendly and customizable experience.

For a full reference on how to use the remote runners’ feature, please visit the [Action Runners documentation](https://devops-voyager.hashnode.dev/gen-2-docs/custom-actions/action-runners).

## Events

The Events feature empowers your virtual assistant to seamlessly respond to webhooks, enhancing its capabilities to interact with external systems and services. By leveraging events triggered by incoming webhooks, your virtual assistant can stay dynamically connected to the broader ecosystem of your applications and platforms.
>  ​Note: The events feature is still on Beta

## Key Features

### 1. Webhook Integration

* Easily integrate your virtual assistant with external services through webhook configurations.

* Receive real-time data and updates from third-party systems directly into your assistant’s workflow.

### 2. Event Handlers

* Define custom event handlers to process incoming webhook data.

* Tailor your assistant’s responses based on the content and context of the received events.

### 3. Dynamic Responses

* Enable dynamic and context-aware responses by utilizing webhook-triggered events.

* Craft personalized interactions with users based on external events.

### 4. Configuration Flexibility

* Configure event subscriptions and webhook endpoints to adapt to your specific use cases.

* Fine-tune how your virtual assistant reacts to different types of events.

## Use cases examples

Kubiya offers versatile applications for integrating notifications from various platforms within your technology stack.

The platform’s strength lies in its capacity to process generic webhooks and events, enabling users to respond effectively based on predefined suggestions or custom-developed actions.

This flexibility enhances the overall functionality and power of the system. To assist you in leveraging these capabilities, we will present several practical use cases, demonstrating how to effectively utilize events in Kubiya for your specific needs.

​There are some Advanced features in Kubiya but those are in the Experimental

## Kubiya offers Advanced Mode (Experimental)

Chat with a containerized application with custom tools

Advanced mode allows you to define a containerized application with your own set of tools. You can prepare your use cases in that containerized environment and allow your team members to chat with it from within Kubiya.

Each containerized application is defined as a custom profile, utilizing stateless container technology and AI agents to execute a wide array of tasks. This document provides a technical overview of the architecture and functionalities of Kubiya’s custom copilots.

## Built-in tools

Managed containers (available in the free trial and sandbox) are equipped with the following tools:

* Terraform CLI

* AWS CLI

* GH (GitHub CLI)

* Bash

* Python (3.11)

## Architecture

Custom Copilots are built on top of stateless container technology. These containers serve as isolated execution environments where a set of tools and applications can be deployed.

Custom profiles can be managed using source control for easy maintenance of the core instructions for the AI on the specified profile environment

## Key Components:

* **Stateless Containers**: The containers are ephemeral, initializing with a predefined configuration and terminating after the execution is complete. This ensures a consistent environment for every execution cycle.

* Can run on your own environment using a [local runner](https://devops-voyager.hashnode.dev/gen-2-docs/connectors/custom-connections/action-runners) (Kubernetes)

* [**AI](https://devops-voyager.hashnode.dev/chatgpt-for-devops-kubiya#key-components) Agent**: An AI-powered agent resides within the container, acting as the executor of tasks. It interprets natural language commands and interacts with the tools and applications within the container to perform the specified actions.

## Functionalities

* **Tool Integration:** Containers can be provisioned with a wide variety of tools according to the use case requirements, such as DevOps tools like Terraform or cloud interfaces like AWS CLI.

* **Natural Language Interface:** Users can interact with the copilots using natural language commands, making the system accessible to users with varying levels of technical expertise.

* Ability to plan and execute code

* Easy definition of use cases using simple YAML specification

## Deployment Options

* **On-Premises**: For users requiring bespoke configurations and control over the execution environment, custom copilots can be deployed on private infrastructure.

* **SaaS Platform:** For ease of use and maintenance, Kubiya offers a SaaS platform where custom copilots with pre-configured tools are available. This option provides streamlined access with some limitations in tool customization.

## Usage

* **Command Execution**: Users issue commands in natural language, which the AI Agent interprets and executes within the container environment after starting a Slack thread

* **Session Lifecycle**: Each session initializes a stateless container with the necessary tools, executes the commands, and then safely terminates the container after a limited amount of time. default is 90 minutes

## Limitations

* **Core Tool Customization**: While on-premises deployment allows full customization, the SaaS version limits the ability to customize core tools within the container.

**Conclusion:**

As we embark on the dynamic journey of DevOps, Kubiya AI stands out not just as a participant but as a strategic leader. With its effective use of automation, insightful analytics, collaborative approach, and a strong commitment to continuous improvement, Kubiya AI navigates through the evolving landscape of software development. It leaves behind a sense of admiration and inspiration. Applause for a remarkable performance, Kubiya! 🌟

Thanks for reading! I hope you found this helpful and informative.

I’m always happy to connect with tech enthusiasts and answer any questions you may have. Don’t forget to follow me for more updates on cloud computing, tech and more.😄😄

Follow me on LinkedIn to see interesting posts like this : ) [Linkedin](https://www.linkedin.com/in/subbaramireddy/)