Экземпляры контейнеров Azure: все, что вам нужно знать
В недавнем интервью генерального директора Docker Бена Голуба спросили, как его компания может зарабатывать деньги на продукте с открытым исходным кодом. Хорошим ответом было бы: «Если в этом нет денег, то почему в этом заинтересованы Microsoft и Oracle?» Согласно одному недавнему опросу, более 30 процентов респондентов заявили, что тратят более полумиллиона долларов на лицензии и использование контейнеров. И не случайно Microsoft недавно анонсировала Azure Container Instances, которые должны значительно упростить развертывание контейнеров.
Любой, кто пойдет по пути архитектуры контейнеров и микросервисов, должен вскоре убедиться, что не все является открытым исходным кодом, и индивидуальные решения всегда стоят денег. С одной стороны, это похоже на авиабилеты, где базовые версии сообщества и версии с открытым исходным кодом — это ваши билеты эконом-класса, а места первого класса — это то, где находятся все платные вещи. Очевидно, что это может быть намного сложнее, чем места первого класса и эконом-класса, тем более что большую часть времени с новыми технологиями вы даже не знаете, в какой авиакомпании вы находитесь или где вы должны выйти, для этого иметь значение.
Microsoft садится на денежный поезд
Все согласны с тем, что контейнеры — это здорово, и все хотят, чтобы развертывание их приложений в контейнерах было крутым, модным и высокопроизводительным. Microsoft тратит 370 000 долларов в год на то, чтобы стать частью клуба крутых детей и общаться со всеми людьми, занимающимися открытым исходным кодом. Как упоминалось ранее, если бы в этом не было денег, Microsoft не была бы заинтересована. Microsoft уже давно занимается этим и делает все, чтобы остаться на нем. Эти усилия включают в себя признание в любви к Linux, получение статуса платинового члена CNCF, где на сцену выходит этот крутой годовой ценник в размере 370 000 долларов, а также недавнее приобретение Deis.
Итак, в чем основная идея экземпляров контейнеров Azure? В конце концов, служба контейнеров Azure уже существует. Идея состоит в том, чтобы сделать развертывание еще проще за счет абстрагирования инфраструктуры и предоставления пользователям своего рода «бессерверного» развертывания контейнеров. Менеджер по продуктам Azure для контейнеров описал ACI как «невидимую инфраструктуру и микробиллинг для бессерверных вычислений, не навязывая модель программирования, управляемую событиями». ACI также использует командную строку Azure и поставляется с легко реализуемым набором команд, с помощью которых контейнерные приложения можно быстро создавать и запускать прямо из командной строки.
Контейнеры как услуга
Azure Container Services (ACS) работает путем создания виртуальных машин вокруг ваших контейнеров, что требует довольно больших ресурсов и эффективно устраняет одно из основных преимуществ контейнеров, заключающееся в том, что они чрезвычайно легкие, быстрые и нетребовательные к ресурсам. Самое забавное здесь то, что ваши экземпляры контейнеров Azure по-прежнему будут работать на виртуальных машинах, за исключением того, что они работают в фоновом режиме, и вам больше не нужно на это смотреть. Есть некоторые предположения, что это может указывать на то, что Azure Container Instances использует контейнеры Hyper-V, что снова забавно, потому что теперь мы эффективно запускаем образы Linux на функции Windows Server, работающей в Linux, потому что она должна быть более безопасной, чем работающая. их на самом Linux.
Хотя этот тип относится к категории «ВМ для контейнеров как услуги», а не «Контейнеры как услуга», как многие, вероятно, ожидали, время запуска должно быть меньше, чем у обычных контейнеров на основе ВМ.. На самом деле одним из плюсов Azure Container Instances является скорость запуска контейнеров — Microsoft заявляет, что контейнеры ACI запускаются в течение нескольких секунд. Существует также еще одна служба, позволяющая развертывать контейнеры в виде веб-приложений Azure, а Azure Container Instances — это самый быстрый способ развертывания контейнеров в Azure из всех трех. Это, а также тот факт, что он поставляется с командами управления контейнерами и работает с Kubernetes, делает его действительно интересным выбором.
Причина того, что развертывание контейнера из существующего репозитория происходит в течение нескольких секунд, несмотря на то, что он все еще работает на виртуальной машине, заключается в том, что вместо создания базовой виртуальной машины ACI просто назначает существующую виртуальную машину вашему контейнеру. Прелесть этого нового предложения от Microsoft, помимо того факта, что оно оплачивается за использование, на самом деле заключается в том, что, хотя ACI в настоящее время поддерживает только контейнеры Linux, поддержка контейнеров Windows ожидается в ближайшие пару недель.
Контейнеры с оплатой по мере использования
Можете ли вы поверить, что Microsoft выпускает что-то, что поддерживает Linux раньше, чем Windows? Времена меняются, действительно. Что касается выставления счетов за использование, ACI предлагает модель выставления счетов, основанную на посекундном использовании, что позволяет значительно сэкономить на оплате содержания и обслуживания серверов. Биллинг делится на память и количество ядер, используемых в секунду, поэтому, если вы увеличиваете масштаб, было бы неплохо следить за счетчиком во время его работы. Кроме того, запрос, используемый для развертывания контейнера, также может включать определение необходимого количества ядер и памяти.
Во многих исходных документах Microsoft для ACI предполагается, что он будет использоваться в качестве хоста для масштабируемых веб-сервисов и приложений, что, вероятно, и будет использоваться во многих случаях. Вероятно, его также будут использовать с Kubernetes для быстрого масштабирования приложений и сервисов.
Экземпляры контейнеров Azure и Kubernetes
У вас не может быть контейнерной вечеринки и вы не можете пригласить Kubernetes, а для Kubernetes существует коннектор ACI, который позволяет вам иметь и ACI, и ACS в одном кластере, что-то вроде настройки гибридного контейнера в Azure. Этот коннектор ACI для Kubernetes представляет собой проект с открытым исходным кодом, размещенный на GitHub, и позволяет развертывать Kubernetes прямо в ACI, где функции ACI, такие как kubelet, регистрируются как узел с неограниченной емкостью.
Поскольку это проект с открытым исходным кодом, в будущем также ожидается поддержка Mesos, Swarm и других. Самое приятное в коннекторе ACI то, что вам даже не нужно запускать Kubernetes, чтобы запустить его. После запуска вы можете использовать команды Kubernetes из своей учетной записи ACI для создания и уничтожения контейнеров по своему усмотрению. Microsoft уже некоторое время занимается поддержкой Kubernetes, и ACI, похоже, станет отличным инструментом, когда он будет готов к работе.
Обещание PowerShell
Кроме того, Microsoft пообещала, что PowerShell будет добавлен в Cloud Shell и Azure CLI. PowerShell — это среда автоматизации задач и управления конфигурацией от Microsoft, состоящая из оболочки командной строки и связанного с ней языка сценариев, созданного на основе.NET Framework и.NET Core. Здесь есть много возможностей для автоматизации, главным образом потому, что PowerShell гарантирует, что у вас будет доступ к наиболее распространенным инструментам автоматизации для управления ресурсами Azure практически из любого места, а во-вторых, потому что Azure CLI основан на Bash, который очень хорошо подходит для кодирования..
В целом Microsoft приложила большие усилия, чтобы взять контейнерную технологию, которая до сих пор пугает многих людей, и превратить ее во что-то удобное для пользователя, но в то же время с некоторой глубиной. Судя по тому, как идут дела, мы, вероятно, увидим много новых сервисов на основе контейнеров от Microsoft, построенных вокруг этого. Кто знает, может быть, однажды они вообще покончат с виртуальными машинами.