Open slavaboiko opened 1 month ago
Just generally interested in this ticket as my own stack is now 300+ resources
A couple of questions.
At first glance, I'd recommend one app with the shared infra. And one app for all the services. You can reference the shared resources through the ARNs or by doing a lookup using the Pulumi AWS components. https://sst.dev/docs/reference-resources/
i'm also surprised it's slow - we have 300+ resources and it's not that slow
maybe worth trying SST - we have some performance improvements on top of the generic pulumi s3 backend
haven't had too many complaints about deploy speed for updates
Thanks, everyone, for your responses - appreciate it!
In short, we have around 10-30 resources per service (it goes very low-level with Pulumi, so after all the roles, policies, aliases, versions, configs) - the numbers go high.
Obviously, we are not changing all of them every time, mostly what changes is configs or app bundles.
It wasn't clear from your post if you are planning to use SST for the whole setup or still have previously created resources managed by TF or Pulumi?
We have lots of resources that were created with Serverless framework automatically and lots of resources created manually - then I have generated a bad Pulumi code for these resources, so I have a template for what to do.
Now I am in the process of refactoring all this and organising the mess, for now I have ditched Serverless and adopted a structure of one Pulumi stack per service per environment
e.g.
etc
this allows me to isolate stacks from each other and also add bunch of tooling on top.
but lately I felt like I am creating my whole SST and that's when I decided to ask a question.
I think most important is for me to deploy services independently, as I might have bunch of changes to entire repo, without wanting to deploy services all at once.
in current nx
stack I can now do nx run api-one:deploy
and nx run api-two:deploy
which kicks-off separate pulumi stacks.
is there a way to deploy only selected services with SST?
We do have some support for it, but it's definitely not the recommended approach currently. Try doing it through a single SST app. If you really do find it becomes big then split the apps so that "hard" resources go in one and lighter ones like Lambdas go in another.
Hi SST team!
I’m reaching out because I’m a bit confused about the best way to orchestrate a large, microservice-based AWS infrastructure with SST v3. A bit of background on my situation:
With SST, I’m trying to figure out the optimal pattern for:
Per-service SST apps
sst.config.ts
(and therefore its own state)?Single “root” SST config
sst.config.ts
files under one root config—everything ends up in one big state.without touching the rest?
Hybrid approach
I’d love any guidance or patterns from the SST team on how best to structure a large, multi-service codebase so that:
sst dev
andsst deploy
per service)Thanks so much for your time and the awesome SST work!