Andrei Aleksandrov

March 8, 2021

Pulumi завершила первый эволюционный скачок к native-провайдерам

Для Pulumi, как компании, пойти по пути обвязок поверх terraform-провайдеров, вместо написания собственных, было просто шикарной идеей. Это позволило им сосредоточиться на разработке уникальных фич, таких, как поддержка языков, фреймворки тестирования, интеграция с IDE и далее по списку. Все перечислять не буду, уже есть в докладе на DevOps Moscow.

Однако, несмотря на то что такой шаг позволил быстро занять свою нишу на рынке, он же и является ограничителем дальнейшего развития. Нельзя выйти на принципиальную лучшесть, если большая часть кода твоего продукта, это код твоего конкурента. В Pulumi это прекрасно понимают и поэтому интеграция с kubernetes изначально была нативной, а после выросла в kubernetesx. Этой весной в GA переходит первый нативный провайдер для облака, сильно отличающийся от всего что есть у конкурентов!

Речь идет про pulumi-azure-native. Принципиальное отличие в том что это первый провайдер, который покрывает 100% API облака. Если у облака появляется новая фича, она появляется в провайдере в течение нескольких часов, совершенно не требуя участия разработчиков! Достигается это за счет генерации всего провайдера по спекам облака. Просто CI-ка срабатывает на появление новых изменений в спеке API и генерирует новый релиз, все просто ¯\_(ツ)_/¯

Анонс первой публичной версии azure-native был еще осенью и уже на тот момент его уровень покрытия был почти в два раза выше, чем у azure провайдера, работающего поверх terraform'а.

resources-properties.png


Переход на native-провайдер позволило добавить и новых фич, которые до этого невозможно было реализовать.

Top-level resources. Это когда ты используешь ресурс, явно не указывая версию API. В этом случае Pulumi за тебя выберет наиболее стабильную версию.

Auto-naming. Имя сущности в облаке выставляется автоматически, выглядит как <имя ресурса>-<случайный суффикс>. Если сущности не нужно иметь глобальное имя в рамках облака, то суффикс не добавляется. Я этой фичей активно пользуюсь в Kubernetes.

Очень рад, что в Pulumi совершили очередной эволюционный скачок, надеюсь, дальше больше :)

P.S. На днях я сделал pulumi provider Yandex.Cloud. Он пока не доступен в виде публичных пакетов и там нет полноценного README, но если вам уже не терпится начать им пользоваться, можете написать мне в telegram @aladmit или на почту aleksandrov@hey.com, помогу с запуском.

Почитать подробнее: