Перейти к содержимому

Архитектура и подход

Как мы проектируем, внедряем и передаём критически важные системы

Наш подход намеренно прост: понять, как устроена работа, договориться, что должна делать система, строить её поэтапно, проверять в реалистичных условиях и передавать тем, кто будет её эксплуатировать, со всем необходимым.

Поставка

Шесть этапов, у каждого — понятный результат

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

  1. Понять, как устроена работа

    Изучаем, как всё работает сейчас: люди, системы, объёмы и места, где возникают сбои.

    РезультатСогласованное описание процессов и ограничений

  2. Определить границы и критерии приёмки

    Договариваемся, за что отвечает система, с чем она связана и как мы поймём, что она работает.

    РезультатГраницы системы и критерии приёмки

  3. Строить поэтапно

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

    РезультатРаботающие части, проверенные вместе с вашей командой

  4. Проверять в реалистичных условиях

    Тестируем на репрезентативных данных, объёмах и сценариях сбоев, а не только в идеальных условиях.

    РезультатРезультаты проверки по критериям приёмки

  5. Внедрять с планом отката

    У каждого релиза есть понятный путь назад. Мы планируем переключение и до запуска убеждаемся, что знаем, как восстановиться.

    РезультатПлан релиза с проверенным откатом

  6. Передать вместе с документацией

    Ваша команда получает понятную эксплуатационную документацию и разбор того, как система ведёт себя и как её обслуживать.

    РезультатЭксплуатационная документация и сессия передачи

Взгляд на систему

От сети до повседневной работы

Мы рассматриваем систему как набор связанных уровней. Проблема на одном уровне обычно проявляется на другом, поэтому мы проектируем и наблюдаем их вместе.

neokadrix / layers
  1. Операции
    • Команды
    • Поддержка
    • Отчётность
  2. Платформы
    • Flow
    • Spot
    • Заказные приложения
  3. Данные
    • Каталоги
    • Записи
    • История
  4. Инфраструктура
    • Облако
    • Собственные площадки
    • Гибрид
  5. Сеть
    • Площадки
    • Сегменты
    • Каналы связи
Мониторинг и надёжность
Как связаны уровни системы

Принципы архитектуры

Решения, которые мы всегда принимаем одинаково

Эти принципы определяют каждую систему, которую мы создаём, независимо от её масштаба.

  • Чёткие границы

    У каждого компонента есть определённая ответственность и задокументированный интерфейс. Ничто не зависит от недокументированного поведения.

  • Управление отдельно от тяжёлой работы

    Части, которые принимают решения, отделены от частей, которые перемещают или обрабатывают большие объёмы, поэтому их можно масштабировать и чинить независимо.

  • Наблюдаемость с самого начала

    Состояние, активность и сбои измеримы с первого дня, а не добавляются после первого инцидента.

  • Путь назад для любого изменения

    Релизы, миграции и изменения конфигурации планируются с проверенным способом восстановления.

  • Соразмерные технологии

    Выбираем компоненты, которые эксплуатирующая команда сможет поддерживать, и избегаем сложности, которой не требует нагрузка.

  • Документы, которые переживут проект

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

Передача

Что получает ваша команда

Когда этап завершён, люди, отвечающие за систему, должны уверенно её эксплуатировать.

  • Описание архитектуры и границ системы
  • Эксплуатационные инструкции и процедуры восстановления
  • Обзор мониторинга и оповещений
  • Процедуры релиза и отката
  • Документация по интеграциям и интерфейсам
  • Разбор системы с эксплуатирующей командой

Начнём с разговора о ваших процессах

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