DevOps и серверная инфраструктура
DevOps и настройка серверной инфраструктуры: сборка, деплой, наблюдение и резервное копирование, устроенные так, чтобы релиз был обычным делом, а не событием. Берём отдельной задачей или инженером в вашу команду.
Про инфраструктуру вспоминают дважды: когда деплой занимает целый день и когда что-то упало. В обоих случаях причина одна: то, как продукт собирается, разворачивается и наблюдается, никто не проектировал, оно сложилось само.
Сразу разграничим, потому что путают часто. DevOps вырос из системного администрирования, но одним и тем же они от этого не стали. DevOps это инфраструктура как код и массовая настройка через Terraform, Ansible и подобные инструменты, конвейер сборки и деплоя, окружения, наблюдение и то, как хранятся и передаются секреты. Нужен он там, где много кода и регулярные релизы. Системный администратор это поддерживающий юнит: серверы и системы на них, точечные задачи, выдача и отзыв доступов, обслуживание работающего, а в компаниях без отдельного специалиста по безопасности часто и эта роль. Многие администраторы практикуют и часть devops-задач, но отвечают всё-таки за другое, и подменять одну роль другой дорого.
Мы приводим инфраструктуру к понятному состоянию. Она описывается кодом, поэтому её можно прочитать, повторить и восстановить, а не держать в голове одного человека. Сборка и деплой автоматические, поэтому релиз перестаёт быть событием. Наблюдение построено так, чтобы о проблеме вы узнавали от системы мониторинга, а не от клиентов, и приходить с этим к нам не требовалось: об инциденте мы узнаём оттуда же.
Инструменты подбираются под масштаб, а не по списку модного. Terraform берём там, где серверы нужно поднимать быстро и помногу разом. Ansible там, где сервис вышел на ровную производительность и новые машины появляются редко: он спокойно настраивает новый сервис со всеми ключами и доступами. Со сборкой так же: обычно хватает GitLab CI или GitHub Actions, а под ручные сценарии и сложные конвейеры разворачиваем Jenkins или TeamCity.
Обновления без простоя это отдельная работа. При переезде Silent Notary контейнеры обновлялись на ходу: человек мог находиться в разделе старой версии, нажать на главную и оказаться в новой системе, не заметив перехода. Так можно делать почти всегда, вопрос только в деньгах и в том, действительно ли простой для вас недопустим.
Ещё один разговор, который стоит вести заранее, это расходы. Облако удобно и незаметно разрастается: неиспользуемые диски, забытые копии сред, машины «на всякий случай». Мы считаем расходы вместе с настройкой и показываем, где инфраструктура стоит дороже, чем приносит.
Инфраструктура идёт рядом с бэкендом, серверным ПО и веб-разработкой. Направление можно отдать целиком по модели аутсорса или взять инженера в команду по модели аутстаффа. Если непонятно, что происходит с работающей системой, начните с аудита. Наши инфраструктуры обслуживают кошелёк, платформу стейкинга и обозреватель сети.
Что входит в услугу
Можно взять любой набор из перечисленного.
Серверы, сети, доступы и окружения описаны в репозитории. Terraform для массового и быстрого поднятия машин, Ansible для точечной настройки сервисов на устоявшейся инфраструктуре. Новая среда поднимается повторно и одинаково, а не собирается руками заново.
Автоматическая сборка, тесты, деплой по кнопке и откат за минуты. GitLab CI или GitHub Actions под обычные задачи, Jenkins или TeamCity там, где нужны ручные шаги и сложные конвейеры. Отдельные среды для разработки, проверки и боевой работы.
Здесь два пути. Простой это Docker и Docker Swarm: его хватает продукту из нескольких сервисов. Сложный это Kubernetes, где единицей запуска становится под, а не отдельный контейнер, и появляются собственные правила размещения, сети и хранения. Управлять такими кластерами удобно через Rancher. Путь выбираем по числу сервисов, числу проектов и нагрузке.
Когда нужны свои серверы, разворачиваем Proxmox прямо на железе. Это Linux-дистрибутив на базе Debian: узлы собираются в кластер, а внутри поднимаются виртуальные машины или образы. Разумно там, где нагрузка ровная или к данным есть требования по конфиденциальности.
Метрики, журналы, трассировки и понятная система оповещений. Ценность здесь в том, чтобы видеть динамику заранее: длительные журналы показывают, как меняется нагрузка и где копится проблема, поэтому ночной звонок «всё упало» перестаёт быть основным способом узнавать новости.
Копии по расписанию, хранение в отдельном месте и регулярная проверка того, что копия разворачивается. Непроверенная копия это не копия.
Переезд между площадками и облаками без потери данных, разграничение доступов, хранение секретов, обновления систем и разбор счетов за инфраструктуру.
Как мы работаем
Смотрим, что развёрнуто, как деплоится, что наблюдается и где узкие места. На выходе картина как есть и список рисков.
Целевая схема, порядок работ и оценка по этапам. Сначала закрываем то, что грозит простоем или потерей данных.
Инфраструктура кодом, конвейер сборки, окружения, наблюдение и резервные копии.
Переезд по частям, проверка восстановления и учения на отказ, а не только на бумаге.
Обновления, реакция на оповещения, дежурство и разбор происшествий.
Стек и инструменты
Кейсы по услуге
Частые вопросы
DevOps отвечает за то, как продукт собирается, разворачивается и наблюдается, за инфраструктуру как код и за хранение секретов. Он нужен там, где много кода и регулярные релизы. Системный администратор занимается серверами и системами на них, точечными задачами и доступами. Роли соседние, и одна другую не заменяет.
Да, это частый сценарий. Работаем с вашей командой и вашим кодом, приводим в порядок инфраструктуру и передаём её вместе с описанием.
Часто нет, и мы скажем об этом прямо. Kubernetes оправдан при нескольких сервисах, заметной нагрузке или частых релизах, и вместе с ним появляются люди, которые его обслуживают. Небольшому продукту обычно достаточно Docker и Docker Swarm.
Считаем оба варианта. Облако выигрывает на старте и при скачках нагрузки. Свои серверы на ровной нагрузке и там, где к данным есть требования по конфиденциальности, и в этом случае площадку удобно строить на Proxmox.
Почти всегда можно. Вопрос в деньгах и в том, насколько простой для вас критичен: обратная совместимость, план отката и переключение по частям стоят дороже обычного релиза. Обсуждаем это до начала работ, а не в середине.
Секреты хранятся в защищённом хранилище, доступы выдаются именные и по минимуму, все действия остаются в журнале. По окончании работ наши доступы закрываются, ваши остаются.
Всё определяет договор, и прописываем мы это на этапе технического задания, до начала работ. Аккаунты у провайдеров оформляются на вас, описание инфраструктуры лежит в вашем репозитории. После закрытия проекта все наработки и документация передаются вам вместе с правами на них.
Да, отдельной договорённостью: наблюдение, реакция по согласованному SLA и разбор происшествия после.
Смежные услуги
Обсудим вашу задачу?
Расскажите, что нужно сделать - вернёмся с оценкой сроков, составом команды и планом первых двух недель.