secon'2017, Кулагин Егор, Непрерывное развертывание....

25
Непрерывное развертывание. Конвейер здорового человека Кулагин Егор Компания «Тортуга»

Upload: secon

Post on 21-Jan-2018

66 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Непрерывное развертывание. Конвейер здорового человека

Кулагин Егор

Компания «Тортуга»

Page 2: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Зачем?

Page 3: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Зачем?

• 4 проекта в активной разработки• 9 платформ(социальные сети, AppStore, Android

Store)• 10 языков

Page 4: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Особенности игровых приложений

• Клиент-серверная архитектура• Клиент и сервер написаны на разных языках• Мультиплатформенность• Нагрузка

Page 5: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Развертывание курильщика

• Проект собирается на машине разработчика• Сборка заливается на продакшн с помощью ssh или ftp• Настройка конфигурации вручную на боевом сервере• Ручная синхронизация базы данных и хранилища

Page 6: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Развертывание курильщика

Page 7: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Развертывание курильщика

Page 8: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Эволюция представления о развертываний

• Эпоха скриптов • Появление CI сервер• Инструмент развертывания

Page 9: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Появления отдела QA

Page 10: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

QA

• Необходимость быстро развернуть любую сборку на любой машине• Частная смена конфигурационных параметров• Если людей можно как-то научить сложным процедурам установки, то

как быть с автоматическими тестами

Page 11: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Красивое слово идемпотентность.

• Идемпотентность — свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при одинарном.

Page 12: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Конвейер здорового человека

• Mercurial• Jenkins• Мaven• Nexus• TestNG• Salt• Пакетный менеджер

Page 13: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Mercurial

• Строгая культура ведения репозитория• Hg – flow• Feature, release, hotfix, фиксация

Page 14: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Jenkins

• Бесплатно• Open source• Огромное количество plug-in• Внятное api• Механизм pipeline

Page 15: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Jenkins

Page 16: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Build

• Сборка делается с помощью maven• Все что мы должны сделать это набрать mvn package• Сборка приложения на Ci не должна отличаться от сборки человеком•Не все языки поддерживают maven в достаточном объеме•Успешный Build - это только начало работы, а не радостный финиш

Page 17: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Nexus

• Репозиторий это наше все.• Сборки, артефакты, отчеты, промежуточные результаты.• Все данные воссоздаваемые• Все внешние библиотеки и пакеты идут через наш репозиторий

Page 18: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Конфигурирование

• Декомпозиция сборки и конфигурации,• Конфигурация – это отдельный артефакт.• Установка приложения это композиция кода и конфигурации• Сервис доступа к конфигурации

Page 19: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Тестирование

• Модульное• Приемочное

Page 20: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Тестовое окружение

• Vagrant• Salt• Octopusik

Page 21: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Octotpusik - сервер окружения для тестирования.

Page 22: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Deploy – требования

• Унификация • Deploy приложение без знаний о его структуре.• Возможность быстрого отката• Модификация структуры БД

Page 23: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Deploy

• Пакетная система• Менеджер пакетов • Liquibase• Mvn плагин для хранилища

Page 24: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Планы на будущее

• Archetype для проектов• Установка dev-машин с помощью менеджера пакетов• Внедрения docker • Максимально распараллелить фазы конвеера

Page 25: SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового человека

Вопросы?

Егор Кулагин

ООО «Тортуга»

http://tortuga.games/

[email protected]