secon'2016. Парамонов Сергей, Автоматизируй это! Как не...

Post on 21-Feb-2017

169 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Автоматизируй это!Как при разработке игры не погрязнуть в рутине

и сохранить время на креатив

Разработка игр

Заглянем под капот

Что мы автоматизируем

• Серверная инфраструктура• Мониторинг• Развертывание приложений• Логирование• И даже Гейм дизайн

Серверная инфраструктура

Проблемы

• Различная конфигурация серверов• Различные версии ПО• Различные настройки• Нет четко выделенной роли сервера• Единственная возможность что-то узнать,

залезть в голову админа

«He is alive, alive»- у каждого сервера есть душа

Решения

• Разделение ролей серверов• Систематизация ПО• Соглашение о структуре сервера• Система управления конфигурацией• Автоматические тесты

Системы конфигурирования серверов

• Puppet• Salt• Chef• Ansible

Пример конфигурации

Результат

• Покупка сервера за минуту• Установка ПО за час

Мониторинг

Задачи

• Информировать о критической ситуации• Дать как можно больше информации для

решения кризиса• Прогнозировать и предугадывать кризисные

ситуации• Мониторить мониторинг• Исправлять

«Лучший мониторинг»

Проблемы мониторинга

• Децентрализованность и не системность• Отсутствие интеграции с приложениями• Отсутствие связи с другими процессами

компании• «Вольное» обращение со статусами сенсоров

Ключ к решению

• Централизация• Интеграция с приложениями• Культура статусов: ошибка - это ошибка, варнинг

- это варнинг.• Конфигурация и статистика• Синтетический критерий эффективности• Мониторинг не должен замедлять и нарушать

работу приложения

Если мы знаем ошибку, то почему бы ее не исправить

Наш велосипед

Наш велосипед

Deployment

Все уже решено

• Maven• Jenkins• Пакетные менеджеры

Правда жизни

• Не все системы работают с CI (сеансы скриптовой магии)

• Как подружить maven c Flash или Unity3D?• Развертывание проекта на несколько серверов• Быстрый откат версии

Наш велик

Наш велик

Ведение логов

Извечные проблемы с логами

• Слишком мало данных - ничего не понятно• Слишком много данных - ничего не понятно

Логироваие на этапе разработки

• Писать всё!• Правильные статусы• Наборы конфигураций с подавлением

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

Логи в production

• Писать вообще всё!• Запись в лог, это не просто строка, а строчка бд с

идентификаторами.• Все что относится к проекту пишется в лог

проекта• Правильное хранилище• Логи не должны тормозить приложение.

Чужой велосипед с нашими колесами

• Log4J• Свой Appender• Helper и formater для записи логов• ElasticSearch + Logstash + Kibana• UDP протокол• Мониторинг

Online доступ к логам

Гейм дизайн

• Google Spreadsheets • Google Script• XML

Google в помощь

Скрипты автоматизации

Разработка

• Любая библиотека – это автоматизация, что же ты будешь про все библиотеки рассказывать?

• Да, буду

Общая функциональность

• Авторизация• Биллинг• Нотификация

Сервисы

Требования к сервисам

• Работа 24/7• Надежность, не при каких обстоятельствах

сервис не должен упасть• Возможность обновлять на лету.• Устойчивость к нагрузкам• Версионность

Автоматизация труда

• Форматеры• Code Template• Scrum scripts

Интеграция

• Принцип «одного» места• Уведомления• Чатботы

Вопросы?Сергей Парамонов

Технический директорООО «Тортуга»

http://tortuga.social/

sergey.paramonov@tortugasocial.com

top related