Выбор подходящей вычислительной службы
Сравните VM, контейнеры, безсерверные функции и размещение приложений на PaaS, чтобы выбрать наиболее подходящий вычислительный вариант для разных профилей рабочих нагрузок.
«Выбор подходящей вычислительной службы» — бесплатный урок Azure Fundamentals на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Azure Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Azure Fundamentals содержит 4 уроков всего.
Выбор вычислительных ресурсов Azure
Azure предлагает несколько служб вычислений — каждая предназначена для определённого типа рабочей нагрузки, уровня контроля и операционной модели. Неправильный выбор службы вычислений приводит к ненужной сложности (при слишком низком уровне) или недостаточному контролю (при слишком высокой степени абстракции). Ключевой вопрос: какой объём базовой инфраструктуры Вам необходимо контролировать? В этом уроке рассматриваются основные варианты вычислительных ресурсов и критерии, которые помогут выбрать подходящий вариант для каждого сценария.
Вариант 1: Azure Virtual Machines
Azure Virtual Machines предоставляют полный контроль над OS, средой выполнения и стеком приложений. Используйте VM, если Вам нужно: запускать устаревшие приложения, требующие определённой версии OS или настройки ядра, выполнить миграцию методом lift-and-shift локальной рабочей нагрузки без изменений, устанавливать пользовательское программное обеспечение на системном уровне или использовать постоянные вычислительные ресурсы, работающие круглосуточно и без выходных с предсказуемой фиксированной конфигурацией. Компромисс заключается в самой высокой операционной нагрузке: Вы отвечаете за установку исправлений OS, усиление защиты и мониторинг уровня OS.
Вариант 2: наборы масштабирования VM
Наборы масштабирования виртуальных машин подходят, когда Вам нужны VM, но также требуется автоматическое масштабирование в зависимости от спроса. Если Ваша рабочая нагрузка не сохраняет состояние (веб-серверы, серверные части API, пакетные обработчики), работает одинаково на каждом экземпляре и характеризуется переменным спросом, VMSS будет естественным выбором. Этот вариант сочетает контроль на уровне VM с автоматическим горизонтальным масштабированием. При выборе между отдельной VM и VMSS обычно определяющим фактором является необходимость масштабирования рабочей нагрузки за пределы одного экземпляра.
Вариант 3: Azure App Service
Azure App Service — это платформа PaaS для размещения веб-приложений, REST API и серверных частей мобильных приложений. Вы развёртываете свой код (на Node.js, Python, Java, .NET, PHP, Ruby или в контейнере), а Azure управляет средой выполнения, OS, установкой исправлений, балансировкой нагрузки и масштабированием. Используйте App Service, когда хотите быстро выпускать код без управления инфраструктурой, когда приложение соответствует стандартным шаблонам веб-приложений и когда Вам не требуется настройка на уровне OS. App Service — одна из самых популярных служб Azure благодаря сочетанию возможностей и простоты.
Вариант 4: Azure Container Instances
Azure Container Instances (ACI) позволяют запускать контейнер Docker в облаке без управления инфраструктурой — без VM и без оркестратора. ACI идеально подходит для кратковременных контейнерных рабочих нагрузок по требованию: запланированных пакетных заданий, задач конвейера CI/CD, сценариев обработки данных или сред разработки. Контейнеры запускаются за считанные секунды, а плата взимается за каждую секунду использования CPU и памяти. ACI не предоставляет такие возможности Kubernetes, как обнаружение служб, поэтапные развёртывания или перезапуск на основе состояния, — это среда выполнения одного контейнера или группы контейнеров.
# Run a container in ACI with no VM to manage
az container create \
--resource-group myRG \
--name myContainer \
--image mcr.microsoft.com/hello-world \
--cpu 1 --memory 1Вариант 5: Azure Kubernetes Service
Azure Kubernetes Service (AKS) — это управляемая среда Kubernetes для оркестрации контейнеризированных приложений в большом масштабе. Используйте AKS, когда у Вас есть несколько микрослужб, которым требуются обнаружение служб, поэтапные развёртывания, автоматическое восстановление и сложное масштабирование. AKS управляет плоскостью управления Kubernetes (сервером API, etcd, планировщиком) как бесплатным компонентом PaaS, а Вы управляете VM рабочих узлов. AKS — самый требовательный к операционному управлению вариант контейнеров, но он предоставляет наибольшие возможности и гибкость для производственных архитектур микрослужб.
Вариант 6: Azure Functions (бессерверные вычисления)
Azure Functions — это управляемый событиями бессерверный вариант вычислений, в котором Вы пишете отдельные функции, выполняющиеся в ответ на триггеры: HTTP-запросы, расписания таймеров, сообщения, поступающие в очередь, или события из других служб Azure. Вы платите за каждое выполнение (первые 1 миллион выполнений в месяц предоставляется бесплатно), а платформа автоматически масштабируется от нуля до тысяч параллельных выполнений. Используйте Functions для автоматизации, управляемой событиями, веб-перехватчиков, конвейеров преобразования данных и любых рабочих нагрузок, которые по своей природе являются кратковременными и запускаются триггерами.
Схема выбора вычислительных ресурсов
Используйте это упрощённое дерево решений: Нужен полный контроль над OS? → VM или VMSS. Контейнеризированная рабочая нагрузка в большом масштабе? → AKS. Один кратковременный контейнер? → ACI. Веб-приложение или API без управления OS? → App Service. Код, управляемый событиями и выполняющийся недолго? → Azure Functions. Чем ниже в этом списке Вы выбираете вариант, тем меньше инфраструктуры Вы контролируете и тем быстрее можете выполнять развёртывание, но также тем меньше контроля у Вас над средой выполнения. Выбирайте самый высокий уровень абстракции, соответствующий Вашим требованиям.
Сочетание вариантов вычислений
В реальных архитектурах часто используются несколько вариантов вычислений одновременно. Например, компания может использовать App Service для клиентского веб-приложения, Azure Functions для обработки заказов, управляемой событиями, AKS для внутренней платформы микрослужб и VM для устаревшей системы ERP, которую невозможно переработать. Единые средства управления Azure — портал, CLI, шаблоны ARM и Azure Monitor — согласованно работают со всеми службами вычислений, благодаря чему архитектура с несколькими вариантами вычислений управляется из одной плоскости управления.
Сравнение стоимости вычислительных ресурсов
Стоимость существенно различается у разных вариантов вычислительных ресурсов. VMs — плата взимается за каждый час работы VM выбранного размера, даже если она простаивает (если только её не освободить). App Service — плата взимается за каждый час использования SKU плана App Service, но несколько приложений могут совместно использовать один план без дополнительной платы. ACI — плата взимается за фактически использованные CPU и память с точностью до секунды; плата за простой не взимается. Azure Functions (Consumption Plan) — плата взимается за каждое выполнение и за каждую секунду выполнения, при этом предоставляется очень большой бесплатный объём. Для непостоянных рабочих нагрузок бессерверные варианты почти всегда наиболее экономичны; для постоянных рабочих нагрузок, работающих круглосуточно, зарезервированные VM или планы App Service могут оказаться дешевле.
Сравнение SLA
Разные вычислительные службы предлагают разные гарантии SLA: одна VM (Premium SSD): 99,9%. VM в группе доступности: 99,95%. VM в разных зонах доступности: 99,99%. App Service (уровень Standard и выше): 99,95%. Azure Functions (Consumption Plan): 99,95%. AKS: доступность сервера API 99,95% (на платном уровне). Составной SLA для архитектуры из нескольких компонентов рассчитывается умножением отдельных показателей SLA — например, для App Service (99,95%), подключённого к Azure SQL (99,99%), составной SLA составляет приблизительно 99,94%.
Быстрая проверка
Проверьте своё понимание концепций Microsoft Azure Fundamentals (AZ-900), рассмотренных в этом уроке.
Итоги урока
В этом уроке Вы узнали, что Azure предлагает несколько вариантов вычислительных ресурсов — VMs, VMSS, App Service, ACI, AKS и Functions, — каждый из которых подходит для определённых профилей рабочих нагрузок и требований к управлению, общее правило заключается в том, чтобы выбирать наиболее высокий уровень абстракции, соответствующий Вашим требованиям, и тем самым минимизировать операционную нагрузку, а реальные архитектуры часто объединяют несколько вычислительных служб, управляемых через единый уровень управления Azure. Далее мы начнём изучать службы хранилищ Azure, начиная с Storage Accounts.
Часто задаваемые вопросы
Урок «Выбор подходящей вычислительной службы» бесплатный?
Да — полный текст урока «Выбор подходящей вычислительной службы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Azure Fundamentals, подпишись на CoddyKit PRO. Курс Azure Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «Выбор подходящей вычислительной службы»?
Сравните VM, контейнеры, безсерверные функции и размещение приложений на PaaS, чтобы выбрать наиболее подходящий вычислительный вариант для разных профилей рабочих нагрузок. Ты практикуешь Azure Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Azure Fundamentals?
Предыдущий опыт не требуется. Azure Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Выбор подходящей вычислительной службы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Azure Fundamentals?
Да. Каждый урок Azure Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Виртуальные машины Azure
- Масштабируемые наборы виртуальных машин
- Виртуальный рабочий стол Azure
- Выбор подходящей вычислительной службы