DevOps

Во всех проектах, реализуемых на Ensi, при разработке используются современные DevOps-практики.
DevOps — перераспределение ответственности между специалистами с помощью автоматизации процессов для оптимизации поддержки системы.

Преимущества

  • 1
    Сокращение времени ввода продукта и его обновлений в эксплуатацию (Time to Market);
  • 2
    Быстрое внесение исправлений и изменений;
  • 3
    Высокая отказоустойчивость новых релизов;
  • 4
    Значительное снижение времени и трудозатрат на восстановление или откат;
Схема работы методологии на реальном проекте

Особенности методологии

Настройки конфигураций для Ops-процессов производится на этапе разработки. Сами Ops-процессы автоматизированы и включают в себя автотестирование и мониторинг.
Dev
  • Код;
  • Настройка конфигураций.
Ops
  • Сборка;
  • Тестирование;
  • Упаковка;
  • Релиз;
  • Настройка;
  • Мониторинг;
  • Непрерывная интеграция (CI);
  • Непрерывная поставка (CD).

Инструменты

CI/CD — непрерывная интеграция / непрерывная поставка

Непрерывная интеграция (CI)
Методология разработки и набор практик при которых в код вносятся небольшие изменения с частыми коммитами. Цель — обеспечить последовательный и автоматизированный способ сборки, упаковки и тестирования приложений.
Непрерывная поставка (CD)
Непрерывная поставка начинается там, где заканчивается непрерывная интеграция. Это автоматизация разворота приложений в различных окружениях.

Метрики и мониторинг

Метрики — цифровые показатели, количественно описывающие различные аспекты работы системы.
К ним обычно относятся низкоуровневые измерения состояния системы: потребление памяти, нагрузка на процессор и на сеть. Платформа и специфика самой системы расширяют список разнообразными показателями, например, здесь же можно встретить количество контейнеров на сервере и задержки репликации базы данных. Числовые показатели выводят в виде графиков и диаграмм. Это позволяет увидеть изменение состояния системы во времени.
Сбором метрик занимается система мониторинга. В нашем случае это т.н. prometheus stack — набор программ, которые занимаются сбором, хранением и отображением вышеупомянутых характеристик системы.

Логирование

Логи — упорядоченный во времени набор событий, произошедших в системе. Это текстовые информационные сообщения, которые позволяют понять как работала система в тот или ной момент. Помимо самого сообщения, запись в логе содержит время события и набор меток, которые позволяют категоризовать сообщения.
Сбором логов занимается система ELK — набор программ для хранения и отображения логов.

Достоинства инфраструктуры на базе kubernetes

  • Быстрое масштабирование;
  • Высокая отказоустойчивость;
  • Решение объемных задач увеличением копий приложения;
  • Всё необходимое для работы приложения лежит в репозиториях;
  • Приложение можно развернуть локально;
  • Управление релизами и возможность быстрого отката, если что-то пошло не так.