Термин “Инфраструктура как код” известен уже многие годы, однако сотни инструментов скрывают свой секрет… в них нет настоящего “кода”! Мало кому нравится “программировать” YAML или JSON, и даже меньшему числу людей по душе пытаться втиснуть практики из мира программной разработки в инструменты, сопротивляющиеся этому любой ценой. А что, если программирование инфраструктуры было бы больше похоже на любое другое программирование с использованием настоящих языков, таких как TypeScript? Что, если бы AWS Lambda функции определялись как обычные функции, другие абстракции определялись бы с помощью системы типов, а в набор инструментов входили бы привычные нам модули, рефакторинг, линтеры, и тесты?
В этом докладе я познакомлю вас с Pulumi, движком с открытым кодом, который позволяет делать всё это с помощью TypeScript. Мы рассмотрим примеры кода для создания традиционной облачной инфраструктуры, кластеров Kubernetes, “serverless” приложений. А также посмотрим, как расширить своё приложение на несколько регионов или даже на “облака” нескольких провайдеров.