Hello all, I'm building a Saas application which...
# general
Hello all, I'm building a Saas application which needs to provision some services everytime a customer signs up. Every server(assuming one server per customer) will have the following The services include(all can be dockerized) 1. Postgresql 2. Directus 3. Remix Run 4. Nodejs App I want these services to be updatable, for example when I push an update to the docker compose, or want to push code to a service via github. Is pulumi the right tool for this? Are is there a better way to handle my work flow?
Yes, you can do this. I would recommend looking at the Automation API, which will allow you to programmatically run deployments when your customer signs up.
Thank you for the detailed answer. I will check the Automations API. 1. Is pulumi the right tool for setting up Linux servers and running some bash scripts which will secure the server as well as install docker compose, etc? 2. Do you have a suggestion on storing API keys/SSH keys? Everything will be automated and credentials must be stored. 3. Will pulumi also work if I host 2 clients per server? Every client will have the same services but all isolated. 4. With pulumi, I think I can achieve everything I want but I am a developer and not a Devops. Should I still consult a devops? I'm not doubting but I'm not well aware of this subject.
@rough-wire-26841 Some specific Pulumi providers may provide interfaces for running operations on VMs but they're usually not idempodent. I've played with Ansible in the past but never liked it but came across Pyinfra recently which is a declarative framework for running (idempodent) VM operations. We're using that for cases when we have to manage VM state after it has been provisioned by Pulumi