43
Impact Mapping: планирование разработки продукта с учетом бизнес целей Александр Бындю (byndusoft.com) Микросервисы и Docker Глеб Паньшин "Точка Кипения" [email protected]

TК°Conf. Микросервисы и Docker. Глеб Паньшин

  • Upload
    tkconf

  • View
    64

  • Download
    3

Embed Size (px)

Citation preview

Page 1: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Impact Mapping: планирование разработки продукта с учетом бизнес целейАлександр Бындю (byndusoft.com)

Микросервисы и DockerГлеб Паньшин "Точка Кипения" [email protected]

Page 2: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Точка Кипения КИНОПЛАН

Page 3: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Проект

• 3 года разработки

• 16 + 1 разработчиков

• ~ 1200 недовольных кинотеатров

Page 4: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Технологии

Page 5: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Dev и Ops

Page 6: TК°Conf. Микросервисы и Docker. Глеб Паньшин

2014 год

DEV сервер

Developer0

Developer1

Developer2

Developer3

Developer4

Page 7: TК°Conf. Микросервисы и Docker. Глеб Паньшин

DEV сервер

Developer0

Developer1

Developer2

Developer3

Developer4

developer0.dev.kinoplan.ru

developer1.dev.kinoplan.ru

developer4.dev.kinoplan.ru

Page 8: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Плюсы

• Минимум действий от разработчика

• Относительно удобно поддерживать

• Окружение как на боевом сервере

Page 9: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Минусы

• Отказ сервера останавливает работу всей команды

• Битва за ресурсы

• Удаленное редактирование кода (no vim???)

• Неудобно для отдела тестирования

Page 10: TК°Conf. Микросервисы и Docker. Глеб Паньшин

DEV сервер

Developer0

Developer1

Developer2

Developer3

Developer4

Developer0

Developer1

Developer2

Developer3

Developer4

Page 11: TК°Conf. Микросервисы и Docker. Глеб Паньшин

• Как поддерживать окружение разработчиков

• А как тестировать то теперь?

Page 12: TК°Conf. Микросервисы и Docker. Глеб Паньшин

2 тестовых окружения хватит всем

• dev.kinoplan.ru

• stage.dev.kinoplan.ru

Page 13: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Stage кому-то нужен?

Page 14: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Помощники

Page 15: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Task flow

ToDo In progress

KW-1001 KW-1001

Branch Created

Page 16: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Task flow

In progress Build

KW-1001 KW-1001

Pull request created

Page 17: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Task flow

Build QA

KW-1001 KW-1001

Instance created

Page 18: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Task flow

QA Review

KW-1001 KW-1001

Instance deleted

Page 19: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Task flow

Review Ready

KW-1001 KW-1001

Instance deleted

Pull request closed

Page 20: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Task flow

Ready Done

KW-1001 KW-1001

Deployed

Page 21: TК°Conf. Микросервисы и Docker. Глеб Паньшин

TK Jira Tool

• Создание Instance после успешного билда

• Актуализация Instance

• Удаление Instance

• Следит за количеством Approve

Page 22: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Ключевые аспекты• No git-flow. Только master-branch

• Тестирование до review

• Instance для каждой задачи ( Front only )

• У всех проектов триггер на изменение master ветки

• Кнопка MERGE в руках QA-специалистов

Page 23: TК°Conf. Микросервисы и Docker. Глеб Паньшин

А как же backend?

Page 24: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Теперь про Dev

Page 25: TК°Conf. Микросервисы и Docker. Глеб Паньшин
Page 26: TК°Conf. Микросервисы и Docker. Глеб Паньшин
Page 27: TК°Conf. Микросервисы и Docker. Глеб Паньшин

• Не уходим от ssh

• Надо изучать Puppet, chef, ansible..

Page 28: TК°Conf. Микросервисы и Docker. Глеб Паньшин
Page 29: TК°Conf. Микросервисы и Docker. Глеб Паньшин

• docker-machine

• репозиторий с sub-modules

Page 30: TК°Conf. Микросервисы и Docker. Глеб Паньшин

git clone && git submodules init &&

bin/start

Page 31: TК°Conf. Микросервисы и Docker. Глеб Паньшин
Page 32: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Что в продакшне?

• 15 контейнеров

• 5 из них общаются с миром по HTTP

Page 33: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Визуализация иерархии

Page 34: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Иерархия в Bamboo

• Каждый образ это отдельный репозиторий

• Каскадный билд

Page 35: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Так что там про микросервисы?

Page 36: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Представьте, что вы разрабатываете большое сложное приложение

Page 37: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Архитектура

ОрганизацияПроцессыАвтономные командыAgile

Continuous Deployment

Page 38: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Монолит vs Микросервисы

Page 39: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Сколько и насколько маленькие?

Page 40: TК°Conf. Микросервисы и Docker. Глеб Паньшин

28.000 LoC

32.000 LoC

450 LoC

Page 41: TК°Conf. Микросервисы и Docker. Глеб Паньшин

Почему остановились?

Page 42: TК°Conf. Микросервисы и Docker. Глеб Паньшин

• Микросервисы ради микросерсивов неисчерпаемый объем видимой работы

• Отсутствие сильного отдела эксплуатации

Page 43: TК°Conf. Микросервисы и Docker. Глеб Паньшин