secon'2016. Парамонов Сергей, Автоматизируй это! Как не...
TRANSCRIPT
![Page 1: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/1.jpg)
Автоматизируй это!Как при разработке игры не погрязнуть в рутине
и сохранить время на креатив
![Page 2: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/2.jpg)
Разработка игр
![Page 3: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/3.jpg)
Заглянем под капот
![Page 4: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/4.jpg)
Что мы автоматизируем
• Серверная инфраструктура• Мониторинг• Развертывание приложений• Логирование• И даже Гейм дизайн
![Page 5: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/5.jpg)
Серверная инфраструктура
![Page 6: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/6.jpg)
Проблемы
• Различная конфигурация серверов• Различные версии ПО• Различные настройки• Нет четко выделенной роли сервера• Единственная возможность что-то узнать,
залезть в голову админа
![Page 7: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/7.jpg)
«He is alive, alive»- у каждого сервера есть душа
![Page 8: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/8.jpg)
Решения
• Разделение ролей серверов• Систематизация ПО• Соглашение о структуре сервера• Система управления конфигурацией• Автоматические тесты
![Page 9: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/9.jpg)
Системы конфигурирования серверов
• Puppet• Salt• Chef• Ansible
![Page 10: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/10.jpg)
Пример конфигурации
![Page 11: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/11.jpg)
Результат
• Покупка сервера за минуту• Установка ПО за час
![Page 12: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/12.jpg)
Мониторинг
![Page 13: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/13.jpg)
Задачи
• Информировать о критической ситуации• Дать как можно больше информации для
решения кризиса• Прогнозировать и предугадывать кризисные
ситуации• Мониторить мониторинг• Исправлять
![Page 14: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/14.jpg)
«Лучший мониторинг»
![Page 15: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/15.jpg)
Проблемы мониторинга
• Децентрализованность и не системность• Отсутствие интеграции с приложениями• Отсутствие связи с другими процессами
компании• «Вольное» обращение со статусами сенсоров
![Page 16: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/16.jpg)
Ключ к решению
• Централизация• Интеграция с приложениями• Культура статусов: ошибка - это ошибка, варнинг
- это варнинг.• Конфигурация и статистика• Синтетический критерий эффективности• Мониторинг не должен замедлять и нарушать
работу приложения
![Page 17: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/17.jpg)
Если мы знаем ошибку, то почему бы ее не исправить
![Page 18: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/18.jpg)
Наш велосипед
![Page 19: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/19.jpg)
Наш велосипед
![Page 20: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/20.jpg)
Deployment
![Page 21: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/21.jpg)
Все уже решено
• Maven• Jenkins• Пакетные менеджеры
![Page 22: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/22.jpg)
Правда жизни
• Не все системы работают с CI (сеансы скриптовой магии)
• Как подружить maven c Flash или Unity3D?• Развертывание проекта на несколько серверов• Быстрый откат версии
![Page 23: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/23.jpg)
Наш велик
![Page 24: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/24.jpg)
Наш велик
![Page 25: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/25.jpg)
Ведение логов
![Page 26: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/26.jpg)
Извечные проблемы с логами
• Слишком мало данных - ничего не понятно• Слишком много данных - ничего не понятно
![Page 27: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/27.jpg)
Логироваие на этапе разработки
• Писать всё!• Правильные статусы• Наборы конфигураций с подавлением
некоторых компонент системы
![Page 28: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/28.jpg)
Логи в production
• Писать вообще всё!• Запись в лог, это не просто строка, а строчка бд с
идентификаторами.• Все что относится к проекту пишется в лог
проекта• Правильное хранилище• Логи не должны тормозить приложение.
![Page 29: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/29.jpg)
Чужой велосипед с нашими колесами
• Log4J• Свой Appender• Helper и formater для записи логов• ElasticSearch + Logstash + Kibana• UDP протокол• Мониторинг
![Page 30: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/30.jpg)
Online доступ к логам
![Page 31: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/31.jpg)
Гейм дизайн
• Google Spreadsheets • Google Script• XML
![Page 32: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/32.jpg)
Google в помощь
![Page 33: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/33.jpg)
Скрипты автоматизации
![Page 34: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/34.jpg)
Разработка
• Любая библиотека – это автоматизация, что же ты будешь про все библиотеки рассказывать?
• Да, буду
![Page 35: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/35.jpg)
Общая функциональность
• Авторизация• Биллинг• Нотификация
![Page 36: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/36.jpg)
Сервисы
![Page 37: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/37.jpg)
Требования к сервисам
• Работа 24/7• Надежность, не при каких обстоятельствах
сервис не должен упасть• Возможность обновлять на лету.• Устойчивость к нагрузкам• Версионность
![Page 38: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/38.jpg)
Автоматизация труда
• Форматеры• Code Template• Scrum scripts
![Page 39: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/39.jpg)
Интеграция
• Принцип «одного» места• Уведомления• Чатботы
![Page 40: SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине при разработке игры](https://reader033.vdocuments.mx/reader033/viewer/2022042618/58ab45611a28ab61758b5451/html5/thumbnails/40.jpg)
Вопросы?Сергей Парамонов
Технический директорООО «Тортуга»
http://tortuga.social/