tК°conf. Микросервисы и docker. Глеб Паньшин

Post on 13-Apr-2017

56 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Микросервисы и DockerГлеб Паньшин "Точка Кипения" me@panshin.pro

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

Проект

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

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

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

Технологии

Dev и Ops

2014 год

DEV сервер

Developer0

Developer1

Developer2

Developer3

Developer4

DEV сервер

Developer0

Developer1

Developer2

Developer3

Developer4

developer0.dev.kinoplan.ru

developer1.dev.kinoplan.ru

developer4.dev.kinoplan.ru

Плюсы

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

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

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

Минусы

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

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

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

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

DEV сервер

Developer0

Developer1

Developer2

Developer3

Developer4

Developer0

Developer1

Developer2

Developer3

Developer4

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

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

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

• dev.kinoplan.ru

• stage.dev.kinoplan.ru

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

Помощники

Task flow

ToDo In progress

KW-1001 KW-1001

Branch Created

Task flow

In progress Build

KW-1001 KW-1001

Pull request created

Task flow

Build QA

KW-1001 KW-1001

Instance created

Task flow

QA Review

KW-1001 KW-1001

Instance deleted

Task flow

Review Ready

KW-1001 KW-1001

Instance deleted

Pull request closed

Task flow

Ready Done

KW-1001 KW-1001

Deployed

TK Jira Tool

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

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

• Удаление Instance

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

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

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

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

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

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

А как же backend?

Теперь про Dev

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

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

• docker-machine

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

git clone && git submodules init &&

bin/start

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

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

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

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

Иерархия в Bamboo

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

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

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

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

Архитектура

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

Continuous Deployment

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

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

28.000 LoC

32.000 LoC

450 LoC

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

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

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

top related