Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
История одного деплоя
Stanislav Mekhonoshin
Деплой
Docker
Ansible
Vagrant
Stage 1
Dockerfile per app
Кастомные скрипты для сборки Docker-image
Ansible плейбук для развертывания инфраструктуры
Ansi...
Пример
- name: vk container
docker:
name: vk
image: dockerhub_user/collector-vk:latest
pull: always
state: reloaded
links:...
~ cd collector
~ vagrant up
~ bin/deploy web vk scheduler
Вот тут происходит:
docker build -t user/appname .
docker push u...
Выигрыш от Stage 1
Модно
Сервисы изолированы
Деплой гетерогенного приложения в одну команду
Проблемы Stage 1
Нужен вагрант для деплоя
Слишком много conventions
Конфигурация в ansible и vagrant
Сложно линковать конт...
Stage 2
Docker Compose
Docker for Mac
Ansible 2.2
docker_service module
Пример
version: '2'
services:
postgres:
container_name: postgres
image: postgres:9.5
volumes:
- ${DATA_MOUNTPOINT}/pg_data...
Пример
- name: run all containers
docker_service:
project_name: "{{ project_name }}"
project_src: "/{{ project_name }}"
fi...
Выигрыш от Stage 2
Упрощение и унификация локального и production запуска
Простая связь между контейнерами
Регламентирован...
Проблемы Stage 2
Хочется кластер
Говорят, что compose не для продакшена
Почему-то на python
https://github.com/docker/for-...
Stage 3
Docker Swarm
AWS EC2
3 плейбука:
- AWS
- Swarm
- Apps
Swarm VS Swarm Mode
Выигрыш от Stage 3
Изи масштабирование
Балансировка нагрузки
Были проблемы с созданием кластера
Docker Compose и Docker Swarm Mode не работают вместе
https://github.com/ddrozdov/docke...
Выводы
Stage 4
Kubernetes
Core OS
CI
Docker
Docker
Docker
Docker
Docker
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
NoSQL pain
Next
Download to read offline and view in fullscreen.

0

Share

Docker

Download to read offline

https://youtu.be/YJ5uS95NV0s

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Docker

  1. 1. История одного деплоя Stanislav Mekhonoshin
  2. 2. Деплой Docker Ansible Vagrant
  3. 3. Stage 1 Dockerfile per app Кастомные скрипты для сборки Docker-image Ansible плейбук для развертывания инфраструктуры Ansible docker module
  4. 4. Пример - name: vk container docker: name: vk image: dockerhub_user/collector-vk:latest pull: always state: reloaded links: rabbitmq:rabbitmq,postgres:postgres detach: true publish_all_ports: true volumes: - "{{ ansible_env.HOME }}/config.yaml.template:/app/config.yaml.template" command: /bin/bash -c "envsubst < /app/config.yaml.template > /app/config.yaml && make run"
  5. 5. ~ cd collector ~ vagrant up ~ bin/deploy web vk scheduler Вот тут происходит: docker build -t user/appname . docker push user/appname ansible-playbook -i production playbooks/myapp.yml Пример
  6. 6. Выигрыш от Stage 1 Модно Сервисы изолированы Деплой гетерогенного приложения в одну команду
  7. 7. Проблемы Stage 1 Нужен вагрант для деплоя Слишком много conventions Конфигурация в ansible и vagrant Сложно линковать контейнеры(Docker legacy links) При апдейте контейнера - надо перезапускать все зависимости
  8. 8. Stage 2 Docker Compose Docker for Mac Ansible 2.2 docker_service module
  9. 9. Пример version: '2' services: postgres: container_name: postgres image: postgres:9.5 volumes: - ${DATA_MOUNTPOINT}/pg_data:/pg_data ports: - "127.0.0.1:5432:5432" environment: - PGDATA=/pg_data redis: container_name: redis image: redis:latest command: redis-server --appendonly yes ports: - "127.0.0.1:6379:6379"
  10. 10. Пример - name: run all containers docker_service: project_name: "{{ project_name }}" project_src: "/{{ project_name }}" files: - docker-compose.yml - docker-compose.apps.yml environment: DATA_MOUNTPOINT: "{{ data_mountpoint }}"
  11. 11. Выигрыш от Stage 2 Упрощение и унификация локального и production запуска Простая связь между контейнерами Регламентированный порядок запуска сервисов Vagrant больше не нужен(ну почти)
  12. 12. Проблемы Stage 2 Хочется кластер Говорят, что compose не для продакшена Почему-то на python https://github.com/docker/for-mac/issues/881
  13. 13. Stage 3 Docker Swarm AWS EC2 3 плейбука: - AWS - Swarm - Apps
  14. 14. Swarm VS Swarm Mode
  15. 15. Выигрыш от Stage 3 Изи масштабирование Балансировка нагрузки
  16. 16. Были проблемы с созданием кластера Docker Compose и Docker Swarm Mode не работают вместе https://github.com/ddrozdov/docker-compose-swarm-mode https://github.com/docker/docker/tree/master/experimental Ansible не умеет Docker Swarm Mode => много ручной работы https://github.com/ansible/ansible-modules-core/pull/5547 Проблемы Stage 3
  17. 17. Выводы
  18. 18. Stage 4 Kubernetes Core OS CI

https://youtu.be/YJ5uS95NV0s

Views

Total views

152

On Slideshare

0

From embeds

0

Number of embeds

0

Actions

Downloads

2

Shares

0

Comments

0

Likes

0

×