процесса на уровне HW Изоляция процесса на уровне OS Полная изоляция ресурсов от Host OS Общие ресурсы с Host OS - - - Возможность наследования образов Больше время на старт (OS + app) Очень быстрый старт приложения Сложно собрать свой образ OS Простая сборка образа Большие размеры образов Небольшие размеры образов Сложная кластеризация Простая изоляция компонентов кластера 2
FROM ruby:2.4-alpine ‣ Установим все production переменные окружения ENV RAILS_ENV=production ‣ Закэшируем зависимые пакеты COPY Gemfile Gemfile.lock /app/ RUN bundle install --retry=4 --jobs=2 --without development test 15
AWS EC2 инстансах ‣ Kubernetes для управления кластером ‣ Автозакупка нод для запуска задач ‣ Динамический пул агентов ‣ Практически ежедневные релизы без остановки сервиса ‣ Более 1000 запусков приложений в сутки https://vexor.io 25
OS - разный Docker ‣ Синхронизация файловых систем ‣ Скорость IO внутри контейнера ‣ IO events ‣ Права доступа и владелец файлов http://docker-sync.io/ 27
2 стратегии синхронизации rsync и unison ‣ Односторонняя синхронизация rsync и двусторонняя unison ‣ Поддержка user-remapping при проблемах с правами доступа ‣ Поддержка docker-compose и перекрываемых docker-compose.yml ‣ Теоретически можно запускать на удаленных машинах где есть docker http://docker-sync.io/ 28