Не cloud-ready, но в Kubernetes: как мы втянули Legacy-деплой в k8s и выжили

Мы знаем, как готовить K8s

Управление конфигурацией
Непрерывная интеграция
Devops / другое
Автоматизация разработки, доставки, эксплуатации
DevOps / Кубер
Инфраструктура

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

DevOps-инженеры; SRE; инженеры по инфраструктуре; архитекторы, поддерживающие сложные распределённые системы. Команды, использующие Ansible, Helm, Kubernetes. Разработчики, которым нужна изолированная среда и воспроизводимое окружение

Тезисы

Наш продукт — корпоративная почтовая система, разработанная на микросервисной архитектуре и разворачиваемая у заказчиков (или на наших мощностях) через тяжелые Ansible-плейбуки. Установка занимала 3–4 часа, изменение любого параметра требовало полного прогона, а локальной среды разработки не существовало.
Kubernetes выглядел очевидным способом решить все проблемы, но переписать весь деплой под k8s мы не могли: конфигурации были огромными, обросшими логикой Jinja2 и глубоко завязанными на Ansible.
Мы нашли гибридный подход: сохранили Ansible как единую точку правды, научились генерировать конфигурации через Ansible в local-режиме и подхватывать их в helmfile, передавая все параметры из одного места как в j2-шаблоны, так и в Helm. В итоге мы сократили развёртывание до 5 минут, получили изолированное тестирование, полноценную локальную разработку и CI/CD на Kubernetes — не переписывая продукт с нуля.
Расскажем, где мы наступили на грабли, что пришлось чинить и почему этот путь оказался дешевле и надёжнее полного переписывания.

Начал свой путь с системного администрирования и сейчас возглавляю команду продуктовых DevOps инженеров в компании "МойОфис".

Видео

Другие доклады секции

Мы знаем, как готовить K8s

UI Лего для Kubernetes
Дмитрий Путилин

Программы Роботы и Технологии