Pulumi Workshop

Pulumi Workshop Overview


Pulumi is an infrastructure as code (IAC) provider that leverages widely adopted programming languages (e.g. Python and Javascript) to declaratively deploy resources across infrastructure platforms including Amazon Web Services, Google Cloud Platform, Microsoft Azure, Kubernetes, and GitLab. It is a highly effective automation tool for cloud infrastructure development that enables high level programming and rapidly iterative development of cloud applications. It is also reproducible and enables transference of infrastructure collections across regions and accounts. Because of its flexibility, it is the default infrastructure as code tool used across NCICS platforms.


This workshop is geared as an intensive introduction to Pulumi with the goal of providing participants with the relevant background knowledge, tools, and applied skills to leverage Pulumi in production environments. The workshop will be held in person at NCICS in the 5th floor conference room and synchronously remotely via zoom on June 25, 2024. Sessions will be recorded. Over the course of eight hours (Syllabus), participants will walk through getting started with Pulumi and rapidly move to deploying complete infrastructure stacks on AWS. This workshop will be hands-on; participants are expected to participate in activities which extend course teaching material with practical applications using design patterns commonly deployed across NCICS environments.


Please reach out to denis_willett@ncsu.edu to express interest and enroll in the workshop. The workshop is open to both NCICS and NOAA research and IT staff.

Participant Background

This workshop assumes a high-level of familiarity with both scripted programming languages and cloud computing. Participants are expected to have a background in developing python or javascript based applications on a daily basis. They are also expected to be familiar with building applications on AWS either through the console or through using other infrastructure as code providers. This workshop also assumes a high level of skill and familiarity with Git. This workshop will start from a baseline of building scripted infrastructure as code stacks from the command line in python and progress rapidly to building and deploying modules of complete infrastructure stacks. We will be leveraging common control structures and best practices for modular software development while heavily leveraging Git. This workshop will not teach any of those skills in order to focus on development with Pulumi. This course will be taught in python, but all of the principles discussed (including patterns of project development and organization) apply equally to development in Javascript (and we welcome JS developers).

Objectives and Outcomes

The goal of this course is to equip participants with the skills, tools, and background knowledge they need to develop and deploy production infrastructure using Pulumi.

This includes:

  • The ability to leverage high level automation modules to deploy pre-designed infrastructure stacks.
  • The ability to integrate Pulumi IAC deployments with existing infrastructure
  • The ability to share Pulumi stacks across the organization

Specifically, by the end of this workshop, participants will have:

  • Understood the IAC landscape and differences between Imperative and Declarative infrastructure deployments.
  • Used the Pulumi CLI and Pulumi Teams Platform.
  • Deployed infrastructure stacks using both the traditional Pulumi Engine and the Pulumi Automation API.
  • Used best practices to integrate Pulumi with existing infrastructure.
  • Leveraged pulumi to deploy and move resources across accounts and regions.