Pulumi Deployments: API-Driven Infrastructure at Scale

Evan Boyle Evan Boyle Pat Gavlin Pat Gavlin Komal Ali Komal Ali Meagan Cojocar Meagan Cojocar ∙
Pulumi Deployments: API-Driven Infrastructure at Scale

Delivering software has been conventionally driven by CI/CD workflows. A single commit is merged into a codebase, and a small, and static set of workflow runs are triggered by the CI system to update the appropriate environments (Dev -> Staging -> Production). This may have been fine when the only product a company had to offer was a single stateless web service, but increasingly companies are called upon to deliver cloud infrastructure as a product.

Read more →

Pulumi Release Notes: Colorized Stack Traces, Output Methods for JSON, OIDC integration, and much more!

Mikhail Shilkov Mikhail Shilkov Meagan Cojocar Meagan Cojocar ∙
Pulumi Release Notes: Colorized Stack Traces, Output Methods for JSON, OIDC integration, and much more!

We have been busy shipping improvements in the last 2 months. Let’s walk through the release highlights across Pulumi engineering areas from January and February. If you want to learn more between release blogs, follow the CLI improvements in the pulumi/pulumi repo changelog and Pulumi Service features in the new features blogs.

Read more →

Read Every Single Error

Evan Boyle Evan Boyle ∙
Read Every Single Error

At Pulumi we read every single error message that our API produces. This is the primary mechanism that led to a 17x YoY reduction in our error rate. You’re probably wondering how reading error messages make them go away.

Read more →

Iac Recommended Practices: Structuring Pulumi Projects

Scott Lowe Scott Lowe Christian Nunciato Christian Nunciato Aaron Kao Aaron Kao ∙
Iac Recommended Practices: Structuring Pulumi Projects

This is the third post in a series of blog posts focused on Zephyr Archaeotech Emporium—our fictional company—and their use of Pulumi to manage their online retail store. In the first post, you saw how Zephyr initially decided to go with a single Pulumi project for managing deployments of their online retail store application. In this post, you’ll see how Zephyr’s use of Pulumi changes as their company grows and evolves.

Read more →

Google Cloud: Bulk Importing Resources into Pulumi

Josh Kodroff Josh Kodroff ∙
Google Cloud: Bulk Importing Resources into Pulumi

Point and click in the console is great when you’re first starting out learning a new cloud or managed service, but it quickly becomes a hindrance when cloud infrastructure is widely adopted by an organization. The point at which the term “widely adopted” becomes applicable to your situation differs, but at some point in their careers, many infrastructure and platform engineers are faced with situations where a large number of critical infrastructure resources were created through “click ops” with no ability to track changes, reproduce environments consistently, and so on. When this happens (and it will probably happen to many of you), it’s time to import those resources into infrastructure as code.

Fortunately, Pulumi has one of the smoothest and most powerful import processes of any IaC tool. In this post, we’re going to show you how to automate the bulk importation of Google Cloud resources into Pulumi! This approach will also work on resources that were created by another IaC tool.

Read more →

IaC Recommended Practices: Developer Stacks and Git Branches

Christian Nunciato Christian Nunciato Scott Lowe Scott Lowe Aaron Kao Aaron Kao ∙
IaC Recommended Practices: Developer Stacks and Git Branches

In the first post of this series, we introduced Zephyr, a fictional company that uses Pulumi to manage its online retail store. Following on from that post, which discusses code organization and stacks, this post explores two more questions users frequently ask when working with Pulumi in teams — namely, How can I best enable multiple developers to collaborate on a Pulumi project? And how can I use Git and Git branching to support this kind of collaboration?

Read more →

Pulumi Docker Provider 4.0: Build Images Up To 50x Faster

Monica Rodriguez Monica Rodriguez Guinevere Saenger Guinevere Saenger ∙
Pulumi Docker Provider 4.0: Build Images Up To 50x Faster

The Pulumi Docker Provider has been a top Pulumi provider since it launched in 2018. It can be used to provision any of the resources available in Docker, including containers, images, networks, volumes and more.

One of the most heavily used features of this provider is the docker.Image resource, which enables Pulumi users to build and (optionally) push a local Docker context (like an application folder) to a registry as part of a Pulumi deployment. Today we are excited to announce a set of improvements to the docker.Image resource driven by the feedback we have received from our community. This set of improvements includes:

  • Significantly improved performance (including reduced need for rebuilds)
  • BuildKit support (including cross-platform builds)
  • Rich Docker build logs inside Pulumi IaC program output
  • Pulumi YAML and Pulumi Java support

Read more →

International Women's Day: Celebrating our Women in Tech

Sara Huddleston Sara Huddleston ∙
International Women's Day: Celebrating our Women in Tech

Today is International Women’s Day, and this year the theme is #EmbraceEquity - which means creating an equitable environment. An equitable work environment means understanding that everyone, regardless of gender, religion, ethnicity, background, or resources, brings strength to the workforce and that opportunities should be given to them based on their individual needs. For Pulumi, it means a work environment where everyone can share ideas and respect them even when disagreeing.

Read more →

IaC Recommended Practices: Code Organization and Stacks

Scott Lowe Scott Lowe Christian Nunciato Christian Nunciato Aaron Kao Aaron Kao ∙
IaC Recommended Practices: Code Organization and Stacks

This is the first in a series of blog posts that explores how a fictional company—Zephyr Archaeotech Emporium—uses Pulumi to manage their online retail store. This post explores a couple common questions that users ask when working with Pulumi; specifically, where should I store my Pulumi code? And how do I support multiple environments with Pulumi? This post will provide some guidance and recommended practices around these topics, using Zephyr and their online store as the use case.

Read more →