Hi. We are doing our first steps with Pulumi and ...
# getting-started
q
Hi. We are doing our first steps with Pulumi and I try to wrap my head around the basic concepts and how we can implement features we already have using Pulumi. One of the features we currently support are review deployments. I saw that Pulumi has something called Review stacks, but from glancing this documentation it seems that this needs Pulumi Cloud. Am I correct?
m
Can you describe what exactly you mean when you say "review deployment"?
s
Yes. These require Pulumi Cloud. They are a part of Pulumi Deployments.
👍 1
If you're just learning, there's no reason not to use Pulumi Cloud as your backend. It'll make learning easier - don't have to manage state or do secrets encryption.
q
Can you describe what exactly you mean when you say "review deployment"?
We run a bunch of micro services. For (a defined subset of our) PRs we build the micro service it is for, deploy it as a temporary deployment and test it (sometimes in combination with the current permanent deployment of other micro services or against review deployments of other micro services, if there are dependencies). Once the PR is merged that deployment is removed and the feature is build and deployed into a permanent deployment and down an environment pipeline (the usual dev -> staging -> prod). I hope that makes sense.
If you're just learning, there's no reason not to use Pulumi Cloud as your backend.
Yeah, it is learning. But we actually learn with real production applications, "learning by burning"... 😉
But I understand and we will consider Pulumi Cloud in our evaluation.
m
We run a bunch of micro services. For (a defined subset of our) PRs we build the micro service it is for, deploy it as a temporary deployment and test it (sometimes in combination with the current permanent deployment of other micro services or against review deployments of other micro services, if there are dependencies). Once the PR is merged that deployment is removed and the feature is build and deployed into a permanent deployment and down an environment pipeline (the usual dev -> staging -> prod). I hope that makes sense.
That makes a lot of sense and is a common setup, you can do this with a self-hosted backend as well. In your CI, you create a new stack for each PR that you re-deploy with every PR update and ultimately destroy when the PR is closed. You can use the stack outputs (e.g., database URLs) to configure your test code. In case you're on GitHub, there's an official Action: https://github.com/pulumi/actions