Wednesday, January 9, 2019

Pulumi: An Introduction

Introduction:
Pulumi is a platform for building and deploying cloud infrastructure and applications in your favorite language on any cloud.
Describe your resources in code – VMs, networks, databases, containers, serverless functions – and the CLI safely and reliably manages your cloud resources using an infrastructure-as-code approach. Create, share, and reuse powerful cloud packages.
Pulumi is open source on GitHub and is free to use.

Pulumi vs. Others Cloud Templates

All major cloud providers offer their own form of infrastructure-as-“code” solution, typically by way of JSON or YAML-based templating solutions. This includes AWS CloudFormation and Azure Resource Manager (ARM) templates.
These markup-based configuration files are often uploaded to a hosted service in the target cloud, where a hosted service will then process the files to create, update, or delete resources as necessary.
Pulumi’s model shares a lot with these systems. Although Pulumi programs are written in imperative, familiar languages, they are ultimately evaluated to produce a similar set of create, update, or delete operations for your cloud resources.
This is where Pulumi begins to diverge from these other solutions, however.
Pulumi lets you use your favorite languages, instead of bespoke templating solutions. These typically use syntaxes that are awkward, hard to learn, and even harder to remember. Pulumi programs are just real code. Thanks to basic things like functions and classes, we’ve seen 25,000 line CloudFormation templates shrink to just a few hundred lines of code. This approach also leads to far less copy and pasting between projects because you can share packages.
Pulumi is also multi-cloud. So, you only need to learn one programming model, tool, and workflow. In fact, you can easily manage resources from different clouds, easing what would otherwise require manual orchestration. For example
  • Use Azure ML, but AWS for VM, container, and/or serverless compute
  • Provision a GKE Kubernetes cluster and then deploy Kubernetes apps to it

Supported Clouds: https://pulumi.io/quickstart/clouds.html
Reference:
https://pulumi.io/quickstart/
https://pulumi.io/reference/vs/cloud_templates.html

No comments:

Post a Comment