Тот самый момент, когда даже Флэш может позавидовать разработчикам. Ровно неделю назад у нас вышел крутой анонс о новой службе экземпляров контейнеров Azure (Azure Container Instances, ACI), которая максимально упрощает развёртывание контейнеров. Это первая в мире облачная служба такого рода. Ниже я хочу рассказать вам подробнее, что она из себя представляет и как с ней можно работать.



Она позволяет быстро и без лишних усилий создавать контейнеры, избавляя при этом от необходимости управлять инфраструктурой виртуальных машин. ACI — самый быстрый и простой способ развертывания контейнеров в облаке.

Экземпляр контейнера в Azure представляет собой отдельный контейнер с посекундной тарификацией, который запускается практически мгновенно. В ACI имеются гибкие средства контроля за выделяемыми контейнерам ресурсами (память и виртуальные процессоры), с помощью которых вы сможете создать оптимальную инфраструктуру для своего приложения. Теперь вы действительно платите только за фактически используемые ресурсы, учитывается каждая секунда и каждый гигабайт. Контейнеры в ACI — масксимально интегрированы в платформу Azure. Это позволяет использовать контроль доступа на основе ролей (Role-Based Access Control, RBAC) и теги выставления счетов, чтобы учитывать потребляемые ресурсы на уровне отдельных контейнеров. Служба предоставляет доступ к контейнерам напрямую, поэтому не придется задумываться об управлении ВМ или изучать концепции оркестрации кластеров верхнего уровня. Все просто: ваш код запускается в контейнере, развернутом в облаке.

Если вы только начинаете знакомиться с облачными контейнерами, Azure Container Instances может стать для вас удобным инструментом. Чтобы создать и развернуть новый контейнер, достаточно настроить несколько параметров. Например, с помощью следующей команды CLI можно развертывать контейнеры в службе ACI через оболочку Azure Cloud Shell. Подробные инструкции см. в руководстве быстрый старт с ACI.

az container create -g aci_grp --name nginx --image library/nginx --ip-address public

А если вам нужно точно указать объем памяти (ГБ) и количество процессоров, то команда будет выглядеть так:

az container create -g aci_grp --name nginx --image library/nginx --ip-address public –cpu 2 --memory 5



В данный момент доступна предварительная версия с поддержкой контейнеров Linux. В ближайшие недели будет реализована поддержка контейнеров Windows. Для развертывания используется интерфейс командной строки Azure CLI или шаблон. Кроме того, быстро и без лишних усилий развернуть контейнер можно с помощью общедоступного репозитория Docker Hub или вашего частного репозитория, воспользовавшись реестром контейнеров Azure. Каждый развернутый контейнер полностью изолирован от ресурсов других клиентов.

Как вы уже убедились, работать с ACI очень просто. Служба Azure Container Instances не выступает в качестве оркестратора, скорее, это один из компонентов инфраструктуры контейнеров, который следует использовать в сочетании с оркестраторами и другими службами.

Сегодня мы также объявляем о доступности соединителя с открытым исходным кодом ACI Connector для Kubernetes. Он предназначен для развертывания в Azure Container Instances контейнеров для кластера Kubernetes. Такой подход позволяет практически мгновенно выделять кластеру необходимые ресурсы, избавляя администратора от необходимости управлять инфраструктурой ВМ, продолжая использовать универсальное Kubernetes API. В одном кластере K8s вы сможете использовать и виртуальные машины, и экземпляры контейнеров. Служба Azure Container Instances поможет эффективно справляться со скачкообразным ростом нагрузки, а виртуальные машины разрешат более предсказуемо выполнять масштабирование. Более того, рабочие нагрузки можно будет беспрепятственно переносить между этими базовыми инфраструктурными на основе разных моделей. Такой подход обеспечивает высокую гибкость в развертывании Kubernetes. Службы можно запускать за считаные секунды, не создавая предварительно виртуальные машины. Для учета потребляемых ресурсов и масштабирования применяется посекундная тарификация.

Демонстрация соединителя ACI Connector в действии:



Мы постоянно увеличиваем инвестиции и активнее вовлекаем сообщество в работу над поддержкой контейнеров и Kubernetes, включая Helm, Draft, а также k8s ACI коннектор, о выходе которого я рассказал выше. Поддержка сообщества подчеркивает важность открытой экосистемы с точки зрения развития набирающей обороты технологии контейнеров. Этот опыт действительно воодушевляет.

Поэтому я с радостью сообщаю о том, что корпорация Microsoft вошла в состав организации Cloud Native Computing (CNC) в статусе платинового участника. CNCF — коллаборационный проект Linux Foundation (Microsoft присоединилась к этой организации в прошлом году), участники которого курируют проекты Kubernetes, Prometheus, OpenTracing, Fluentd, Linkerd, containerd, Helm, gRPC и многие другие. Мы очень воодушевлены возможностью тесного сотрудничества с сообществом CNCF. Гейб Монрой (Gabe Monroy), ведущий руководитель проектов в Microsoft Azure, который занимается контейнерами, вошел в состав совета CNCF.

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

На основе недавнего анонса от Кори Сандерса.
Поделиться с друзьями
-->

Комментарии (4)


  1. el777
    02.08.2017 14:53
    +1

    Звучит очень интересно!
    Сразу вопросы:


    1. Как понимаю, это обычные Docker контейнеры или есть какие-то определенные тевбования к ним?
    2. Можно ли описать правила разворачивания декларативно в виде json/yaml/etc…? Аналогично heroku, amazon и пр? Идеально, тобы я мог положить рядом с проектом файлик разворачивания. Затем по этому файлу, все нужные конейнер развернулись.
    3. Как можно или гибко управлять? Например, если мне нужно, чтобы контейнер работал по требованию. В нормальном состоянии контейнер выключен, я пытаюсь к нему подключиться (условно говоря на https://ip:443) контейнер запускается, работает. Далее если ничего не происходит какое-то время, то контейнер выключается. Можно ли это сделать в настройках разворачивания? Или лучше делать так, чтобы приложение внутри контейнера завершалось и служба контейнеров его сворачивала?


    1. stasus
      02.08.2017 15:13
      +3

      1. Обычные Docker контейнеры
      2. Пока нет. Это превью, сейчас это можно решить через ACI connector for k8s и Helm.
      3. Нет и для этого оно не предназначено. Это разрабатывается, как возможное дополнение к оркестраторам, в виде возможности быстро запускать контейнеры, но не заменяет их управляющий функционал.


  1. gaploid
    03.08.2017 09:06
    +2

    Вот бы увидеть статью, где в кратце рассказываются все контейнерные сервисы в Azure, их различия и основные сценарии использования.


    1. Schvepsss
      03.08.2017 09:15
      +1

      stasus, звучит как идея! :)