SRE-аудит
CI/CD
Инфраструктура

Как SRE-аудит помог выявить узкие места в инфраструктуре проекта

Когда бизнес вырастает в шесть раз за два года, это не только повод для радости, но и большие риски. Инфраструктура не поспевает за трафиком, временные решения становятся постоянными, команда проекта работает без выходных, а сайт всё равно не вывозит пиковых нагрузок и сбоит. Проблемы с мониторингом, нарастающий хаос, потеря контроля, а главное – непонимание, как навести во всём этом порядок, с чего начать. Выявить проблемы и определить первые шаги изменений помогает SRE-аудит сайта. Рассказываем на примере Flowwow.

Что было не так?

  • С ростом бизнеса инфраструктура сервисов разрослась, стала менее управляемой, надежной и стабильной.
  • Система мониторинга перестала отвечать новым требованиям и задачам.
  • Стали чаще возникать проблемы при работе под нагрузкой, особенно при резком росте числа заказов (в праздничные дни).
  • Отсутствовала унификация и стандартизация процессов. Не было инструкций и шаблонов для работы в случае инцидентов.
  • «Ручное управление» требовало постоянной вовлеченности сотрудников. В периоды пиковых нагрузок команда была вынуждена работать без выходных.
  • Продолжительные даунтаймы, простои сайта угрожали устойчивости бизнеса и финансовым результатам.
  • У команды отсутствовал нужный уровень экспертизы для самостоятельного аудита и модернизации инфраструктуры.

Кейс

Flowwow – онлайн-сервис для доставки цветов и подарков из локальных магазинов в более чем 950 городах мира. Благодаря этой платформе, клиенты могут покупать различные подарочные наборы для близких, а продавцы размещать свои товары и развивать бизнес. Маркетплейс предоставляет пользователям доступ к технической платформе, рекламным инструментам, поддержке и CRM. Сервис работает в России, Беларуси, ОАЭ, Армении, Грузии, Великобритании и других странах.

В связи с бурным ростом бизнеса основной задачей Flowwow стала работа с инфраструктурой проекта: нужно было сделать ее более управляемой, стабильной, унифицированной. Клиент попросил нас оценить состояние инфраструктуры и дать список рекомендаций по её улучшению.

Что мы сделали?

Провели комплексный SRE- аудит проекта, сосредоточив внимание на нескольких критических областях. На основе полученной информации сформировали подробный перечень рекомендаций и план дальнейших действий.

IaC

  1. Невозможно развернуть инфраструктуру с нуля.
  2. Сложный workflow, затрудняющий работу команды разработчиков.
  3. IaC, который не дает понимания итоговой инфраструктуры.
  4. Текущая инфраструктура не полностью покрыта IaC. В облаках присутствуют предустановленные ресурсы (default vpc), чего не должно быть при работе с Terraform: это вносит путаницу.

Наши рекомендации

  • Разделить инфраструктуру и ПО – Terraform от Ansible.
  • Уйти от избыточности. Создать только необходимые модули Terraform, с полным описанием и примерами использования.
  • Отказаться от публичных модулей Terraform.
  • Переделать роли и плейбуки в Ansible. Отказаться от публичных ролей, добавить molecule, создать документацию и инструкции по работе с окружениями.
  • Добавить в репозиторий с helm чартами чарты инфраструктурных сервисов, таких как Ingress, Nginx, Prometheus operator и т.п., удалить их из Terraform.
frame
frame

CI/CD

  1. Jenkins Jobs представляют собой по большей части ручные джобы: миграции, бэкапы, автомержи, очистки кэшей/очередей, 1С-инвойсы, разного рода кроны и т.д.
  2. Часть джоб – набор команд в конфигурации джобы, в том числе git pull. А часть джоб запускают bash-скрипты, которые уже есть на серверах.
  3. В Jenkins нет четкого разделения джоб по контурам. При изменении или добавлении какого-то сервера в инфраструктуру, нужно будет вносить корректировки во все связанные джобы.
  4. Список jobs в документации не полный.
  5. Деплой песочниц организован неудобно и непрозрачно. Например, нет автоматического удаления.
  6. Воркфлоу в репозитории кода выглядит не связным из-за отсутствия описания того, какие приложения есть в проекте и как они связаны между собой.
  7. Есть разные пайплайны с&nbspзакомментированным кодом. Неясно, как это всё между собой связано.

Наши рекомендации

  • Привести в задокументированный вид.
  • Провести рефакторинг: унифицировать деплои, сделать отдельно деплой песочниц.
  • Избавиться от лишних Jenkins jobs, вынеся часть в код с использованием Ansible или пайплайнов, а бэкапные задачи — в крон или альтернативные решения.
  • Вынести все из репозитория кода, описать весь общий флоу, отделив инфраструктуру от приложений.
  • Сделать автоматическое развертывание песочниц исходя из названия feature ветки.
  • Унифицировать workflow для всех приложений, разработать единый пайплайн.
frame
frame

Документация

  1. Нет описания всей инфраструктуры и полного перечня контуров/серверов (инвентори).
  2. Отсутствуют данные по всем приложениям и плохо видна связь между ними.
  3. Не хватает четких инструкций в документации по laC.
  4. Нет полной документации по CI/CD-процессам.

Наши рекомендации

  • Использовать подход к документации как к коду. Например, есть репозитории с IaC и репозитории с описанными CI/CD-процессами. Документация по использованию этих инструментов должна быть прикреплена к самим инструментам при помощи readme.
  • Составить базу общих знаний по использованию разных технологий в отдельном разделе.
  • Вынести инфраструктурную документацию и типовые инструкции по эксплуатации в свой раздел документации. Он должен поддерживаться и актуализироваться в рамках технической поддержки.
  • Разделить документацию на категории и хранить в разных местах.
frame
frame

Что получил заказчик?

  1. Возможность увидеть все свои ключевые процессы «со стороны», без отрыва основной команды проекта «от производства».
  2. Перечень конкретных проблем, требующих устранения для стабильной и устойчивой работы проекта.
  3. Качественную экспертизу и подробную «дорожную карту» дальнейших действий по реорганизации проекта.

Почему это сработало?

SRE-аудит помогает увидеть комплексную картину, определить ключевые проблемы инфраструктуры и приоритетные направления работы.

Выполняя рекомендации, полученные по итогам аудита, компания может повысить:

  • стабильность и надежность системы – сократив количество сбоев и время простоев;
  • производительность – уменьшив время отклика системы, скорость загрузки страниц;
  • эффективность команд DevOps или SRE – за счет оптимизации процесса реагирования на инциденты и автоматизации рутинных задач;
  • удовлетворенность клиентов – благодаря улучшению качества обслуживания, пользовательского опыта.

Всё это позитивно сказывается на бизнес-результатах компании. Эксплуатационные затраты на обслуживание системы сокращаются (за счет оптимизации и автоматизации мониторинга), а доходы (благодаря повышению надежности системы и сокращению времени простоев) – растут.

Рекомендации

К росту бизнеса важно готовиться заранее. Быстрая динамика и новые масштабы проекта могут ударить по устойчивости компании, обернуться убытками и репутационными рисками. Чтобы избежать проблем, убедитесь в том, что ваша инфраструктура готова к другому уровню нагрузок и задач, выявите и устраните потенциальные угрозы.

SRE-аудит проекта позволит вам получить профессиональную экспертизу системы и оценить ключевые метрики, в том числе:

  • доступность – время безотказной работы и простоя за определенный период;
  • время реагирования на инциденты – необходимое для их обнаружения и разрешения;
  • масштабируемость – способность системы справляться с возросшей нагрузкой;
  • мониторинг – способность системы отследить важный инцидент и проанализировать его в дальнейшем.

Напишите нам, чтобы обсудить ваш проект.

Готовы обсудить проект?

Ответим на заявку в ближайшие 24 часа. А еще мы можем проконсультировать вас по телефону +7 800 555-91-99, электронной почте info@itsumma.ru или в Telegram-чате.

Свяжитесь со мной здесь
Свяжитесь со мной здесь
❗️Имя не может быть пустым
❗️Телефон не может быть пустым
❗️Email не может быть пустым