Зачем мне использовать Docker, когда я контролирую свою среду разработки, организации и работы? - PullRequest
0 голосов
/ 20 мая 2018

Я знаю весь факт, что лучше иметь именно то, что является производственной средой на рабочей станции разработки: она стирает «она работает на моем компьютере».

Докер для меня это как БрюсЛи на стероидах борется с Абдулом Джаббаром : если вам нужно использовать виртуальную машину, используйте вместо нее Docker.

Если при разработке я использую nuget для управления своими зависимостями, на моем сервере сборки он восстанавливает пакетыперед развертыванием: тогда у меня есть именно то, что нужно приложению для запуска.

Кроме того, это то же самое приложение, которое я развертываю снова и снова на одних и тех же компьютерах.Зачем мне нужна политика перезагрузки, когда я должен знать, что пошло не так?Если приложение умирает, другие ящики возьмут на себя нагрузку, и мне нужно исследовать / исправить, а не привыкать «ничего страшного, контейнер перезапустится через минуту».

В облачной средеЯ вижу смысл: AWS, Azure - это те, кто может воспользоваться большинством этих функций.Например, возможность быстро перемещать веб-приложения с сервера на сервер, когда клиенты требуют большей мощности.Кроме того, если эти веб-приложения отличаются, то мне нужно изолировать их друг от друга: отличный вариант использования Docker!

Но, если исходить из предположения / колокейшн, если у меня есть сценарий powershell, чтобы я мог работать на голом железном сервереготовность к IIS: зачем мне вводить еще один уровень абстракции?

1 Ответ

0 голосов
/ 20 мая 2018

Первые два ответа, о которых я подумал (их больше, но я думаю, что они наиболее важные):

  1. Использование ресурсов - если вы голый металл, ваша единица масштабаскорее всего целая виртуальная машина.Поскольку вы запускаете более одного экземпляра приложения или службы, вы можете сделать это, только запустив больше виртуальных машин.Каноническим примером этого в моем мире являются веб-сайты IIS, где я могу получить только один экземпляр на машину.Если я запускаю три экземпляра, у меня три виртуальные машины, которые используются недостаточно.Docker позволяет вам копировать приложения в пределах одной виртуальной машины.Вы можете использовать больше ресурсов на одной виртуальной машине, прежде чем масштабировать их по горизонтали.

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

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

...