5
Специфика создания коробочного решения на основе Docker-контейнеров для микросервисной архитектуры системы Planiro Сергей Фадеев Droid Labs droidlabs.pro DROID LABS THE ROCKSTARS!

Специфика создания коробочного решения на основе Docker-контейнеров для микросервисной архитектуры

Embed Size (px)

Citation preview

Page 1: Специфика создания коробочного решения на основе Docker-контейнеров для микросервисной архитектуры

Специфика создания коробочного решения на основе Docker-контейнеров

для микросервисной архитектуры системы Planiro

Сергей ФадеевDroid Labs

droidlabs.pro

DROIDLABS

THE ROCKSTARS!

Page 2: Специфика создания коробочного решения на основе Docker-контейнеров для микросервисной архитектуры

Единая среда окружения для девелоператестировщика продакшена

Простота написания Докерфайлов, сосед всегдапоймет что ты написал Удобная инфраструктура доставки/храненияприложения

Безопасность/ изолированность процесса

В Докере есть все чтобы легко создать коробочноерешение для приложения

Легкость линейного масштабирования

droidlabs.pro

Почему мы выбрали Docker и какую задачумы решаем ?

Page 3: Специфика создания коробочного решения на основе Docker-контейнеров для микросервисной архитектуры

droidlabs.pro

Процесс сборки

Использование официальных образов дляоблегчения сборки образов(Nginx, Postgres, RabbitMQ)

Один процесс один контейнер

Наследование образов

# |-- nginx# |-- postgres:9.3# |-- postgres# |-- rabbitmq:3# |-- configs-build# |-- assets# |-- node:5# |-- node-with-gulp# |-- node-with-modules# |-- build-js# |-- ruby:2.3.0# |-- ruby-with-gems# |-- build-assets# |-- build-container# |-- migrations# |-- rails-app# |-- sinatra-app# |-- subsystems# |-- ruby-with-gems-and-cron# |-- cron-subsystems

build images 'nginx' -> 'postgres' -> 'node-with-gulp' -> 'node-with-modules' -> 'ruby-with-gems' -> 'ruby-with-gems-and-cron' -> 'build-container'

unpack 'build-container-image'

build image 'build-js'unpack 'build-js-image'

build image 'build-assets'unpack 'build-assets-image'

build_images 'assets' -> 'rails-app' -> 'sinatra-app' -> 'migrations' -> 'all subsystems'

Page 4: Специфика создания коробочного решения на основе Docker-контейнеров для микросервисной архитектуры

droidlabs.pro

Деплой приложения у конечногопользователя

docker pull

install.sh

zero time deploy (nginx/haproxy + backends)

INSTALL PROCESS

1. pull all images from docker registry2. unpack assets and configs to host machine3. run docker-compose STEP1 - run postgres + rabbitmq STEP2 - run migrations STEP3 - run rails-app, sinatra app, microservices STEP4 - run nginx STEP5 - system check

Page 5: Специфика создания коробочного решения на основе Docker-контейнеров для микросервисной архитектуры

droidlabs.pro

Сергей ФадеевDroid Labs

droidlabs.proplaniro.com

droidlabsdroidlabs.prodroidlabs