Azure - DmitryGontarenko/usefultricks GitHub Wiki
About
Microsoft Azure — это платформа облачных вычислений, которая соответствует всем требованиями облачных технологий и позволяет развернуть большое количество различных сервисов.
Облачные вычисления это не просто хранения данных на удаленном сервере (хостинг) - это предоставления фактических вычислений в качестве услуг для компаний, организаций и частных лиц.
Обычно для создании собственной инфраструктуры в компании необходима установка веб-сервера на своем собственном оборудовании. Для настройки и администрирования сервера необходимы специалисты, а при необходимости увеличения мощности - требуется покупка нового оборудования.
Облачные вычисления работают по другому. Покупается не собственное оборудования, а доступ к пулу вычислительных ресурсов, предоставляемых провайдером (Microsoft, Amazon, Google), в котором можно будет размещать все необходимые сервера или данные. При необходимости увеличения вычислительных ресурсов не надо заботиться о "физическом" расширении аппаратного обеспечения - за все это отвечает провайдер. Поэтому оплата происходит непосредственно за количество вычислительных ресурсов, а не за количество стоек с аппаратным обеспечением.
- Management utilities
- Resource Group
- Geography
- Azure Virtual Machine
- Azure Storages
- Azure Network services
Shared Economy
Shared Economy (совместное потребление) - это совместное потребление физического ресурса или же создание физического ресурса с последующим предоставлением его по частям для использования/потребления.
Совместное потребление используется для экономической модели, основанной на коллективном использовании товаров и услуг. Главной идеей совместного потребления является тот факт, что выгоднее платить за временный доступ к продукту, чем владеть им.
Примером данной модели является каршеринг.
По тому же принципу работают и облачные сервисы Microsoft - они заказывают и собирают стойки с оборудованием по своей специальной архитектуре, а потом продают серверы по частям - в виде виртуальных машин и прочих сервисов.
При этом клиент, купивший "часть" такого сервера, не нуждается в: физическом приобретении серверов, помещении для хранения, затрат на электроэнергию и обслуживании физических серверов. И как уже было сказано выше, клиент может увеличить мощность вычислений без дополнительных затрат.
Возможные вопросы.
Вы хотите перенести серверы своего приложения в облако. Какие новые возможности вы получите:
Снизите затраты на содержание, обслуживание и приобретение серверов - ДА.
Сможете обеспечивать расширение дискового пространства на "на ходу" - ДА.
Снизите затраты на обслуживание персонала - НЕТ.
CapEx and OpEx
CapEx (Capital Expenditure, капитальные расходы) - капитал, использующийся компаниями для покупки физических активов (недвижимость, оборудования, технологии). Капитальные расходы представляют собой инвестиционную деятельность для предприятия, т.е. вложения с целью получить прибыль.
OpEx (Operating expenses, операционные расходы) - повседневные расходы компании для ведения бизнеса, производства товаров и услуг. Применительно к бизнесу это могут быть расходы на аренду, зарплату персоналу, рекламу, лицензии, страховку и т.д.
Простые примеры:
Покупка копировального аппарата - капитальные расходы (CapEx), а бумага для него - операционные расходы (OpEx).
Покупка ПО и АО, строительство ЦОД - CapEx, затраты на обслуживание АО, электроэнергии и лицензии ПО - OpEx.
Облачные провайдеры сдают в аренду готовые сервисы (виртуальные машины или ПО - например Office 365), с ежемесячной оплатой за услуги, в зависимости от размера ресурса или количества пользователей. При этом провайдер берет на себя все затраты связанные с аппаратным и программны обеспечением, строительством серверных комнат и т.д.
Таким образом - облачные сервисы переводят CapEx в OpEx - пользователю не нужно тратить деньги на начальные инвестиции и он просто арендует те ресурсы, которые ему требуются, выплачивая ежемесячно стоимость потребленных ресурсов.
Эффективность переноса решения в облако Azure считается в Total Cost Ownership (TCO) Calculator на сайте Azure.
Возможные вопросы.
Внедряя облачное решение вы переводите свои затраты в OpEx - ДА.
Провайдер несет затраты CapEx, клиент несет затраты OpEx - ДА.
Как посчитать стоимость перехода на облачный сервис Azure - C помощью TCO калькулятора.
Cloud computing
Облачные вычисления - это предоставление вычислительных служб, которые могут включать в себя сервера, хранилища данных, базы данных, приложения, аналитику и интеллектуальный анализ через Интернет.
Но "Облоко" имеет ряд характеристик, которые должен обеспечить провайдер:
- Самообслуживание по требованию (self service on demand) - клиент сам выбирает время вычислительных потребностей: скорости доступа и обработки данных, объем хранимой информации - без взаимодействия с представителем услуг (провайдером).
- Универсальный доступ по сети (broad network access) - услуги доступны клиенту в сети передачи данных вне зависимости от устройства.
- Объединение ресурсов (resource pooling) - поставщик услуг объединяет СВОИ ресурсы для обслуживания большого числа потребителей в единый пул для динамического перераспределения мощностей между ними в условии постоянного изменения спроса на мощности (модель Shared Economy).
- Эластичность (rapid elasticity) - предоставленные услуги могут быть расширены или сужены в любой момент времени, без дополнительных издержек на взаимодействие с поставщиком, и как правило, такие изменения происходят автоматически.
- Учёт потребления (measured service) - провайдер должен предоставлять точный отчет о потребленных ресурсах (объем хранимых данных, количество пользователей или транзакций), т.к. чаще всего оплата облачных вычислений идет по потребленным ресурсам.
OneDrive не является облоком, а всего лишь одним из сервисов, которые предоставляет облоко Microsoft.
Возможные вопросы.
Выберите критерии, которые относятся к облаку - Выбрать одно или несколько вышеописанных критериев.
Elasticity
Эластичность (elasticity) - способность облачного решения предоставлять возможность автоматического расширения используемых ресурсов при возникновении нагрузки. Эластичность делиться на внутреннюю и вешнюю:
- Внутренняя эластичность - способность самого облака реагировать на изменения нагрузки и задействовать дополнительные ресурсы;
- Внешняя эластичность - доступные пользователю облака механизмы, которые позволяют конфигурировать свои нагрузки на автоматическое расширение по каким-либо критериям.
Возможные вопросы.
Пример внешней эластичности - Azure App Service Plan - позволяет конфигурировать количество одновременной работающих экземпляров. Например, при увеличении нагрузки на веб-сервер, "облако" автоматически создаст копию этого веб-сервера. Таким образом нагрузка распределиться на два сервера (с помощью сервиса Load Balancer).
Scalability
Масштабируемость (scalability) - общая способность облачного решения предоставлять возможность изменения производительности сервиса пользователя путем изменения количества экземпляров сервиса или изменения их аппаратных характеристик.
Масштабируемость бывает двух типов:
- Scale OUT (horizontal scaling) - изменение количества экземпляров сервиса;
- Scale UP (vertical scaling) - изменение аппаратных характеристик самого сервиса.
Elasticity vs. Scalability
Эластичность от масштабируемости отличается тем, что эластичность это автоматическое расширение в конкретный момент времени, а масштабируемость - сам ФАКТ возможности расширения.
Вот несколько примеров:
Облако предоставляет возможность добавить несколько VM по необходимости - это масштабируемость.
Облако позволяет создать несколько экземпляров VM в автоматическом режиме при скачке нагрузки - это эластичность.
High Availability
Высокая доступность (High Availability, HA) - это способность системы или системного компонента работать постоянно в течении желаемого периода времени.
Например, высокой доступности для веб-серверов можно достичь с помощью пользовательских сервисов Azure - использую масштабирования (Scale out), тем самым повышая SLI веб-сервиса с 99,95 до 99,99 (за счет создания новых экземпляров).
Сам Azure предоставляем высокую доступность для своих сервисов благодаря отказоустойчивости и аварийного восстановления (раздел Fault tolerance & Disaster Recovery).
Fault tolerance & Disaster Recovery
Fault tolerance (Защита от сбоев, отказоустойчивость) - свойство технической системы сохранять свою работоспособность после отказа одного или нескольких составных компонентов. Отказоустойчивость определяет количеством последовательных единичных отказов компонентов, после которого сохраняется работоспособность системы в целом.
Основной способ повышения отказоустойчивости - избыточность, она может быть достигнута методом аппаратной избыточности - резервированием. Дублицирование, резервирование, возможность распределение нагрузки, рейды и т.д. - все это можно отнести к Fault tolerance. В ряде приложений отказоустойчивость путем резервирования является обязательным требованием на государственном уровне.
Disaster Recovery (Аварийное восстановление) - это набор политик, инструментов и процедур, позволяющий восстановить или поддержать важную технологическую инфраструктуру и системы после катастрофического события. Проще говоря - это набор инструкций, в котором описано, как сохранять данные и как потом их восстановить, в случае аварии.
Disaster Recovery имеет два главных параметра:
- Recovery Point Objective (RPO) - определяет, за какой период мы можем потерять данные. Например, при бэкапе каждые 24 часа и после отказа системы через 12 часов - все данные за этот период будут потеряны, но сохранятся все предыдущие;
- Recovery Time Objective (RTO) - определяет, сколько времени понадобиться с момента сбоя, до момента восстановления системы в рабочее состояния из бэкапа.
Business continuity (Непрерывность бизнеса) - это набор всех вышеперечисленных процессов, для обеспечения "бизнесу" непрерывной работы.
Fault Tolerance в Azure представлено внутренними и внешними механизмами.
Внутренние:
- Облачный ЦОД имеет тройную систему питания, коммуникация и т.д. (из другие регионов);
- Резервирование и избыточность - RAID, распределение нагрузки и т.д.;
- Репликация данных (между физическими локациями внутри страны или географическими локациями)
- Автоматическое обнаружение физического сбоя компонентов инфраструктуры и перенос всех затронутых сервисов на другие работоспособные ресурсы.
Внешние (для пользователя):
- Availability Sets/Zones (возможность географического распределения данных);
- Выбор типа репликации (например, для дисков или БД).
Disaster Recovery в Azure для пользователя представлено следующими механизмами:
- Infrastructure as Code - автоматизация равзвертывания VM в Azure с помощью ARM Template;
- Дублицирование данных в хранилища или БД;
- Резервное копирование;
- Azure Site Recovery - позволяет делать реплики целой инфраструктуры в другой ЦОД (отличается от бэкапа малым RPO и RTO).
Public, Private and Hybrid Clouds
Public Cloud
Public cloud (общедоступные облачные решения) - публичное облако должно включать в себя все 5 пунктов, которые характеризуют облачные вычисления + такие облака управляются поставщиком услуг (provider), которые предоставляют их клиентам (tenant) через безопасное подключение к Интернету.
Многие общедоступные облака могут предоставляться сразу нескольким клиентам (multi-tenant), в этом случае провайдер разделяет данные каждого клиента для обеспечения безопасности. Таким образом, несколько клиентов могут пользоваться, например, одним ЦОД.
Если у публичного облака только один арендатор/клиент, то такое облако можно отнести к Managed Cloud (частное облако со сторонним управлением).
Рассмотрим преимущества и недостатки public cloud:
Pros | Cons |
---|---|
Высокая масштабируемость | Предоставляются только общие решения по безопасности и не поддерживаются какие-то уникальные требования клиентов |
Оплата по факту использования (без CapEx) | Публичные облака могут не соответствовать государственным, отраслевым или законодательным требованиям |
Отсутствие ответственности за тех. обслуживание | Арендодатель не имеет доступа к АО и не может изменять его |
Минимальные тех. знания для настройки (как заверяет Microsoft) | Сложно удовлетворить спец. бизнес-требования. Используемое в публичном облаке ПО может быть несовместимо с требованиями арендодателя |
Private Cloud
В частном облаке (privaet cloud) вы создаете облачную среду в своем собственном ЦОД и представляете самообслуживаемый доступ для вычисления ресурсов пользователям вашей организации. Соответственно для пользователей это будет публичным облаком, где вы в свою очередь будете отвечать за предоставляемые аппаратные и программные услуги.
Частные облака строятся с помощью специального ПО (например Virtual Machine Manager).
Рассмотрим преимущества и недостатки private cloud:
Pros | Cons |
---|---|
Вы сами отвечаете за совместимость со спец. ПО или устаревшими приложениями | CapEx. Есть начальные затраты на оборудование и обслуживание |
Вы сами контролируете и управляете безопасностью | Для масштабируемости необходимо покупать, настраивать и устанавливать АП |
Частные облака могут соответствовать любым требованиями безопасности (государственным, законодательным и т.д.) | Для обслуживания частных облаков требуются навыки или поиск специалистов |
Hybrid Cloud
Используя гибридные/смешанное облака (hybrid cloud), организации "смешивают" или сопоставляют ресурсы публичных и частных облаков.
Например, организация может запустить приложение в своем частном облаке, но использовать ресурсы публичного облака при пиковой нагрузке. Либо запускать приложение в публичной среде, но сохранять некоторые данные, относящиеся к этому приложению, в своем частном облаке.
Рассмотрим преимущества и недостатки hybrid cloud:
Pros | Cons |
---|---|
Гибкость в выборе частного или публичного решения | Гибридное облако может иметь сразу две модели затрат - CapEx и OpEx |
Возможность использования собственного оборудование для обеспечения безопасности или устаревших сценариев | Сложность при настройке и управлении |
Возможные вопросы.
Компания планирует развернуть серверы с минимальными вложениями - публичное
У компании спец. требования к безопасности - приватное
Компания планирует опубликовать веб-сервис, но сервер с БД должен оставаться в компании - гибридное
Гибридное облако может быть развернуто без дополнительных затрат - НЕТ
Частное облако обеспечивает больший контроль над безопасностью - ДА
Публичное облако не требует затрат на IT-специалистов - НЕТ (по версии Microsoft)
Частное облако может масштабировать решения без дополнительных затрат - НЕТ (при условии того, что capacity облака заполнено до предела)
В вопросе, каике примеры считать гибридным облаком - ответ несколько разных публичных облаков - неверен. Правильным ответом будет только: локальная инфраструктара (on-premises) + публичное облако и частное облако + публичное.
IaaS, PaaS and SaaS
Infrastructure as a service (IaaS, инфраструктура как сервис) - самая гибкая категория облачных сервисов. Она направлена на то, что бы предоставлять полный контроль над инфраструктурой, на которой выполняется ваше приложение (VM, хранилища, ОС, сети). Вместо покупки оборудования, с IaaS вы арендуете его.
Примеры - Microsoft Azure, AWS, Google Compute Engine
Platform as a service (PaaS, платформа как сервис) - предоставляет среду для создания, тестирования и развертывания приложений. Цель PaaS - помочь быстро создать приложение без управления базовой инфраструктурой. Например, при развертывании веб-приложения не нужно будет устанавливать ОС и веб-сервер (грубо говоря, нужен только написанный код, а ОС, веб-сервер и необходимые фреймворки будут уже установлены).
PaaS можно считать полноценной средой разработки и развертывания в облаке с ресурсами (различными приложениями), которые приобретаются у провайдера дополнительно на платной основе.
Примеры - Databases (Oracle), Web Servers (Tomcat)
Software as a service (SaaS, приложение как сервис) - это ПО, доступ к которому пользователи получают через интернет, а управлением приложения занимается провайдер. Большинство приложений SaaS можно запускать прямо из веб-браузера, что устраняет необходимость установки на ПК.
Примеры - Office 365, Gmail, Messangers (Telegram, Hangouts) etc.
Также существует решение On-premises - оно означает использование собственных ресурсов для развертывания инфраструктуры внутри компании. Предприятие само несет ответственность за поддержку решения и всех связанных с ним процессов.
На данной диаграмме указаны зоны ответственности, в зависимости от выбранного решения.
Стоит отметить, что Microsoft объединил все сервисы, которые занимаются вычислениями (включая IaaS, PaaS, SaaS), в понятие Compute.
Compute (вычислительная служба) - это модель размещения вычислительных ресурсов, которые используются для выполнения приложения.
Возможные вопросы.
Какая инфраструктура относится к виртуальным машинам - IaaS
Веб-сервер, БД, контейнеры, Azure IoT Hub - PaaS
Office 365, Azure IoT Central - SaaS
Management utilities
Azure PowerShell - модуль, который используется для автоматизации развертывания (с помощью команд и скриптов) различных объектов, и управления этими объектами через Azure Resource Manager.
Azure PowerShell устанавливается на ПК поверх стандартного PowerShell, но доступен также в режиме онлайн - CloudShell.
Azure CLI - кроссплатформенная команда для управления Azure Resource Manager.
Пример команды - az [объект Azure] [операция над объектом]
, например - az vm delete
.
Пример команд Azure CLI и PowerShell:
Azure CLI Command | PowerShell Command (6.13.0) |
---|---|
az vm delete | Remove-AzureRmVM |
az recource list | Get-AzureRmResourceGroup |
CloudShell - утилита командной строки, доступная через веб-интерфейс или мобильное приложение. Имеет встроенные среды PowerShell, Azure CLI, Bash, редакторы кода (code, vim, nano) и прочие утилиты.
CloudShell создается по требованию, на временной VM - Ubuntu и удаляется при закрытии или после бездействия. Для хранения данных и команд при работе с CloudShell используется примонтированный сетевой диск Azure - clouddrive. Для инициализации clouddrive, при первом запуске CloudShell необходимо будет создать storage account, для постоянного хранения данных (5 Гб).
Azure Resource Manager - если кратко, это "интерфейс", который используется для доступа к объектам в Azure. Через него можно выполнять различные команды - создание и управление виртуальными машинами, хранилищами и т.д.
Azure Resource Manage (ARM) - это служба развертывания и управления для Azure. Она позволяет создавать, обновлять и удалять ресурсы Azure.
Любой запросы пользователя, направленный с помощью Azure API (включая Azure Portal), будет передан в Resource Manager.
Роль ARM при выполнении команд:
Возможности ARM:
- Управление инфраструктурой с помощью декларотивных шаблонов (ARM Template);
- Управление и контроль ресурсов, объединенных в группы, а не по отдельности;
- Определение зависимости между ресурсами, для развертывания в правильном порядке;
- Возможность установки контроля доступа к группе ресурсов;
- Возможность установки тегов к ресурсам, для их логической организации.
ARM Template - это шаблон, позволяющий декларативно описать все операции с ресурами и многократно использовать этот шаблон при развертывании инфраструктуры. Имеет древовидный синтаксис, который схож с форматом JSON.
Объекты разворачиваются в режиме идемпотентности. При повторном выполнении шаблона для инфраструктуры не будут удалены существующие ресурсы. В том случае, есть шаблон идентичен ранее выполненому - не произойдет ничего, если же, например, добавлено создание еще одной виртуальной машины, то после выполнения шаблона к n сущестующим виртуальным машинам прибавится еще одна.
Идемпотентная операция - это операция, которая при многократном вызове возвращает один и тот же результат. Операции, которые изменяют состояния ресурса - не являются идемпотентными.
Возможные вопросы.
Создание множества объектов Azure из шаблона - Azure Resource Manager
С помощью какого инструмента управления можно управлять VM Linux - т.к. это ресурс, значит он может управляться ЛЮБОЙ утилитой управления (PowerShell, CloudShell, CLI, Azure Portal и т.д.)
Свойства и возможности Azure PowerShell/CloudShell:
Запускается в браузере - ДА
Имеет встроенный редактор - ДА
Позволяет запускать Azure CLI - ДА
Позволяет запускать Azure PowerShell - ДА
Позволяет запускать Bash - ДА
Требует Storage Account - ДА
Может быть установлен на ПК - Azure PowerShell-ДА, CloudShell-НЕТ
Имеет мобильный клиент - ДА
Azure Portal
Azure Portal - это основной графический интерфейс пользователя (GUI) для управления Microsoft Azure.
Элементы портала:
- Resource Panel
- Service blade (All services)
- Dashboards
- Blades
- Search Panel
- CloudShell (доступ можно получить по адресу shell.azure.com)
- Notification
Azure Advisor - это "облачный консультант", который дает рекомендации по оптимизации объектов в Azure. Он анализирует конфигурацию ресурсов, а затем рекомендует наиболее оптимальные решения, которые могут помочь вам повысить экономическую эффективность, производительность, доступность и безопасность.
Можно настроить автоматическую нотификацию по email при определенных проблемах (резкое повышение нагрузки, заполнение свободного места и т.д.).
Для более наглядного представления, все рекомендации и предупреждения можно выгрузить в CSV или PDF формате.
Возможные вопросы.
Выберите утилиту, которая помогает вам оптимизировать/улучшить/обнаружить/защитить все, что касается производительности или безопасности - это Azure Advisor.
Resource Group
Resource - любой управляемый объект в Azure (VM, хранилище, веб-сервис и т.д.)
Resource Group - логический контейнер, хранящий связанные ресурсы. Например, ресурсная группа с виртуальной машиной обычно хранит в себе еще и хранилище, диск, настройки сети и т.д.
Свойства ресурсной группы:
- ресурсная группа является точкой развертывания для ARM шаблонов (ARM Template) и является границой идемпотентности;
- может хранить в себе максимум 800 ресурсов и 800 записей в истории;
- группа не может быть вложенной;
- группа может удаляться, перноситься или блокироваться в любое время;
- группа поддерживает настройки доступов и создание ролей;
- при удалении группы удаляется и все ее содержимое;
- разные ресурсы могут взаимодействовать с друг другом не зависимо от размещения в группах;
- группа может содерждать ресурсы из разных регионов;
- ресурсы в одной ресурсной группе могут быть в только в одном экземпляре, линковать их с других групп нельзя;
- группа может иметь теги (50 шт.) для логической группировки и поиска. Например, можно проанализировать биллинг ресурсов на основе определенных тегов.
Возможные вопросы.
В компании есть отделы А и Б и им нужно управлять своими ресурсами по отдельности - создать ресурсные группы по отделам.
В компании есть 3 прокта, которые должны получать отдельный биллинг - создать ресурсные группы по проектам (+ теги).
Geography
Region (регоин) - это набор датацентров Azure, развернутых на общей территории (Регионе) с заданной задерджкой (3-5мс) и подключенных друг с другом через выделенную региональную сеть. Малая задержка в сети между ЦОД является ключевым критерием региона.
- Регион может содержать один или несколько датацентров.
- Регион не привязан к государственным границам, часовым поясам и т.п.
Azure Paired Regions (региональная пара) - каждый регион связан с другим регионом (~300 km) в пределах той же географии, образуя региональную пару. Регионы в паре всегда обновляются ТОЛЬКО по очереди, таким образом, резервные копии удобно хранить в парном регионе.
Geography (география) - Azure делит мир на Географии, которые определяются геополитическими границами или границами страны. Обычно География содержит два и более региона.
Availability Zones (зоны доступности) - это отдельные местоположение в Регионе. Каждая зона доступности состоит из одного или нескольких ЦОД, оборудованных независимым источником питания, охлаждением и сетевым подключением. Такой датацентр не связан с другими ЦОД источником питания, сетью и т.п., т.е. имеет другого поставщика электрической энергии и сетевого провайдера.
Таким образом, зону доступности позволяют клиентам запускать критически важные приложения с высокой доступностью.
Availability Zone доступна далеко не во всех регионах.
Возможные вопросы.
Свойства Региона/Пар:
Один или несколько "близких" ЦОД
Имеют пару для резерва
Поочередное обновление в парах
Могут быть недоступны в открытом доступе (только по личному запросу)
Свойства Географии:
Представляют континент/страну с несколькими регионами
Группируются в соответствии со стандартами регионов и страны
Свойства Зон доступности:
Физически разные ЦОД в одном регионе (разделены по питанию и другим характеристикам)
Имеет различные режимы репликации для Azure Storage
Azure Virtual Machine*
Для создания виртуальной машины в Azure необходимо определиться с начальными параметрами:
- Место хранения ресурсов VM - География и Регион (Зоны доступности)
- Размер VM
- Максимальное количество виртуальной машин, которое может быть создано
- Операционная система (Windows Server или Linux)
- Конфигурация VM после запуска (различные утилиты настройки и управления, например антивирус)
- Понимания того, какие ресурсы должны быть связаны (могут потребоваться) с VM
- VM должна быть помещена в Ресурсную группу (это граница развертывания для ARM Template)
- Для хранения данных VM необходимо создать Учетную запись хранения
- VM должна быть участником Виртуальной сети (подключить к существующий или создать новую)
- VM необходим Сетевой интерфейс (он создается отдельно, как объект) для связи в сети
- (необязательно) VM может включать в себя диски данных для расширения возможностей хранения (D, F, G и т.д.)
Видео-пример по созданию VM в Azure - ссылка
При удалении VM - все ресурсы остаются (диски, ip-адреса и т.п.).
Sizes for virtual machines in Azure
Особенности размера VM в Azure:
- Размеры VM в Azure нельзя задать произвольно
- Размер VM, который вы выбираете (из доступных series), определяет такие факторы, как вычислительная мощность и объем памти
- Azure взимает почасовую плату в зависимости от размера VM и ОС. За неполные часы взимается плата только за использованные минуты
- Хранения данных (диски виртуальных машин) оцениваются и оплачиваются отдельно
- Если остановить VM через ОС (например через консоль) - оплата все равно будет взиматься. Если остановить VM через портал Azure - такой объект будет считаться Deallocated и оплата взиматься не будет.
Вот пример типов виртуальных машин, доступных в Azure: General Purpose (Универсальные), Compute optimized (Для вычислений), Memory optimized (Большое количество памяти), Storage optimized (Для хранения большого числа данных), GPU (Для рендеринга или видеомонтажа), High performance compute (Мощные ЦП).
Каждый такой тип включает серию из виртуальных машин с точной ценой за месяц.
VM limits
Лимиты при создании VM:
- максимальное количество VM по подписке на один Регион - 25 тыс.
- количество ядер по подписке (Free/Pay-as-You-Go) на регион - 20
- количество ядер по корпоративной подписке на регион - 350 (можно увеличить при обращении в поддержку)
- максимальное количество VM внутри одного Availability Set - 200
- максимальное количество VM в Scale Set - 1,000 (600 for user image, если это пользовательский/кастомный образ ОС)
- максимальное количество Scale Set в регионе - 2,000
Scale Set
Scale Set - это масштабируемый набор виртуальных машин в Azure. С его помощью (как и с ARM Template) можно создавать множества VM "по клику". Рассмотрим особенности Scale Set:
- Масштабируемые наборы виртуальных машин Azure позволяют создавать и управлять группой идентичных VM с балансировкой нагрузки.
- Количество экземпляров VM может автоматически увеличиваться или уменьшаться в зависимости от спроса или расписания.
- Максимальное количество VM в Scale Set - 1,000 (600 если это пользовательский/кастомный образ ОС)
- Масштабируемые наборы обеспечивают высокую доступность для приложений и позволяют централизовано управлять, настраивать и обновлять множества VM.
Создание Scale Set на портале Azure схоже с созданием обычной VM.
Видео-пример создания Scale Set - ссылка
Возможные вопросы.
Что произойдет с ресурсами при удалении VM? - ресурсы не удаляются
Разница при создании VM и Scale Set - у Scale Set обычно все создание автоматически, а у VM вручную (manual)
Azure Storages
Azure Managed Disks
Azure Managed Disks (управляемый диск Azure) - это виртуальный жесткий диск (VHD), который может монтироваться к VM, его можно представить как виртуализированный физический диск на локальном сервере. Такие диски представляют собой BLOB-объекты. Azure сам занимается управлением таких дисков (отсюда и его названия). Для доступа предоставляет REST-интерфейс.
Свойства Azure Managed Disks:
- Высокая устойчивость и доступность - управляемые диски хранятся минимум в трех копиях (имеют три реплики) на серверах Azure и имеет SLI 99,999%;
- Масштабирование - лимит дисков составляет 50 000 на регион;
- Интеграция с Availability Sets & Zones - управляемые диски интегрированы с Availability Set и Zones, что бы гарантировать достаточное изолирование дисков друг от друга, а также обеспечить высокую доступность.
- Поддержка резервного копирования - для защиты от региональных сбоев можно использовать Azure Backup, настроить политики и расписание. Данная служба поддерживает диски размером до 4 ТиБ;
- Поддержка моментальных снимков - это полная копия виртуального диска, доступная только для чтения (readonly).
- Шифрование дисков - существует возможность шифровать диски и ОС (BitLocker, DM-Crypt). При этом Azure Key Vault позволит управлять всеми ключами шифрования;
- Поддежка кэширования.
Azure Files
Azure Files - предлагает общие файловые ресурсы в облаке, которые доступны по протоколу SMB (Server Message Block). Таким образом можно "расширивать" данные для доступа к каким-либо данным. Для доступа предоставляет REST-интерфейс.
Общие папки Azure можно кэшировать на серверах Azure с помощью службы синхронизации файлов Azure Files Sync для быстрого доступа к данным.
Свойства Azure Files:
- Совместный доступ - возможность расшаривать файлы;
- Полная управляемость (на стороне Azure) - файловые ресурсы могут создаваться без необходимости управлять АО или ОС, а также следить за различными обновлениями и безопасностью;
- Защита от сбоев - Azure Files поддерживает 4 уровня хранилища: LRS, ZRS, GRS, GZRS;
- Средства управления - PowerShell, Azure CLI, Azure Portal;
- Устойчивость - служба файлов Azure изначально создана для обеспечения постояной доступности;
- Существует REST API для многих языков программирования, с помощью которого можно получить доступ к файловой службе.
Azure Blob Storage
Azure Blob Storage - это хранилище неструктурированных (любых) бинарных объектов. Для доступа предоставляет REST-интерфейс.
Неструктурированные данные - это данные, которые не соответствуют конкретной модели или определению данных, например текстовые или двоичные данные.
Свойства Azure Blob Storage:
- Хранилище BLOB-объектов предназначено для следующих задач: хранение больших файлов, работа с изображениями или файлами прямо в браузере, хранение файлов для распеделенного доступа, потоковая передача видео и аудио, хранение резеврных копий;
- Хранилище BLOB-объектов также можно расшарить;
- К BLOB-объектам можно обращаться через REST API, PowerShell, Azure CLI;
- Служба Blob Storage предлагает различные уровни доступа к данным: горячий (при частом обращении к данным), холодный (при редком использовании более 30 дней, данные перемещаются на более медленный накопитель), архив (при редком использовании более 180 дней).
Azure Tables
Azure Tables - в хранилище таблиц Azure хранятся большие объемы неструктурированных табличных данных. Данная служба представляет собой хранилище нереляционных данных - noSQL.
Структура хранилища Azure Tables:
- Таблица - это коллекция сущностей;
- Сущность (entity) - это набор свойств подобно строке в базе данных. Максимальный размер - 1МБ, минимальный в Azure Cosmos DB - 2МБ;
- Свойства - представляют собой пару "ключ-значение". Каждая сущность может содержать до 252 свойств (до 252 строк). Каждая сущность может содержать три системных свойства - ключ раздела, ключи строки и отметка времени.
Azure Queues
Azure Queues - очереди, обеспечивает обмен сообщениями между компонентами приложения. Очереди являются асинхронными.
Служба хранения очередей необходима для хранения большого количества сообщений. Доступ к таким сообщениям возможно получить из любой точки мира по HTTP/S. Максимальный размер сообщения - 64КБ. Количество сообщений в очереди ограничено только емкостью хранилища учетной записи.
Структура хранилища Azure Queues:
- Очередь - содержит набор сообщений. Имя очереди должно содержать только строчные символы;
- Сообщение - сообщение в любом формате до 64КБ. Срок жизни сообщения может быть любым, даже бесконечным (при значении -1), срок жизни по умолчанию - 7 дней.
Disk types
Диск ОС - у каждой VM есть один подключенный диск с операционной системой, его размер задается в зависимости от размера выбранной ОС. Именно этот диск содержит загрузочный том. Максимальный размер диска ОС составляет 2Тб.
Диск данных - управляемых диск, подключенный к VM для хранения данных приложений и прочего. Максимальный размер - 64Гб(Ultra), 32Гб(Basic). Максимальное количество возможных подключенных дисков к VM определяется размером виртуальной машины (типом).
Временный диск - присутствует в каждой VM, не является управляемым. Нужен для локального кэширования и файлов подкачки.
В ОС Linux том такого диска будет помечен как /dev/sdb, а в Windows как диск D
Возможные вопросы.
Вы хотите сохранить данные, к которым не требуется доступ извне виртуальной машины - Managed Disks.
Файловое хранилище, которые не привязано ни к какой виртуальной машине или ОС, обеспечивающее доступ отовсюду - Azure Files.
Вам нужно создать хранилище, с доступом по HTTPS для мультимедийных файлов - Azure Blob Storage.
Необходимо создать корпоротивное хранилище Data Lake - Azure Blob Storage.
Обеспечить хранение noSQL данных - Azure Tables.
Обеспечить обмен данными между приложениями - Azure Queues.
Обеспечить более высокий SLA - Azure Queues.
На какой диск VM нельзя записывать пользовательские данные - на временный диск (/dev/sdb или D).
Как ускорить работу диска VM - поменять размер диска, увеличение размера повысит производительность.
Azure Network services
Azure Virtual Network (виртуальная сеть (VNet) Azure) - это изолированная частная виртуальная сеть. Виртуальная сеть позволяет ресурсам Azure обмениваться данными друг с другом. Виртуальная сеть похожа на локальную корпоротивную сеть на предприятии, но предлагающая дополнительные возможности, такие как масштабирование, доступность и изоляция.
Свойства Azure Virtual Network:
- Адресное пространство - Azure назначает ресурсам в виртуальной сети частный IP-адрес из определенного вами ранее адренстного пространства;
- Подсети - позволяют разделить виртуальную сеть на подсети и выделить для каждой из них часть адресного пространства виртуальной сети;
- Регионы - виртуальная сеть ограничена одним регионом (в котором создавалась), но взаимодействие между виртуальными сетями из разных регионов можно обеспечить с помощью пиринговой связи. Пиринг создается как и остальные Network-сервисы, и позволяет связывать виртуальные сети;
- Группы безопасности - возможность настройки групп безопасност (подробнее о них ниже).
Azure VPN Gateway (VPN Шлюз) - это особый тип шлюза виртуальной сети, используемый для отправки зашифрованного трафика между виртуальной сетью Azure или локальной сетью через Интернет. Каждая виртуальная сеть может иметь только один VPN-шлюз. Однако к одному VPN можно создать несколько подключений, при этом все подключения будут использовать пропускную способность доступную для этого VPN-шлюза.
Azure Application Gateway (Шлюз приложений) - это подсистема балансировки нагрузки веб-трафика, предназначенная для управления трафиком веб-приложения. С помощью шлюза приложений можно принимать решения о маршрутизации на основе атрибутов HTTP-запроса.
Таким образом различные запросы из Интернета можно направлять к виртаульной машине или же например через набор виртуальных машин и VPN Gateway к On-premise (локальной сети организации).
Azure Load Balancer (Балансировщик нагрузки) - позволяет масштабировать приложение и обеспечивать высокий уровень доступности служб. Он может перераспределять HTTP-запросы на разные сервера, в зависимости от их нагрузки.
Azure Content Delivery Network (CDN, Сеть доставки содержимого) - является распределенной сетью серверов (сеть точек доступа по всеми миру), которая позволяет эффективно доставлять пользователям веб-соедржимое. Каждый ЦОД Azure подключен к CDN. Сети CDN хранят кэшированное содержимое на пограничных серверах в точках подключения рядом с пользователем. И в тех случаях, когда пользователь хочет получить данные, находящиеся на серверах другой страны или континета - CND позволит свести задержи к минимуму.
Azure Firewall (Брандмауэр Azure) - это управялемая облачная служба сетевой безопасности, которая защищает ресурсы виртуальной сети Azure. Автоматически машстабируется при нагрузках и имеет возможность полного отслеживания состояния. Позволяет создавать и применять различные политики для приложений в виртуальных сетях.
Azure Network Security Groups (Группы безопасности сети) - позволяет фильтровать сетевой трафик для ресурсов Azure. Группы безопасности содержат в себе правила безопасности, разрешающие или запрещающие выходящий/исходящий трафик.
Таким образом, например, можно контролировать подключения виртуальной машины.
Azure DDOS Protection (Служба защиты от DDoS атак) - это служба, которая обеспечивает защиту от DDoS атак. Данная служба предоставляет следующие уровни: Базовый - автоматически включена на платформе Azure (бесплатно). Обеспечивает постоянный мониторинг трафика и защиту от основных сетевых атак в режиме реального времени; Стандартный - предоставляет дополнительные возможности по устранению рисков, таких как Volumetric, Protocol, Resource (application) layer attacks (SQL-injection).
Glossary
Провайдер - поставщик каких-либо услуг.
ЦОД - Центр обработки данных.
Сервис - любая услуга, предоставляемая Azure, это может быть виртуальная машина, веб-сервер, база данных и т.д.
АО - аппаратное обеспечение.
Виртуальная машина или VM - это машина, запускаемая в виртуальной среде на хост-машине. Она изолирована, имеет свою ОС, свою часть физической памяти и дискового пространства, и т.п.
Хост-машина - это сервер или ПК, на котором запущена базовая ОС (Host operation system), и которая включает в себя опции виртуализации.
О виртуализации можно почитать здесь.
BLOB (Binary Large Object, двоичный большой объект) - массив двоичных данных. В СУБД тип BLOB может использоваться для хранения изображений.
Sources
On Premise vs. Cloud: Key Differences, Benefits and Risks
Выбор службы вычислений (Compute) Azure для приложения
Размеры виртуальных машин в Azure
Серия виртуальных машин
YouTube. Что такое облачные технологии и подготовка к экзамену Microsoft AZ-900 Azure Fundamentals