ready for prod
DESCRIPTION
Мой доклад с Agile BC JAN 2012TRANSCRIPT
Production: жизнь только начинается
Сергей Калинец
@skalinets
Про меня
• Разрабатываю STP систему (middleware) в CompatibL
• Тренер scrumguides
• Ведущий клуба практического программирования на stratoplan.ru
28.01.2012 @skalinets 2
Какой-то отчет за 2009 год
ПРОЕКТЫ
28.01.2012 @skalinets 3
Продакшн
• Там разработчиков не любят
• Нельзя дебажить
• Нет доступа ВООБЩЕ
28.01.2012 @skalinets 4
Собираетесь отдохнуть?
28.01.2012 @skalinets 5
Но приходит бизнес
28.01.2012 @skalinets 6
С production багом
Чета как-то оно не работает
Давайте починим
Бегом
БЕГОМ!!!
28.01.2012 @skalinets 7
Что же делать?
@skalinets 8
Книгу на полку
28.01.2012 @skalinets 9
Стабильность
Способность системы выполнять транзакциидлительное время
Под давлением тоже
28.01.2012 @skalinets 10
Угрозы
• Утечки памяти
• Захват процессора одним потоком
• Флешмоб юзеров
• …
28.01.2012 @skalinets 11
Шота треснуло
В одном месте сломалось…
28.01.2012 @skalinets 12
Шота треснуло
Если ничего не делать, оно расползется дальше
28.01.2012 @skalinets 13
Антипатерн: Точки интеграции
• Система зависит от них
• Каналы связи уязвимы
• Блокирующие вызовы
• Каскадные отказы
28.01.2012 @skalinets 14
Точки интеграции: что надо знать?
• Когда-то по любому бахнут
• Ошибки вряд ли будут внятными
• Их проблемы быстро становятся вашими
• Есть паттерны стабильности
28.01.2012 @skalinets 15
Паттерны стабильности
• Circuit Breaker (предохранитель)
• Timeouts (время -- всё)
• Handshaking (рукопожатие) и Heartbeat(пульс)
28.01.2012 @skalinets 16
Антипатерн: Пользователи
• Системы были бы намного стабильнее без них
• Бывают только на production
• Поглощают ресурсы
• Бывают злые
28.01.2012 @skalinets 17
Откуда ждать DDOS?
28.01.2012 @skalinets 18
Backlog (не scrum)
28.01.2012 @skalinets 19
Страница не грузица
Что делают пользователи?
28.01.2012 @skalinets 20
Что с ними делать?
• Кешировать статические данные
• Тестировать более жестко
• Распознавать нежелательных гостей
28.01.2012 @skalinets 21
Медленные запросы
• Приводят к отказам
• Дают больше трафика
• Отпугивают пользователей
28.01.2012 @skalinets 22
Что делать
• Искать утечку ресурсов
• Отслеживать и возвращать ошибку СРАЗУ
• Подсказывать пользователям, что делать дальше
28.01.2012 @skalinets 23
Админы
• Они знают, как админить
• C ними нужно дружить
• Их нужно научить
28.01.2012 @skalinets 24
Плохие идеи
• Кнопка катапультирования около магнитолы
• Конфиги разбросанные по папкам
• Хардкод путей для логов
28.01.2012 @skalinets 25
Внятные сообщения в логах
28.01.2012 @skalinets 26
Итого
• На проде окружение отличается от вашего привычного
• К нему нужно готовиться
• Думайте вперед
• Прочитайте книгу Release It!
28.01.2012 @skalinets 27
Книгу на полку
28.01.2012 @skalinets 28
СПАСИБО!
http://tdd4.net
Skype: sergiikalinets
@skalinets