Виртуализация приложения
Я много раз слышал про Docker, про систему виртуализации приложений. И вот пришло время для того, чтобы разобраться в этих терминах.
Docker - это программное обеспечение, которое позволяет “упаковывать” приложение и все его зависимости в контейнер. Готовый блок можно переносить на любую среду по управлению контейнерами.
и какой от этого толк?
Наиболее популярным способом разбития монолитной архитектуры на микросервисы была виртуализация отдельных частей (сервисов) в виртуальных машинах (Hyper-V, VirtualBox).
Решение было хорошим до того момента, когда сервисы не начинали разрастаться. И для нормальной работы требовалось наращивание серверных мощностей.
И тут на помощь приходит Docker.
Он, в отличие от виртуальной машины, работает быстро и не требует много ресурсов. Всё потому, что Docker не “создает” гостевую ОС, а использует систему хоста. Для понимания нужно рассмотреть изображения ниже.
При этом у каждого контейнера изолированная файловая система.
Docker работает только на Unix-системах, но благодаря WSL есть возможность запускать Docker на Windows (так же Docker можно запускать с помощью виртуализации, но с появлением WSL2 в этом нет смысла).
С 2015 года Microsoft меняет свою позицию по отношению к Open Source и другим сторонним технологиям. С появлением .Net Core есть возможность упаковывать веб приложения в контейнер Docker’a.
Для того, чтобы включить поддержку Docker’a при создание приложения.
После чего в тулбаре появляется возможность упаковать приложения в контейнер Docker’a.
После того, как приложения было упаковано его нужно запустить. Существуют различные платформы для этого.
Как пример Azure Service Fabric.