Андрей Прокопюк,

 

Инфраструктура
веб-проектов

Андрей Прокопюк

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

История проекта

Один стартап, магазин дискет

История проекта

Стадия 1

История проекта

Стадия 1

История проекта

Стадия 2

Нужно больше фич. Добавляются разработчики

История проекта

Стадия 2

История проекта

Стадия 3

Нагрузка выросла

Единственный сервер не справляется

История проекта

Стадия 3

Добавили 4 сервера

В скрипте деплоя операция в цикле

История проекта

Стадия 4

Печаль-беда, откатываем релиз!

О_о

И это на всех серверах

История проекта

Стадия 4

Автоматизация отката релиза

Версионирование релизов

История проекта

Стадия 5

Слушайте, а у нас 2 сервера лежат уже 3 дня…

История проекта

Стадия 5

Мониторинг с оповещениями

И жили они долго и счастливо

 

Задачи инфраструктуры

Задачи инфраструктуры

 

Хостинг

Хостинг

 

Инструментарий разработки

Инструментарий разработки

Разработчикам нужно совместно работать над кодом, нужно выполнять этот код

 

Интеграция изменений

Интеграция изменений

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

Интеграция изменений

Travis CI Jenkins TeamCity

 

Релизный цикл с возможностью отката

Релизный цикл с возможностью отката

Версионирование релизов

Релизный цикл с возможностью отката

github.com/shipitjs/shipit

   

Релизный цикл с возможностью отката

На Heroku – Git для продакшен-кода:

Релизный цикл с возможностью отката

Пакеты операционных систем

 

Мониторинг проекта

Мониторинг проекта

Проверка доступности сервиса

metrika.yandex.ru

Яндекс.Метрика

Проверка доступности сервиса

uptimerobot.com

Uptime Robot

Анализ показателей на предмет аномалий

okmeter.io

OkMeter

OkMeter

OkMeter

OkMeter

OkMeter

OkMeter

OkMeter

OkMeter

 

Заключение

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

Железо, системное ПО
Инструментарий разработки
Корректная интеграция изменений
Быстрая доставка фич
Релизный цикл с возможностью отката
Мониторинг здоровья сервиса

 

Спасибо за внимание!