šŸš€ DevOps Meets AI: Automating Reliability in the Age of Intelligence

Yesterday, I had the honor of speaking at the Build with AI: Hands-on Workshops on Google Cloud and Gemini, an event organized by the Google Developer Group (GDG) Kinshasa. This community-led initiative brought together developers, students, and tech professionals to explore practical applications of AI in real-world projects—spanning cloud infrastructure, application development, and automation.

As part of this momentum, I presented a talk titled "DevOps Meets AI: Automating Reliability in the Age of Intelligence," where I showcased how AI can enhance developer workflows, reduce operational toil, and pave the way toward self-healing, intelligent systems. This post offers a recap of that talk and dives deeper into the ideas I shared on stage.


šŸ¤– Why Bring AI Into DevOps?

AI isn’t about replacing engineers. It’s about amplifying them. With the rise of powerful models and real-time telemetry, we now have the opportunity to:

  • Detect risks before they become incidents

  • Triage issues with AI-assisted analysis

  • Generate real-time suggestions for code and configuration changes

  • Build self-healing systems that adapt to their environments

This isn’t science fiction. It’s something I’ve been prototyping and sharing in the field.


šŸ” The Core Idea

DevOps is evolving—from automation to intelligence.

Traditional DevOps helped us automate and scale operations. But when we embed AI into the pipeline, we unlock adaptive, context-aware systems that don’t just respond—they learn and improve.

Here's how I think about the evolution:

EraKey Traits
Manual OpsToil, scripts, human-triggered fixes
DevOpsCI/CD, infra as code, reactive dashboards
AI-Augmented DevOpsSelf-healing, predictive alerts, AI decisions

šŸ”§ A Real-World Example

In my demo, I showed a GitHub PR triggering a CI pipeline that:

  1. Runs security scans with Trivy

  2. Sends results to Gemini via Vertex AI

  3. Posts AI-generated fix suggestions directly into the pull request

The result?
Developers get instant, contextual help.
Ops teams reduce review time.
Security is embedded from the start.

Here is some implementation details:

Github Action confuguration:

name: AI-Powered Docker Security Scan

on:
  pull_request:
    branches: [ "main" ]
    types: [opened, synchronize]

jobs:
  ai-sec-docker-scan:
    name: Scan Docker Image and Generate AI Suggestions
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Install Python dependencies
        run: pip install requests

      - name: Build Docker image
        run: docker build -t opsgo-ai-scan:latest -f Dockerfile .

      - name: Run Trivy scan on Docker image
        uses: aquasecurity/trivy-action@0.13.0
        with:
          scan-type: 'image'
          image-ref: 'opsgo-ai-scan:latest'
          format: 'json'
          output: 'trivy-results.json'

      - name: Analyze results with Gemini
        run: python .github/scripts/send_to_gemini.py
        env:
          GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}

      - name: Post AI suggestions to PR
        run: python .github/scripts/comment_on_pr.py
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GITHUB_REPOSITORY: ${{ github.repository }}
          GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}

Script that send request to Gemini API

import os
import json
import requests

TRIVY_FILE = "trivy-results.json"
OUTPUT_FILE = "gemini-response.txt"
API_KEY = os.getenv("GEMINI_API_KEY")
GEMINI_ENDPOINT = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent"

if not API_KEY:
    raise EnvironmentError("āŒ GEMINI_API_KEY environment variable is not set.")

# Append API key as URL query parameter
url = f"{GEMINI_ENDPOINT}?key={API_KEY}"

# Load Trivy scan results
with open(TRIVY_FILE, "r") as f:
    trivy_data = json.load(f)

# Build the prompt
prompt_text = f"""
The following is a vulnerability scan of a Docker image using Trivy.
Please analyze the issues and suggest secure fixes for each finding.

```json
{json.dumps(trivy_data, indent=2)}
```
"""

# Prepare the request payload
payload = {
    "contents": [
        {
            "parts": [{"text": prompt_text}]
        }
    ]
}

# Make the POST request
response = requests.post(
    url,
    headers={"Content-Type": "application/json"},
    json=payload
)

# Handle the response
if response.status_code == 200:
    try:
        ai_reply = response.json()["candidates"][0]["content"]["parts"][0]["text"]
        with open(OUTPUT_FILE, "w") as out:
            out.write(ai_reply)
        print("āœ… AI suggestions saved to gemini-response.txt")
    except (KeyError, IndexError):
        print("āš ļø Received unexpected response format:")
        print(response.json())
        exit(1)
else:
    print("āŒ Error from Gemini:", response.status_code)
    print(response.text)
    exit(1)

Python Script that create a comment on a pull request from Gemini response:Ā 

import os
import requests

GITHUB_TOKEN = os.getenv("GITHUB_TOKEN")
REPO = os.getenv("GITHUB_REPOSITORY")  # e.g., bashizip/opsGo
PR_NUMBER = os.getenv("GITHUB_PR_NUMBER")
COMMENT_FILE = "gemini-response.txt"

# Load AI-generated suggestions
with open(COMMENT_FILE, "r") as f:
    comment_body = f.read()

# Prepare GitHub API request
url = f"https://api.github.com/repos/{REPO}/issues/{PR_NUMBER}/comments"
headers = {
    "Authorization": f"Bearer {GITHUB_TOKEN}",
    "Accept": "application/vnd.github.v3+json"
}

payload = {"body": f"\ud83e\udde0 **AI Suggestions from Gemini**\n\n{comment_body}"}

# Post comment to PR
response = requests.post(url, headers=headers, json=payload)

if response.status_code == 201:
    print("Successfully posted AI suggestions to the PR.")
else:
    print("Failed to post comment:", response.status_code, response.text)
    exit(1)

šŸ‘€ See It in Action
Curious what AI-generated suggestions look like in a real pull request?
Check out this example on GitHub:
šŸ”— AI comments on PR #3

Want to try it yourself? You can fork the repo and explore the setup:
šŸ”— Full source code on GitHub

Ā 

🧠 What This Means for Reliability

This new model isn't about removing humans—it’s about reallocating effort. Let AI deal with the noise, patterns, and recommendations. Let humans focus on what matters: strategy, design, and innovation.

We’re moving toward systems that can:

  • Anticipate their own failure modes

  • Heal without manual intervention

  • Explain what’s going wrong—and suggest fixes in natural language


šŸ“ˆ Where We're Going

The next wave of DevOps will include:

  • AI-assisted root cause analysis

  • Smart incident routing

  • Intelligent observability layers

  • Feedback loops that continuously improve detection and response

As someone working daily on reliability and observability, and building open-source tooling on the side, I’m excited to push this frontier forward.


šŸ—£ļø Let’s Build It Together

This post is just the beginning. I’ll be sharing more technical deep dives, code samples, and learnings from the field.

Want to see it live? Check out the slides here and let’s keep the conversation going on LinkedIn or GitHub.

Let’s bring intelligence into reliability—one commit at a time.

Ā