DevOps-cага "о шаблонном микросервисе": как дать возможность разработчикам самостоятельно выводить в прод новые сервисы за один час и ничего при этом не забыватьАрхитектура в DevOps, DevOps для CTO

Доклад принят в программу конференции
Максим Вихарев
Alytics

Максиму посчастливилось принимать участие в нескольких технологических стартапах.

В компании termt.com (первый отечественный производитель POS-терминалов, сертифицированный PCI PED) занимался криптографией и системным программированием, затем администрированием, автоматизациями PKI-процессов и релиз-инжинирингом. Параллельно начал заниматься разработкой распределенных веб-приложений. Значимым результатом был запуск проекта, автоматизирующего отчетность SEO-оптимизаторов (сбор позиции сайтов в поисковой выдаче по определенным словам). Фишкой системы была возможность обхода капч: сама искала себе прокси через поисковики.

В 2012 году был запущен проект alytics.ru - сервис автоматизации контекстной рекламы. Выступая в роли разработчика-сооснователя, получил взрывообразный рост компетенций в области проектирования, разработки, автоматизации и эксплуатации сервисов. К 2016 году Алитикс стал лидирующим сервисом в области автоматизации контекста и в начале 2018 года они расширили сегмент деятельности, став системой сквозной аналитики. К этому событию был осуществлен технологический скачок: они агрегировали собранный опыт, и сервис был, по сути, полностью переписан, получив невероятные технологические преимущества перед предыдущей версией, которые сразу же начали трансформироваться в реальную пользовательскую ценность.

Получает удовольствие от создания крутого продукта, делится с сообществом полученным ценным опытом.

Сфера технических интересов: архитектура, аналитические системы, распределенные системы, базы данных, devops, непрерывная интеграция и поставка, гибкие методологии разработки, прокачка команды.

Тезисы

В начале мы мигрировали наши микросервисы в Kubernetes. Со временем научились молниеносно выводить в прод новые микросервисы с помощью стандартизации и фиксирования в коде всех договоренностей между админами и разработчиками. Получая из коробки ci/cd. Ничего не забывая. Накапливая опыт эксплуатации и сразу распространяя его на все приложения. Как, почему и зачем..

В этом докладе мы рассмотрим:
- из чего состоит и от чего зависит типовой (микро)сервис в современном веб-приложении;
- какие архитектурные возможности и примитивы kubernetes мы используем;
- как (микро)сервис должен интегрироваться в процесс разработки и доставки приложений, чтобы не писать километровых инструкций и вообще особо ничего не делать;
- как у нас осуществляется стыковка приложений с системными сервисами в условиях нескольких продакшн-окружений, множества тестовых и отладочных и почему;
- какие договоренности и решения были сформированы между инфраструктурной командой и командой разработки для комфортного и эффективного взаимодействия.

Доклад будет подан с позиции проактивного devops-инженера и разработчика. Мы рассмотрим весь цикл существования (микро)сервиса на примере python-сервиса, начиная от создания проекта и заканчивая эксплуатацией/мониторингом в проде. Осветим все связанные и показавшие эффективность подходы/ процессы/инструменты, которые используем в данный момент.

В общем, поделимся опытом, который позволит администраторам со спокойной душой делегировать конфигурацию и деплой приложений разработчикам. А разработчикам концентрироваться на фичах без значительных простоев на переключениях в devops-активности.

Python
,
Микросервисы, SOA
,
Архитектурные паттерны
,
Распределенные системы
,
Методы и техника разработки ПО
,
Логирование и мониторинг
,
Управление конфигурацией
,
Непрерывное развертывание и деплой
,
Непрерывная интеграция
,
Devops / другое

Другие доклады секции Архитектура в DevOps, DevOps для CTO