View
166
Download
7
Category
Preview:
Citation preview
Специфика создания коробочного решения на основе Docker-контейнеров
для микросервисной архитектуры системы Planiro
Сергей ФадеевDroid Labs
droidlabs.pro
DROIDLABS
THE ROCKSTARS!
Единая среда окружения для девелоператестировщика продакшена
Простота написания Докерфайлов, сосед всегдапоймет что ты написал Удобная инфраструктура доставки/храненияприложения
Безопасность/ изолированность процесса
В Докере есть все чтобы легко создать коробочноерешение для приложения
Легкость линейного масштабирования
droidlabs.pro
Почему мы выбрали 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'
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
droidlabs.pro
Сергей ФадеевDroid Labs
droidlabs.proplaniro.com
droidlabsdroidlabs.prodroidlabs
Recommended