Инфраструктура

Разновидности задач

  1. Стабильность площадки
    1. Горячо — прямо сейчас мешает жить
    2. Тепло болит, но жить можно
    3. Холодно — стреляет редко, но метко
  2. Задачи облегчения поддержки
    1. Уменьшение времени обслуживания
    2. Уменьшение влияния человеческого фактора
    3. Проактивное реагирование
  3. Задачи оптимизации потребляемых ресурсов
  4. Задачи архитектурного развития системы с целью простого внесения бизнес-изменений
    1. Технический долг
    2. Экспериментальные техники и технологии

Метафора

  • Проект как мастерская
  • Инфрастуктура инструменты в этой мастерской
  • После того как вы что-то мастерите нужно прибраться
    • Нужно потратить кучу времени, чтобы найти нужный инструмент в куче бардака
  • Для того, чтобы мастерить более масштабные вещи нужна реорганизация инструментов
    • Сложно строить космический корабль имея в арсенале только молоток и гвозди
    • Вообще можно, но это будет стоить кучу времени

Доставлять фичи качественнее, чтобы делать доставку новых предсказуемее

Доставлять фичи быстрее, чтобы продавать круче уже сейчас

Долгосрочно или краткосрочно

Кейсы

Партнерские штуки

  • Категория: Стабильность. Горячо
  • Мотивация:
    • LinkService может выжрать всю память, если будет много связей по СЦ (например 0800, 1000)

Отказоустойчивая работа ProductService

  • Категория: Стабильность. Горячо
  • Мотивация:
    • Невозможно выставить счёт, если недоступен какой-нибудь внешний сервис (например, Фокус)

Улучшение отказоустойчивости сетевого взаимодействия. Timebudget

  • Категория: Стабильность. Тепло
  • Мотивация:
    • SLA наших API проседает, если хотя бы одна реплика начинает тормозить

Ограничить выборку из HealthMonitor в кассандру

  • Категория: Стабильность. Холодно
  • Мотивация: Можно отстрелить себе полкассандры на боевой, если не знать как правильно использовать инструмент в НМ.

ToolsAutorunner

  • ВНИМАНИЕ Задача решалась подпольно!
  • Категория:
    • Задачи облегчения поддержки
      • Уменьшение времени обслуживания
      • Уменьшение влияния человеческого фактора
  • Мотивация: 
    • Мы пишем различные тулзы, которые изменяют модель хранения данных в системе
    • Их нужно накатывать на всех наших окружениях
    • Раньше делали руками

Лавинообразные ошибки

  • Категория:
    • Задачи облегчения поддержки
      • Проактивное реагирование
  • Мотивация:
    • Заваливаем монитор ошибками и пропускаем действительно важные
    • Можем заDDOSить сами себя retry-запросами

Запросы к TransactionProcessingQueues

  • Категория: Задачи оптимизации потребляемых ресурсов
  • Мотивация:
    • Есть ряд таблиц в SQL, которые используются только для нужд баланса
    • По ним тяжёлым запросом собираются метрики для статистики

Эксперимент с DDD

  • Категория: Задачи архитектурного развития системы
  • Мотивация:
    • Логика LinkService сложная
      • Никто в команде не знает как оно работает
    • Техническая часть кода и бизнесовая тесно связаны
    • Расширять/изменять LinkService без багов практически нереально
Made with Slides.com