Сегодня компания Microsoft объявила о запуске Radius — новой open source language-agnostic платформы для создания и запуска облачных приложений. Проект создается в рамках группы Microsoft Azure Incubation, которая ранее запустила такие проекты с открытым кодом, как Dapr для развертывания микросервисов, решения для автомасштабирования на основе событий KEDA и Copacetic, инструмента безопасности для исправления уязвимостей в образах контейнеров. Проекты Dapr и KEDA уже входят в стабильную группу проектов Cloud Native Computing Foundation (CNCF), а недавно Microsoft внесла туда и Copacetic. В ближайшие полгода компания планирует представить в CNCF и проект Radius.
С помощью Radius разработчики смогут развертывать приложения в частных облаках Azure от Microsoft и AWS от Amazon, а в скором времени появится поддержка Google Cloud. Общая идея заключается в том, что, хотя Kubernetes упростил создание приложений, которые, по крайней мере теоретически, могут работать в любом месте, эти приложения становятся все более сложными, что усложняет управление ими. В идеале платформа приложений абстрагируется от всего этого и позволяет разработчикам сосредоточиться на написании приложений.
В прошлом мы уже видели другие платформы приложений, которые пытались абстрагировать разработчиков от всей инфраструктуры, включая проект Cloud Foundry и построенные на его основе коммерческие сервисы, такие как Tanzu Application Service от VMware. Но, как рассказал технический директор Azure Марк Руссинович, Radius использует совершенно иной подход к решению этой проблемы.
«Мы хотим, чтобы Radius поддерживал все типы приложений, а не только вертикально масштабировал архитектуры приложений или поддерживал только определенные модели — например, 12-факторные — или требовал, чтобы сами приложения были написаны определенным образом. Radius сам по себе не зависит от способа написания приложения и достаточно гибок, чтобы поддерживать двух- и трехуровневые приложения, которых на предприятиях по-прежнему создается огромное количество. Сейчас они контейнеризированы, но все еще имеют такую архитектуру. Кроме того, он способен поддерживать сложные микросервисные приложения с десятком или двумя десятками микросервисов».
Он также отметил, что конкурирующие платформы уделяют большое внимание описанию взаимосвязи между вычислительными уровнями приложения или микросервисов, но часто оставляют другие облачные ресурсы, из которых состоят современные приложения, в стороне. «Цель Radius заключалась в том, чтобы я, как разработчик, мог полностью описать свое приложение — не только вычислительные части, но и ресурсы, которые они используют, например, вот PubSub между этим фронт-эндом и этим бэк-эндом. А здесь хранится состояние этого микросервиса — и любой ресурс из всех облачных ресурсов может быть описан таким образом. В итоге вы получаете полный граф приложения. И у разработчика появляется стимул использовать Radius для описания этих связей, поскольку он делает много работы за вас под капотом».
Microsoft отмечает, что Radius был разработан с учетом потребностей разработчиков. Например, он не пытается полностью переосмыслить концепцию “инфраструктуры как кода”, а использует существующие инструменты, такие как Terraform (или, возможно, OpenTofu, пока он остается совместимым) и Bicep. Он также интегрируется с сервисами CI/CD, такими как GitHub Actions.
В основе Radius также лежит универсальная плоскость управления, которая, как выяснилось, базируется на механизме развертывания Azure Resource Manager — том же самом оркестраторе развертывания, который компания использует в Azure для управления развертыванием приложений. По словам Руссиновича, в течение ближайших шести месяцев компания выпустит открытый исходный код этого менеджера ресурсов. Он также отметил, что Bicep, специфический для домена язык инфраструктуры как кода, который используется поверх механизма развертывания, уже является открытым.
Кроме того, Microsoft уже сотрудничает с Comcast и португальским банком Millennium BCP, чтобы обеспечить работу Radius в любом «облаке».
Во многом компания Microsoft использует для Radius ту же схему, что и для распределенной среды выполнения приложений Dapr. Она запускает сервис как проект с открытым исходным кодом и передает его под управление CNCF. Dapr также вызвал коммерческую активность вокруг проекта, в том числе со стороны таких компаний, как Diagrid. Вероятно, мы увидим аналогичную траекторию для Radius — если он получит достаточное распространение — и, возможно, сама Azure в один прекрасный день предложит платформу приложений на базе Radius.