Pulumi is an open-source tool used to configure and manage cloud infrastructure and resources.

Overview

Pulumi is an Infrastructure as Code (IaC) automation tool built based on Terraform. The major difference between Pulumi and Terraform is that Pulumi allows you to use familiar programming languages to author declarative configurations, eliminating the need to learn vendor-specific template languages. Pulumi is an extensible tool that supports new infrastructure through providers. Pulumi provides a client that allows you to easily define, preview, and deploy cloud infrastructure. You can use Pulumi to create, modify, and delete cloud resources, such as ECS, VPC, ApsaraDB for RDS, and SLB. Pulumi also provides a visual console, through which you can easily view the deployment history, activities, associated resources, and settings of each stack.

Alibaba Cloud is the first cloud vendor in China to integrate with Pulumi. pulumi-alicloud can be used to provision 41 Alibaba Cloud products in such categories as compute, storage, networking, load balancing, CDN, Container Service, middleware, access control, and databases. The tool meets the requirements of a large number of major customers for automating the migration to the cloud. Pulumi supports as many cloud resources as Terraform.

Pulumi programs can be written in the following languages: TypeScript, JavaScript, Python, Go (Preview), and C# (Preview).

Benefits

  • Hybrid cloud support

    You can use the same tool to manage and deploy cloud resources, OpenStack resources, and Kubernetes clusters.

  • Multi-language support

    You can use general-purpose programming languages to author declarative configurations, without having to learn vendor-specific template languages.

  • Declarative programming

    Pulumi can define, provision, and configure resources in a repeatable and predictable manner to reduce human error during deployment and management operations. Declarative programming allows you to describe the desired state of your infrastructure, instead of an imperative process to construct the infrastructure. You can use the same configuration to create the same environment.

  • IaC

    You can use code to manage and maintain resources. Pulumi stores its own copy of the current state of your infrastructure, so that you can track changes made to different components in the system and share these configurations with other users.

  • IDE support

    Pulumi allows you to use sophisticated programming languages to author infrastructure and application configurations. This allows you access to IDE functions such as syntax highlighting, detection, and testing.

  • Unified tool

    You can use the same language tool for automated resource management and application development. For example, you can use the Pulumi Python SDK to create database instances and use the Python language to perform operations such as creating database tables.