ADG Оставить заявку
Блог Управление и процессы 5 мин чтения

Итоги H1 2016: TLS стал дешёвым, контейнеры повзрослели, реестр ПО давит

Полгода Let's Encrypt GA, Docker+k8s в проде, реестр отечественного ПО и ClickHouse. Что оставили в H2, от чего устали и что берём в работу дальше.

Контекст момента

Итоги первого полугодия 2016: Let's Encrypt GA, ClickHouse open-source, реестр ПО, контейнеры в проде

Полгода прошло быстро и неровно. Январь-февраль - спокойно: читали документацию, обновляли стенды, закрывали хвосты с прошлого года. Март встряхнул DROWN-атакой, апрель - GA Let's Encrypt, май - анонсом ClickHouse, июнь - сразу несколькими вещами одновременно. К концу июня ощущение, что за шесть месяцев произошло то, на что обычно уходит год-полтора. Попробуем разобраться что именно и что с этим делать.

TLS перестал быть платным

Это, наверное, самый очевидный сдвиг. В январе мы тестировали closed beta Let's Encrypt, в апреле раскатывали GA на первые 15 клиентских доменов, в мае обкатали certbot в связке с Ansible. Сейчас Let's Encrypt - уже не «можно попробовать», а «ставим по умолчанию» на любом новом проекте без wildcard и EV.

Что изменилось в голове: раньше «поставить TLS» - это задача, которую надо было запланировать, выделить бюджет, согласовать с клиентом. Теперь это операция на двадцать минут в рамках любого другого деплоя. Сертификат перестал быть ресурсом, за которым следят. Он просто есть, и cron его обновляет.

Платные сертификаты никуда не делись - EV и wildcard там, где нужны. Но это теперь исключение с обоснованием, а не правило.

Контейнеры в проде: кое-что уже работает, кое-что ещё нет

Docker 1.10, 1.11 - оба прошли у нас за эти полгода. Docker Compose v2 со Swarm смотрели в апреле. Kubernetes дошёл до 1.2 с Ingress; в июле ждём 1.3 со StatefulSets. Схема «stateless-сервисы в k8s, базы данных отдельно на VM» - она и работает в производстве.

Что работает хорошо. Stateless: веб-приложения, API-серверы, воркеры - k8s c ними справляется, и оперировать удобнее чем VM-флотом. Rolling update, автоскейлинг, Ingress для маршрутизации - всё это реальные инструменты, не демо-сценарии.

Что ещё требует осторожности. Stateful - базы, очереди. StatefulSets идут в 1.3, мы посмотрели на них заранее на PostgreSQL, но в production не несём. Нет ещё наработанного операционного слоя: бэкапы, апгрейды, PITR внутри контейнерного кластера. Это не «плохо», это «требует времени на обкатку».

Мониторинг контейнерной среды - отдельная история. Prometheus 1.0 на подходе, мы его уже смотрели. Grafana + Prometheus + node_exporter + cAdvisor - это стек, который реально работает для метрик контейнерной инфраструктуры и не требует того лицензионного бюджета, который нужен для Zabbix в крупных конфигурациях.

ClickHouse: от анонса до рабочего стенда за месяц

Это была неожиданно быстрая траектория. Яндекс анонсировал открытие в мае, код открыл 15 июня, и к концу июня у нас уже есть рабочий тестовый стенд на 500 млн строк событий. Полгода назад для аналитики больших объёмов у нас выбор был между «PostgreSQL с партиционированием» и «Spark, что тяжело».

Теперь есть третий вариант: ClickHouse, который разворачивается за час и на тех же агрегационных запросах даёт результат за секунды там, где PostgreSQL считал минуты. На production с таким объёмом тестирования никто идти не будет, но как инструмент в арсенале - уже обозначился.

Реестр ПО и импортозамещение: давление не уходит

Это тот трек, который требует больше всего переговоров и меньше всего технической работы - и именно поэтому от него устаёшь иначе. Реестр зависал в начале года, первые итоги по реестру смотрели в марте, в апреле пилотировали Astra Linux SE, в июне закрыли требования госклиента через Postgres Pro.

Наблюдение по полугодию: требование «из реестра» звучит в ТЗ всё чаще, но сам реестр не всегда содержит то, что реально нужно клиенту для работы. В результате либо клиент переформулирует требования - и тогда работаем с нормальным стеком, - либо берём то, что в реестре, и тщательно проверяем совместимость. Postgres Pro - приятный сюрприз: совместимость с PostgreSQL высокая, операционных неожиданностей меньше, чем ожидали.

Сертификаты ФСТЭК на ПО - отдельная головная боль. Актуальная версия и сертифицированная версия не всегда совпадают. За этим надо следить вручную, и это никуда не денется.

Что берём в H2

Несколько вещей, которые уже ясны:

  • ClickHouse на первый production-проект. Есть клиент с аналитикой событий, где PostgreSQL уже начинает скрипеть под нагрузкой. Стенд показал что нужно, осталось сделать нормальный операционный слой вокруг ClickHouse: бэкапы, мониторинг, процедура обновления.

  • StatefulSets в k8s - осторожное продвижение. Dev и staging-окружения - разумное место для отработки. Production с данными - не раньше чем появятся нормальные процедуры для PITR и апгрейдов.

  • HTTP/2 докатить до всех nginx. Смотрели в апреле, часть клиентов уже перевели. Оставшиеся - в очереди.

  • Terraform для инфраструктуры. 0.6 использовали, 0.7 с модулями уже смотрели. Хотим перевести больше клиентской инфраструктуры на IaC - сейчас это половина, хочется ближе к двум третям.

  • Импортозамещение - готовиться к следующей волне. Требования в ТЗ будут только расширяться. Нужен внятный список «что из реестра реально работает и с чем» - не в голове, а зафиксированный.

H1 получился насыщенным без плана на это. H2 хочется сделать чуть более управляемым - хотя инфраструктурная жизнь имеет свойство этот план корректировать.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.