About
Vladimir Mikhalev
Docker Captain · CNCF Ambassador · IBM Champion
What I Do
One of fewer than 250 Docker Captains worldwide. 10 vendor community titles, each awarded by the vendor’s own program.
I test what the industry ships, and publish what I find: frameworks for container security, AI governance and platform engineering, each tested on infrastructure I run: a fleet of 70+ public templates whose restore scripts all run in CI, and two home servers.
- kubernetes-air-gapped-ai-agent: an AI agent in a Kubernetes cluster with no route to the internet, where six open-weights models meet planted instructions every day. Found: with the tool schema’s pattern hidden from them, all six tried to send data out, 92 times, and the tool server refused every attempt. Run by hand on 30 October 2026: on AWS with a GPU, an 8B model on an NVIDIA L4 passed every gate and the MCP server refused all six attempts to email outside, for about 0.18. SCADA StrangeLove’s awesome-ai-security-tools keeps it on its watchlist, with the air-gapped claim scoped to the local-model profile.
- kubernetes-oscal-evidence: the air-gapped agent’s admission policies, brought up on kind on every push to it and every week, turned into signed OSCAL assessment results with OSCAL Compass and Kyverno: eight controls, five from NIST SP 800-53, two from the SSDF and one from the AI RMF, each resting on a row of the control-to-test matrix, and seven planted failures that must each be caught. Found: out of the box, Kyverno 1.19 wrote no result for the agent’s model-signature policy even about the pod it admitted, because a CEL policy that can deny skips its admission report (reproduced on kyverno#16841); turning the policy’s background scan on works around it.
- aws-eks-reference-platform: a multi-tenant Amazon EKS platform delivered as Argo CD ApplicationSets, with 56 checks on a fresh cluster every day and a weekly run on a real AWS account; the first passing one cost about $0.20. Found: an EKS add-on build that leaves Argo CD unable to read the cluster, which no mocked plan showed.
- kubernetes-ai-agent-sandbox: what an AI agent that has been talked into something can reach: gVisor as the kernel boundary, an egress allowlist, and one MCP server as the only door to its tools. Found: on a node with swap, a gVisor pod’s memory limit is not the limit.
- cypress-cloud-triage-agent: the stack around an AI agent that triages failing Cypress runs on Kubernetes, built on the assumption that the agent will obey a note a customer planted in a failure message. Only a signed delivery starts a triage (CI sends it, since a live webhook needs Cypress’s Team plan), the agent reads its own run and no other through a door in front of Cypress Cloud’s MCP tools, and it holds no Cypress, Slack or Kubernetes credential; every day, on a fresh kind cluster, a stand-in agent follows the note and is blocked sending the failure out. Found: Cypress’s webhook docs keyed replay protection on a header the signature does not cover; the change to them is open as cypress-documentation#7035.
- kubernetes-supply-chain-admission: the cluster runs an image only if one build signed it and attached provenance, an SBOM and a scan from the last day. Found: the most common scanner gate passes an image the scanner could not read. Jimmy Song’s awesome-cloud-native lists it under Security & Compliance.
- kubernetes-postgres-recovery: PostgreSQL on CloudNativePG, restored every day three ways, down to a second before a dropped table. Found: a cluster can report Ready while it backs up nothing.
- kubernetes-llm-inference-gateway: the llm-d router measured against a plain round-robin Service, in front of the same four simulated vLLM replicas, with conversations that resend their whole history on every turn, on kind on every push to main, every pull request to main, and every day. After the first turn the router’s median time to first token is about a third of round-robin’s, and the share of prompt tokens found in a replica’s prefix cache rises from about 40% to 79%. Measured by hand on an NVIDIA A10G, with four Qwen2.5-1.5B replicas sharing the one GPU: time to first token after the first turn about half of round-robin’s, the whole load in about 14 seconds against 20, and 1.23 per million output tokens for that GPU at that load. On an NVIDIA L4 (g6.xlarge), first scheduled pass on 8 November 2026 (run 42472122098): after the first turn the router’s 90th-percentile time to first token was 0.39 and 0.38 of round-robin’s, where the GPU check allows 0.6, 81% of prompt tokens found in cache against 45% and 39%, and 1.29 per million output tokens on the g6.xlarge alone. A weekly GPU result waits for two scheduled passes in a row. Found: a replica that fails fast while its health check stays green takes 29%, 38% and 75% of the router’s requests at 10, 50 and 150 a second, against about a quarter through round-robin; llm-d’s endpoint-health-filter, measured on a build from main before any release carries it, brings those to 6%, 1% and 0% (posted on the feature’s issue).
- docker-hardened-images-migration: a Compose stack, Keycloak behind Traefik on PostgreSQL, moved to Docker Hardened Images, each change shown the failure it fixes. Found: in a stack without a read-only root, on the official image’s mount path the hardened PostgreSQL stays healthy and keeps nothing; the direct-copy route in Docker’s guide, as written, ends the same way, and the fix is open as catalog#685.
- os-shell-docker, kubectl-docker and jmx-exporter-docker: a way off Bitnami’s frozen images, which stopped publishing versioned tags in August 2025. All three keep the layout Bitnami’s charts expect and are checked against the last versioned Bitnami image on every weekly, signed build; before it publishes, os-shell also runs Bitnami’s PostgreSQL and Redis charts on kind, and jmx-exporter, built from source with each of its 783 Maven artifacts checked against a recorded SHA-512, runs Bitnami’s Kafka chart. Found: on 30 October 2026, Trivy counted 119 critical and high findings in the last versioned os-shell that already have a fix, and on 2 November 55 in the last versioned JMX exporter, fixes those images will never get.
- snyk-to-gitlab-security-migration: application security moved from Snyk to GitLab’s scanners, with a gate that fails if the move would lose a critical or high finding. Found: GitLab’s vulnerability allowlist carries no expiry, so a temporary Snyk ignore carried as it is becomes permanent.
Reported upstream from these repositories: gVisor, with a maintainer’s fix open as #16798 and checked against the reproduction, Kyverno with a reproduction, fixed by the maintainers in #18049, a split of a Kyverno fix that has since merged, Trivy and metrics-server on EKS. Kyverno has since merged a change to its docs and a docs suggestion applied as written. Still open: the fix to Docker’s hardened-images guide, and a review finding on runtime socket mounts, taken up in a Kyverno policies pull request with its four test cases. Every report, with where it stands today, is on the evidence page.
“Vladimir has written more than 100 pieces of content for Docker in the past year. He has also helped us find customer stories that we’ve been able to document and share throughout the rest of the community. And he’s met with multiple product managers internally to share his product feedback.”
— Scott Johnston, CEO, Docker (2019–2025)
- Docker Official Blog: The Untrusted Autonomous Workload: How AI Coding Agents Reshape What Isolation Has to Do
- Docker Official Blog: How to Build, Run, and Package AI Models Locally with Docker Model Runner
- Docker Official Blog: Testcontainers Cloud vs Docker-in-Docker for Testing Scenarios
- Docker Official Blog: Master Docker and VS Code: Supercharge Your Dev Workflow
- Docker Official Blog: Mastering Docker and Jenkins: Build Robust CI/CD Pipelines
- Docker Official Blog: How to Dockerize a React App (with Kristiyan Velkov)
- Docker Official Blog: Dockerize WordPress: Simplify Your Site’s Setup and Deployment
- Docker Official Blog: 8 Top Docker Tips & Tricks
- Docker Enterprise Case Study: Accelerating AI Infrastructure at Ataccama
- Docker Enterprise Case Study: 25% Cost Savings via Container-First Strategy
- Docker YouTube: Why ‘latest’ Broke Our Staging | Make your security team happy (#captainslog 02)
- Featured by Cypress: Cypress Ambassador Spotlight: Vladimir Mikhalev
- Featured in Terraform Weekly: Issue #291, Anton Babenko’s newsletter, on Terraform MCP server GA: the Apply Gate your auditor will ask about
- 3 articles for Cypress on DEV: Cypress in the Age of AI Agents | Docker + Cypress: Perfecting E2E Testing | Cypress Test Replay: The Ultimate Guide to Time-Travel Debugging
- Book: Technical Editor of Docker and Kubernetes Security (2025), a DevOps Dozen 2025 finalist for Best DevOps Book of the Year. Amazon credits me as Editor on the paperback, hardcover and Kindle editions, with an author page; also on Goodreads
- Open Source: 70+ open-source deployment blueprints on GitHub, maintained with AI coding agents under policy gates I prove with planted violations | 1.7M+ Docker Hub pulls (aws-kubectl)
- Third-party adoption: aws-kubectl is the default image of the ECR registry helper in OpenMetadata’s Helm chart
I build the platforms, run the company-wide systems on top of them, and am the sole IT and DevOps engineer for North America. I run the infrastructure my frameworks are tested against: container orchestration, zero-trust governance, AI-augmented platform engineering and multi-region cloud architecture on AWS.
Since 2019 I have helped enterprise customers deploy Ataccama’s platform, dozens of customers and 100+ deployments, on Kubernetes in AWS, Azure, Google Cloud and on premises, including self-managed and air-gapped installs; today I am the Kubernetes and cloud expert for North America, advise customers’ engineers on Terraform, CI/CD and GitOps, and answer customer security questionnaires. I built and run the Professional Services GitLab, with CI/CD projects for 300+ customers.
Earlier: operations and support roles at IBM, IPONWEB, Amazon and Thales (2016–2019).
What I recommend here, I have run myself, and the evidence is linked.
I moved the company’s infrastructure from on-premises servers to AWS, Azure and containers and drove the container platform decision (Docker over Podman). Today I build internal enterprise applications with AI coding agents to replace paid SaaS subscriptions: five or more are in use and together save six figures a year, among them an ITSM platform that consolidates six legacy systems with LLMs in its workflows. I wrote the Docker case study documenting a retailer’s 25% cost savings from container-first development.
I write on vendors’ own platforms: eight articles for Docker’s official blog and three for Cypress on DEV. Docker’s then-CEO thanked me by name for the customer stories I helped Docker find and the product feedback I brought to its product managers.
Two Docker customer stories came from my work: Ataccama’s, where I am the customer-side voice, with deployments 75% faster on 40% fewer servers, and a cosmetics retailer’s move to container-first development, with deployments 60% faster and 25% cost savings.
10 vendor community titles. I maintain 70+ open-source deployment blueprints on GitHub, and every restore script among them runs in CI. 1.7M+ Docker Hub pulls (aws-kubectl).
My advocacy work spans technical writing (eight articles for Docker’s official blog, 3 articles for Cypress on DEV, “Docker and Kubernetes Security” as Technical Editor), content through vendor ambassador programs, and community building through The Signal Discord. Every guide I publish is written so the next engineer with the same problem can skip the hours it cost me.
- Docker Captain Container architecture, security & developer workflows
- IBM Champion Enterprise AI, Cloud, Automation, Terraform
- AWS Community Builder Containers: Amazon EKS, cloud architecture
- CNCF Ambassador (2026-2028 cohort; one of 58 new ambassadors from over 600 submissions) Kubernetes & the cloud native ecosystem
- HashiCorp Ambassador (2024-2025), continuing as IBM Champion 2026 Terraform, Vault, infrastructure as code
- Platform Engineering Ambassador Internal Developer Platforms
- Snyk Ambassador (2023-2026), Ambassador Award finalist (2023) Application security, supply chain
- Cypress Ambassador Test automation, AI agents in testing
- GitKraken Ambassador Git workflows, version control
- Notion Ambassador Engineering knowledge management