ready for prod

29
Production: жизнь только начинается Сергей Калинец @skalinets

Upload: serhiy-kalinets

Post on 04-Jul-2015

1.402 views

Category:

Documents


0 download

DESCRIPTION

Мой доклад с Agile BC JAN 2012

TRANSCRIPT

Page 1: Ready for prod

Production: жизнь только начинается

Сергей Калинец

@skalinets

Page 2: Ready for prod

Про меня

• Разрабатываю STP систему (middleware) в CompatibL

• Тренер scrumguides

• Ведущий клуба практического программирования на stratoplan.ru

28.01.2012 @skalinets 2

Page 3: Ready for prod

Какой-то отчет за 2009 год

ПРОЕКТЫ

28.01.2012 @skalinets 3

Page 4: Ready for prod

Продакшн

• Там разработчиков не любят

• Нельзя дебажить

• Нет доступа ВООБЩЕ

28.01.2012 @skalinets 4

Page 5: Ready for prod

Собираетесь отдохнуть?

28.01.2012 @skalinets 5

Page 6: Ready for prod

Но приходит бизнес

28.01.2012 @skalinets 6

Page 7: Ready for prod

С production багом

Чета как-то оно не работает

Давайте починим

Бегом

БЕГОМ!!!

28.01.2012 @skalinets 7

Page 8: Ready for prod

Что же делать?

@skalinets 8

Page 9: Ready for prod

Книгу на полку

28.01.2012 @skalinets 9

Page 10: Ready for prod

Стабильность

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

Под давлением тоже

28.01.2012 @skalinets 10

Page 11: Ready for prod

Угрозы

• Утечки памяти

• Захват процессора одним потоком

• Флешмоб юзеров

• …

28.01.2012 @skalinets 11

Page 12: Ready for prod

Шота треснуло

В одном месте сломалось…

28.01.2012 @skalinets 12

Page 13: Ready for prod

Шота треснуло

Если ничего не делать, оно расползется дальше

28.01.2012 @skalinets 13

Page 14: Ready for prod

Антипатерн: Точки интеграции

• Система зависит от них

• Каналы связи уязвимы

• Блокирующие вызовы

• Каскадные отказы

28.01.2012 @skalinets 14

Page 15: Ready for prod

Точки интеграции: что надо знать?

• Когда-то по любому бахнут

• Ошибки вряд ли будут внятными

• Их проблемы быстро становятся вашими

• Есть паттерны стабильности

28.01.2012 @skalinets 15

Page 16: Ready for prod

Паттерны стабильности

• Circuit Breaker (предохранитель)

• Timeouts (время -- всё)

• Handshaking (рукопожатие) и Heartbeat(пульс)

28.01.2012 @skalinets 16

Page 17: Ready for prod

Антипатерн: Пользователи

• Системы были бы намного стабильнее без них

• Бывают только на production

• Поглощают ресурсы

• Бывают злые

28.01.2012 @skalinets 17

Page 18: Ready for prod

Откуда ждать DDOS?

28.01.2012 @skalinets 18

Page 19: Ready for prod

Backlog (не scrum)

28.01.2012 @skalinets 19

Page 20: Ready for prod

Страница не грузица

Что делают пользователи?

28.01.2012 @skalinets 20

Page 21: Ready for prod

Что с ними делать?

• Кешировать статические данные

• Тестировать более жестко

• Распознавать нежелательных гостей

28.01.2012 @skalinets 21

Page 22: Ready for prod

Медленные запросы

• Приводят к отказам

• Дают больше трафика

• Отпугивают пользователей

28.01.2012 @skalinets 22

Page 23: Ready for prod

Что делать

• Искать утечку ресурсов

• Отслеживать и возвращать ошибку СРАЗУ

• Подсказывать пользователям, что делать дальше

28.01.2012 @skalinets 23

Page 24: Ready for prod

Админы

• Они знают, как админить

• C ними нужно дружить

• Их нужно научить

28.01.2012 @skalinets 24

Page 25: Ready for prod

Плохие идеи

• Кнопка катапультирования около магнитолы

• Конфиги разбросанные по папкам

• Хардкод путей для логов

28.01.2012 @skalinets 25

Page 26: Ready for prod

Внятные сообщения в логах

28.01.2012 @skalinets 26

Page 27: Ready for prod

Итого

• На проде окружение отличается от вашего привычного

• К нему нужно готовиться

• Думайте вперед

• Прочитайте книгу Release It!

28.01.2012 @skalinets 27

Page 28: Ready for prod

Книгу на полку

28.01.2012 @skalinets 28

Page 29: Ready for prod

СПАСИБО!

http://tdd4.net

Skype: sergiikalinets

[email protected]

@skalinets