Какие цели и задачи у Docker в production?

Всем привет.
Занимаюсь веб разработкой, как написанием кода так и немного администрированием линкусовых серверов.
Слышал и читал много хайпа вокруг докера и вагранта.
Если с вагрантом у меня дружба сложилась, для меня это удобство для локальной разработки. Я могу сделать свой образ с провижен файлом, в которым накачу все что надо для моего веб проекта и юзать эту виртуалку как веб-сервер полностью настроенный как мне надо, и еще и с коллегами им поделиться, чтобы не мучались, то с докером для меня не так всё ясно.
Непонятно каковы реальные цели и задачи докера в продакшене. каков уровень задач?
Хотелось бы услышать ответы кто действительно сам юзает, отзывы, плюсы и минусы, круг задач.
Была идея что можно на несколько серверов (будь то разные проекты или один проект разнесенный по разным серверам накатывать ПО контейнерами, но нет уверенности что это не оверинижиринг, так как в принципе с этим в какой-то мере справится ansible).
Что делаете докером вы?
  • Вопрос задан
  • 5045 просмотров
Решения вопроса 5
DevMan
@DevMan
вагрант - готовая виртуалка, в которой все свалено в кучу.
докер - контейнер изолированных приложений, что позволяет ими оперативно рулить как захочется и при этом экономить на ресурсах.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
заменяем гипервизор: виртуализация дешевле любого, в т.ч. того же Vagrantа
+ расшариваемый доступ на чтение
+ секурность какая-никакая, хоть это отдельная тема

идея проста: процессор, как правило, дешевле памяти, т.к. редко нагружен более 50%, поэтому для кучи проектов дешевле держать один сервер с много памяти, чем несколько серверов (хороший канал, разумеется)

у нас устроено так: nginx на хосте, он же занимается статикой, статика тоже на хосте, а upstream-ы с динамикой (Flask, Django, по-моему bottlepy еще есть) - все в контейнерах, sphinx в контейнере, еще один nginx c сишным демоном тоже в контейнере

базы, правда, разделяемые - есть и в хосте и в контейнерах
"по нормальному" надо бы не разделять базы, т.е. тоже каждую в контейнер, но такую кучу наворачивать пока стремно да и - когда один проект не грузит, другой грузит, это лучше

тут особых наворотов нет - только уверенность в работоспособности других сайтов, если какой-то сложит программер, но вариации могут быть самыми разными - например, nginx с самописными/специфическими модулями в контейнере не ложит остальное, где-то применить Varnish для кеширования, потестить какой-нибудь Aerospike без боязни положить систему и т.п.
Ответ написан
Мы используем Docker для установки Java приложений вместе с окружением. В скрипте сборки собирается контейнер из Docker-файла в него ставится все что нужно, запихиваются настройки и само приложение.
Можно вызвать команду deployment-a, если есть настройки доступа к удаленным серверам.
Да, деплоймент упрощается значительно.
Но главная причина по которой мы используем Docker - это возможность зафиксировать окружение. В java многое для этого сделано, легко можно собрать приложение с заданным набором версий библиотек. Но вот отслеживать версии окружения (серверов приложений и т.д.) приходилось ручками или в документации. Что вело к возникновеню понятных проблем. С Docker-ом вся конфигурация описана в файле и лежит в Git и версионируется вместе с приложением.
Ответ написан
icCE
@icCE
youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
Docker для удобства тестирования и упаковки приложения (апликации) или ряда приложений в контейнер.
Удобно тем, что вы можете сделать рабочий деплой очень и очень быстро. Если у вас упала одна из машин, выкатили новую , старую убили.
Но это лично мое мнение.
Ответ написан
Комментировать
BATAZOR
@BATAZOR
Программист, DevOps
Кроме всего выше сказанного, Docker облегчает процесс CE/CD. Тот же Ansible может оставить за собой артефакты, которые придется чистить самому, c Docker'ом же такого не произойдет. Плюсь поверх докера можно поднять Kubernetes/Mesos что позволит автоматизировать процесс масштабирования приложений. Опять таки скорость поднятия/удаления контейнера выше по сравнению с аналогичными действиями у полной виртуализации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Использую докер-контейнеры как легковесные виртуалки, которыми куда проще манипулировать. И куда меньше душит жаба для конфигов типа "на этой виртуалке будет работать только nginx, на этой только php-fpm, на этой только postgre, эта будет шарить статические файлы для nginx и php-fpm, тут будет лежать кэш, тут загруженные пользователями файлы, а тут база данных"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы