Техлид Kubernetes-команды платформенной инфраструктуры в Dodo Engineering
Руковожу подкомандой, которая отвечает за Kubernetes-платформу Dodo IS: продовые кластеры в Yandex Cloud и Azure, dev- и нагрузочный кластеры в Yandex Cloud, сервис-меш, входящий трафик, деплой сервисов и инструменты для разработчиков. Пишу на Go и Bash, описываю инфраструктуру в Terraform и Jsonnet, участвую в дежурствах.
Мне важно, чтобы платформа была скучной в хорошем смысле: релизы — предсказуемые, отказ зоны — не инцидент, а у разработчика есть одна понятная точка входа в инфраструктуру.
Подробное резюме — здесь. Написать можно в Telegram.
- Сервис-меш и Gateway API. Переход с ingress-nginx на Istio Ambient (ztunnel + waypoint) и Gateway API: выбор реализации и RFC, нагрузочные тесты, перевод сервисов через контроллер деплоя, паритет метрик, access-логов, сжатия и кастомных страниц ошибок. Istio Ambient раскатан в продовых кластерах Yandex Cloud и Azure, а также в dev- и нагрузочном; переключение публичного трафика на Gateway API завершается. mTLS между платёжными сервисами для PCI DSS.
- Контроллер деплоя сервисов. Собственный контроллер для CRD
DodoAppService, через который деплоятся сервисы Dodo IS: Ansible Operator SDK, рендер манифестов на Jsonnet и деплой bash-скриптом черезkubectl apply --prune. Внутри уже нет Helm, есть канареечные релизы (сейчас — переход на Argo Rollouts). Пора переписывать на Go. - Dodo CLI и dev-стенды. CLI для разработчиков на Go: диагностика подов, scale/restart, канарейки. Замена Telepresence на KubeVPN. Локальные стенды в kind и оператор квот, который усыпляет и будит dev-стенды.
- Надёжность. Выживание сервисов критического пути при потере одной из трёх зон Yandex Cloud: PriorityClass, topologySpreadConstraints, descheduler, резерв нод в рамках бюджета. Chaos engineering на chaos-mesh, нагрузочное тестирование, разбор сетевых проблем (NAT, MTU/MSS, скачивание образов).
- Жизненный цикл кластеров. Регулярные апгрейды Kubernetes (1.29 → 1.33, впереди 1.34) в обоих облаках, обновление платформенных компонентов (cert-manager, external-secrets, descheduler), rightsizing ресурсов и подсчёт стоимости кластеров, IaC через Terraform + Atlantis.
- Синхронизатор сертификатов. Собственный сервис на Go (Certificate Syncer), который по расписанию забирает выпущенные cert-manager сертификаты из Azure Key Vault и раскладывает их туда, куда штатные cert-manager и external-secrets доставить не умеют: PFX-копии для Azure Front Door, Yandex Cloud, CDN и anti-DDoS/WAF-провайдер.
- Безопасность. Pomerium перед внутренними сервисами, сетевые политики, подготовка к аудиту PCI DSS.
- Процессы команды. Дежурства и онбординг, ранбуки к алертам, релизы на прод в паре и с планом отката, роадмап и квартальные цели, ИИ-ассистент команды на Claude Code.
Tech Lead of the Kubernetes platform infrastructure team at Dodo Engineering
I lead the sub-team that owns the Kubernetes platform of Dodo IS: production clusters in Yandex Cloud and Azure, dev and load-testing clusters in Yandex Cloud, the service mesh, ingress traffic, service deployment and developer tooling. I write Go and Bash, describe infrastructure in Terraform and Jsonnet, and take part in on-call.
I want the platform to be boring in a good way: releases are predictable, losing a zone is not an incident, and developers have one clear entry point into the infrastructure.
Full CV is here. Feel free to reach me on Telegram.
- Service mesh and Gateway API. Moving from ingress-nginx to Istio Ambient (ztunnel + waypoint) and Gateway API: choosing the implementation and writing the RFC, load testing, migrating services through the deployment controller, parity of metrics, access logs, compression and custom error pages. Istio Ambient is live in the production clusters in Yandex Cloud and Azure as well as in the dev and load-testing ones; the public traffic cutover to Gateway API is being finished. mTLS between payment services for PCI DSS.
- Service deployment controller. An in-house controller for the
DodoAppServiceCRD that deploys Dodo IS services: Ansible Operator SDK, manifests rendered with Jsonnet and applied by a bash script viakubectl apply --prune. Helm is already gone from it, canary releases are in place (now moving to Argo Rollouts). Time to rewrite it in Go. - Dodo CLI and dev stands. A Go CLI for developers: pod diagnostics, scale/restart, canaries. Replacing Telepresence with KubeVPN. Local stands in kind and a quota operator that puts dev stands to sleep and wakes them up.
- Reliability. Keeping critical-path services alive when one of three Yandex Cloud zones is lost: PriorityClass, topologySpreadConstraints, descheduler, node reserve within budget. Chaos engineering with chaos-mesh, load testing, network troubleshooting (NAT, MTU/MSS, image pulls).
- Cluster lifecycle. Regular Kubernetes upgrades (1.29 → 1.33, 1.34 next) in both clouds, platform add-on updates (cert-manager, external-secrets, descheduler), resource rightsizing and cluster cost tracking, IaC with Terraform + Atlantis.
- Certificate syncer. An in-house Go service (Certificate Syncer) that periodically picks up cert-manager-issued certificates from Azure Key Vault and delivers them where stock cert-manager and external-secrets cannot: PFX copies for Azure Front Door, Yandex Cloud, the CDN and the anti-DDoS/WAF provider.
- Security. Pomerium in front of internal services, network policies, PCI DSS audit preparation.
- Team processes. On-call and onboarding, alert runbooks, production releases done in pairs with a rollback plan, roadmap and quarterly goals, the team's AI assistant built on Claude Code.



