Прошло 3 недели с Online конференции Ignite 2020: время проанализировать и попробовать анонсированные технологии.

Microsoft разделила анонсы на 6 категорий, но я сфокусируюсь на обновлениях по Azure, т.к. это область моих интересов, и некоторых других обновлениях, которые попались мне на глаза и показались достойными внимания.

Этот обзор сделан не только по официальному анонсу, но и на основе презентаций и видео, опубликованных на сайте конференции и обогащен документацией от Microsoft.

Microsoft RUS в своем блоге уже опубликовала Top 8 обновлений, но я предлагаю вам свою подборку самых интересных изменений и их анализ. Не секрет, что Microsoft — огромная компания с сотнями продуктов и тысячами команд разработки. Каждый делает что-то важное в своем направлении, ниже — мой топ. Самые интересные анонсы:

  1. AKS (Managed Kubernetes)-обновление: доступность AKS на Azure Stack HCI&Hub и возможность полностью остановить AKS (до нуля рабочих узлов)
  2. Resource Mover может переносить ресурсы из одного региона в другой (т.е. из Европы в US, например. Перенос из подписки в подписку или из ресурсной группы в ресурсную группу был давно, но регион сменить было нельзя)
  3. Azure Communication Services (public preview) — это сервис, с помощью которого можно купить себе номер телефона, чтобы отправлять/получать SMS и звонки.
  4. Azure Private Marketplace дает возможность выбрать только те сервисы и ресурсы, которые можно будет деплоить и никакие другие на уровне всего Tenant
  5. Azure Security Center дробится на решения для конкретных направлений. Таким образом, из него был выделен Azure Defender

Давайте кратко пройдемся по остальным обновлениям с моими комментариями, разумеется:

Azure Data


В Azure Storage Blob добавили (в preview) возможность управлять (lifecycle management) тиром (hot/cool/archive) в зависимости от того, как часто к данным идет доступ. Это супер-правильная фича, и я не понимаю, почему ее не имплементировали раньше, т.к. сценарий (по личным ощущениям) встречается куда чаще.

И раньше можно было создать lifecycle policy, но
в них можно было только даты указать, т.е. файл после 30 дней в cool перевести и еще через 60 — в archive. Лично мне еще непонятно, почему доступно только в Канаде и Франции, т.к. это явно не самые популярные локации, но, видать, команда разработки там сидит где-то франко-говорящая.

Для AzureRedis Cache появились 2 pricing tiers, в которые добавили RedisSearch (поисковый движок), RedisBloom и RedisTimeSeries (хранение временных рядов в Redis). Почитав про сравнение RedisSeach против Elastic Search, я понял, что основной сценарий в том, что если Redis уже есть, то можно обойтись им для некоторых сценариев поиска и не добавлять Elastic Search/Azure Search.

Выпустить в GA обещали в начале 2021 года

Flexible Server для PostgreSQL/MySQL: добавлено больше параметров, которые мы можем настраивать, имея тем самым больше контроля за сервером и его производительностью. Полезная штука, т.к. с помощью оптимизации можно много сделать.

Availability Zones для PostgreSQL/MySQL тоже звучит полезно. Раньше было так: наши compute ресурсы мы могли разложить внутри одного региона по разным зонам и пережить падение целой зоны, но с данными так было нельзя, потому что только в SQL Azure (MSSQL) была поддержка AvZones, да и то только в premium tier. Теперь можно не только вычислительные ресурсы разнести, но и данные.

По SQL Azure тоже есть обещание, что что-то будет, но пока даже не буду смотреть.

В Azure Data Bricks (Managed Apache Spark) в режиме preview то ли заменили существующий engine на Delta Engine, то ли дали возможность запускать параллельно.

Но на некоторой тестовой задаче, показывает кратное ускорение


Не готов комментировать, но чувствую — традиционно выбрана узкоспециализированная задача.

Azure DataCenter


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

Resource Moverэто тот сервис, который я жду уже лет 5, может переносить ресурсы из одного региона в другой (т.е. из Европы в US, например. Перенос из подписки в подписку или из ресурсной группы в ресурсную группу были давно, но регион сменить было нельзя). Сейчас сервис поддерживает только перенос виртуальных машин из региона в регион, но первый шаг уже сделан.
Эх, сколько же раз я слышал от клиентов, пока работал полевым инженером в Microsoft, что такая мелочь, как перенос ресурсов из региона в регион, вообще должна быть базовой в любом Cloud Provider! Предлагают и продают Cloud как бесконечно масштабируемый и гибкий, но о какой гибкости разговор, когда по недосмотру виртуальная машина создана не в том datacenter, и, чтобы ее перенести после настройки в новый, нужен целый танец по удалению машины, копированию blob файла диска, а также создание диска и новой машины из диска.

Availability Zones появляются во все большем количестве datacenters. Полезная вещь, но новости в этом нет. Просто рутинная работа идет у MS.

Azure Dev


Azure Communication Services (public preview) — это сервис, который позволяет вам купить себе номер телефона, через который можно осуществлять отправку/получение SMS и звонков. Очень полезный сервис, т.к. позволяет, не выходя за пределы платформы Azure, взаимодействовать с “традиционным” миром. Раньше нужно было заплатить еще кому-нибудь, чтобы SMS отправить, что усложняло процесс. Детальнее можно тут глянуть. Опыт подсказывает, что работать будет с US/UK/Западной Европой, а у нас в Восточной Европе — как всегда.

Стало возможно для Azure App Service (web apps) купить себе reserved instance, чтобы суммарно сэкономить вдолгую (35-55% как говорит сам Microsoft при покупке на 1-3 года соответственно). Полезная штука, но технологически не новая, Reserved Instance для VM даже у Microsoft появился еще в 2018 году.

Windows Containers in App Service, наконец-то, в GA. Хорошая новость, но только для тех, кто мигрирует старый софт на .net framework. Если писать с нуля, то проще сразу на .net core/linux.

Вышел App Service Premium V3 (в нем появился Hyper-V isolation). Не готов комментировать важность Hyper-V isolation, но 20% скидка относительно V2, как и любая “скидка” — хорошо.

Azure App Service Migration Assistant теперь может обнаружить приложение на Tomcat Java при assessment вашей инфраструктуры. Это может стать первым шагом к миграции в Azure App Service. Ставим пометку, что Microsoft продолжает затягивать к себе Java приложения, а не только традиционный .net.

Про .Net 5 говорить не хочу, т.к. он в RC статусе (дата выхода в ноябре). Будет в GA, будет и разговор.

AKS теперь можно полностью включать/выключать (stop/start). Очень полезная вещь для экономии денег на не-production средах. Из 168 часов в неделю кластеры реально используют 60-80 часов, а ночью и на выходных кластер простаивает, проедая деньги. Таким образом можно половину цены сэкономить. Я видел, как DevOps пишут скрипты, уменьшающие количество узлов в кластер до 1 (до нуля раньше было нельзя), устанавливают число POD в ноль вечером в субботу и в понедельник утром пытаются восстановить кластер. Не всегда приложение безболезненно это выдерживает, но такова цена экономии. Главное теперь — посмотреть, как эта фича будет реализована (у большинства сервисов scale up/out работают хорошо, а вот в обратную сторону обычно проблемы).

Microsoft анонсировала доступность AKS еще и на Azure Stack HCI (preview). Ранее Microsoft уже анонсировала доступность AKS на Azure Stack Hub (не путать с AKS Engine. AKS Engine — это если вы сами накатываете K8s на виртуальные машины с помощью этого движка AKS.

В анонсе говорится именно про manager AKS PaaS).

Чтобы было проще понять, приложу картинку с разницей между Stack Hub и Stack HCI


Azure Stack Hub — это программно-аппаратный комплекс, похожий на Azure, а Azure Stack HCI — программный, где железо сертифицировано Microsoft. Вы спросите: “Что же тогда значит поддержка Kubernetes на Azure Stack HCI?” Я тоже долго не мог понять, но просмотр видео помог.

Но ответ прост - это возможность создать Kubernetes Cluster из Windows Server Admin Center на вашем Azure Stack HCI оборудовании.


Azure Spring Cloud для .Net лично у меня вызывает большие вопросы. Я не смог “продать” Azure Spring Cloud в своем текущем проекте нашей Java команде (вместо AKS), а уж зачем это для .net — совсем не понятно.

Особенно если учесть, что Azure Spring Cloud на AKS и построен

Azure Private Marketplace — лично я считаю одним из самых важных анонсов. Если коротко, то private marketplace дает возможность выбрать те сервисы и ресурсы, которые можно будет деплоить и никакие другие на уровне всего Tenant. Раньше, чтобы такое сделать, приходилось писать azure policy (json file со списком разрешенных образов) и применять ее на все подписки. Было жутко неудобно. Этот сервис в 2018 году очень хотелось получить, когда я был выделенным инженером по Azure для нескольких больших компаний в России.

Azure Hybrid


Azure ARC выходит частями в GA — это хорошо, но больших изменений относительно изначального анонса год назад я не заметил.

Azure BackUp Center preview — это сервис, который должен через единый view дать возможность работать со всеми backup, вне зависимости от региона и используемого azure recovery service. Логичный шаг, однако не понятно, зачем это называть отдельным сервисом. На мой взгляд, это надо было сделать как Azure Monitor, именно как “точку зрения” на существующие сервисы, а не как отдельный сервис.

Текущий UX

Анонсировано, что в нескольких регионах доступен Azure VMware Solutions (VCenter на железе от Microsoft в Microsoft Azure Datacenter). Но список регионов какой-то грустный.

Azure Automanage Preview анонсирован (не путать с Azure Automation. Название, с точки зрения маркетинга, крайне спорное).



По названию Microsoft замахивается на auto-pilot mode всех сервисов azure, но, судя по текущему состоянию, этот сервис умеет включить/выключить backup на виртуальных машинах в зависимости от типа (dev/test или prod), умеет накатить Microsoft Antivirus и только. Будем смотреть за развитием.

Azure IoT


Куда идет Microsoft с точки зрения IoT, лучше всего иллюстрирует следующий слайд:



Расшифрую со своей точки зрения так: от каких-то отдельных устройств и небольших групп датчиков, подключенных к Azure, Microsoft двигается в сторону подключенных больших объектов, таких, как здания, корабли, заводы и т.п. А в будущем эти объекты будут объединяться в целые экосистемы.

Глядя на это, за отдельными фичами можно увидеть всю картинку целиком. Microsoft хотел бы контролировать всю эту экосистему сверху донизу.

Основные изменения по IoT можно найти в докладе, к которому я добавлю свои комментарии.

Azure RTOS (real time микро-операционная система для микроконтроллеров) анонсировали совместимость по kernel api с FreeRTOS. Если я правильно понимаю, то AWS предоставляет FreeRTOS, а Microsoft решил сделать свое, но для возможности переноса с AWS на Azure сделали слой совместимости. Не готов проводить глубокий анализ, но на уровне здравого смысла, если Azure RTOS версия будет включать большее число API, значит, будет занимать больше места на диске и в памяти, что немного противоречит идее микроконтроллеров. Хотя, с точки зрения совместимости, все выглядит интересно: из AWS (FreeRTOS) в Azure RTOS можно мигрировать, но если вы писали под Azure RTOS, то все сложнее, т.к. в FreeRTOS используемых вами API может не быть.

Глобальных обновлений Azure Sphere я не распознал, но в любом случае свое место в вертикали она занимает.

Для сценария, в котором Azure IoTEdge подключен к Azure (не Azure Stack Hub), показали поддержку базового мониторинга Azure IoTEdge прямо из Azure Monitor.

Выглядит так:


Обещали в октябре для Azure Stack Hub (программно-аппаратный комплекс, который похож на azure по portal/api, но можно поставить в ваш datacenter) предоставить Azure IoT Hub (сервис для двухсторонней коммуникации с устройствами, получения от них телеметрии, обновления firmware на устройствах и вызова команд на самих устройствах снаружи, а заодно управления azure IoT edge modules).



Я не смог понять, все ли фичи подвезут сразу или как всегда — громкий анонс, а потом пару лет небольшими обновлениями догонять.

Анонсировали Azure IoT Hub & Azure IoT Hub Device Provisioning Service (DPS) Private Link Support.

Мне несколько раз пришлось перечитывать, чтобы понять сценарий, т.к. в теории private link блокирует у сервиса все публичные адреса, смысл такого был поначалу непонятен.


Но ответ нашёлся: считается, что между вашей площадкой и azure есть выделенный канал azure express route, и ваши девайсы передают свою телеметрию исключительно через express route.

В июле 2020 года Microsoft купила компанию CyberX с ее решениями по IoT безопасности. На Ignite анонсировали, что эти решения будут интегрированы в Azure Security Center for IoT.

Не являюсь большим экспертом по безопасности в IoT, поэтому дальше комментировать не буду


Azure IoT Plug and Play Platform and SDK вышли в GA. Изначальный анонс этих технологий был сделан на Build 2019, поэтому я был уверен, что уже давно все в GA, ведь 1.5 года уже прошло.

Azure Digital Twins вышли в GA (не путать с Azure IoT Device Twins).

По Azure IoT Center вроде много анонсов, но поскольку это SaaS решение, то к деталям я не стал присматриваться.

А вот то, что был анонсирован новый sku (декабрь 2020) года, чтобы цена за каждый девайс была ниже – это хорошо.


Когда я первый раз изучал Azure IoT Center меня остановили невозможность писать расширения и цена.

Теперь новый SKU стоит 8 центов за устройство в месяц – это хорошо.

Azure Security


В этой части я расскажу только об изменениях, связанных с Azure.

Microsoft постепенно дробит свой Azure Security Center на части, оставляя интеграцию с ним.



Ранее уже был создан Sentinel, а такде отдельная фича для IoT решений. А теперь настал черед отдельного сервиса – Azure Defender. Я не имею никаких инсайдов из Microsoft, но на уровне диванной аналитики могу предположить, что:

Делать «сервис-всёмогутор» очень тяжело, и не все его фичи нужны всем клиентам. Если фич много, то и цена будет высокой, что значительно снижает его привлекательность. Лучше уж раздробить на кучу отдельных сервисов и ввести оплату за каждый.

Но это лишь мое диванное мнение. К слову, о ценах:

Скриншот


Azure AI


В Cognitive Service Vision Service добавили опцию Spatial Analysis. Детали. Очень нишевая вещь, которая позволяет в режиме “реального” времени показывать дистанции между людьми на видео, длины очередей и т.п. Занятный сервис в условиях COVID, но насколько это полезно мне судить тяжело.



Ответ в Json формате


Azure Cognitive Services Metrics Advisor

выглядит как инструмент анализа временных рядов (time series), поиска в них отклонений, генераций всевозможных alerts и попыток поиска первопричины.


Интересно, но комментировать не готов, т.к. в предметной области совсем не специалист.

Для Azure Cognitive Search (когда-то он был просто Azure Search, но потом к нему прикрутили OCR, и он стал Cognitive) добавили Private Endpoint для виртуальных сетей (т.е. можно отключить public endpoint и делать запросы только изнутри вашей виртуальной сети. Также добавили Managed Identity между Search и источниками данных для индекса (чтобы можно было из Search достучаться до данных, используя специальную сервисную учетную запись, для которой не нужно даже хранить clientId/clientSecret, а тем более ротировать секреты).

В Azure Bot Service появился дополнительный канал – Amazon Alexa (MS в своем стиле: сначала все свое поддерживает, и только если вынудят, сделаем интеграцию с прямым конкурентом).

В Compute/Networking/Storage, с одной стороны изменений немало, а с другой – особо интересными их, на мой взгляд, не назовешь. Появляюстя новые типы процессоров, плюс, какие-то фичи появляются в дополнительных регионах, да поддержка более высоких версий протоколов. Однако, чего-то, вызывающего эмоции и восторог, я не увидел.

Compute


Подробности можно найти в видео

  • Новый тип виртуальных машин на базе процессоров AMD (до 96 ядер и 672GB RAM)
  • Новый тип виртуальных машин на базе процессоров Intel (до 96 ядер и 504GB RAM)
  • Новый тип виртуальных машин на базе Nvidia

Если честно, то разобраться во всех версиях и типов виртуальных машин становится все сложнее. Понятное дело, из v1,v2,v3,v4 надо брать v4, но это здравый смысл, а не научный подход.

Networking


Подробности можно найти в видео.

Выпустили Load Balancer,
который может балансировать запросы не только между узлами одной сети, но и на разные датацентры.


Раньше, такое умел Azure Traffic Manager. Теперь, необходимость в Traffic Manager и то, какой сервис выбрать в каком случаи делает процесс тяжелее.

Azure Frond Door и Application Gateway обновили


Лично для меня наиболее интересной оказалась связка Application Gateway + AKS Ingress controller.

Storage


Подробности можно найти в видео

Появилась поддержка NFS 3.0 для Azure Storage Blobs и 4.1 для File Shares



Пообещали сделать Storage еще быстрее, что хорошая новость т.к. обещания маркетологов по безлимитным ресурсам (были бы деньги), становятся немного ближе.

Субьективные выводы


Если подводить итоги – мне Ignite 2020 понравился намного больше, чем Build 2020. Куда больше обновлений. Azure становится все более сложным, анонсируется все больше нишевых сценариев и сервисов-фич, появляется поддержка свежих форматов и стандартов всего и вся. Закрываются проблемы, с которыми ты еще не успел даже столкнуться из-за размеров Azure.

Хотя, мозгу по-прежнему тяжело проникнуться серьезностью момента, когда о глобальных вещах человек рассказывает, сидя перед компьютером напротив стены с обоями.

P.S. Если интересно послушать про SA в EPAM и не только – можно глянуть мое интервью АйТиБороде.