My use case - you are a SaaS company that has "main" multitenant deployment that serves your customers.<p>Then you have an enterprise prospect that wants a single-tenant deployment due to security, privacy, etc.<p>Is there any tool that will help me achieve that? Both spinning up the single-tenant deployment and verifying it works.<p>There's replicated for kubernetes-native apps but let's say I use also third parties such as Snowflake and some other managed services.
Before tooling even comes into the equation, you owe it to yourself and your sanity to read this in full: <a href="http://blog.lusis.org/blog/2016/05/15/so-you-wanna-go-onprem-do-ya/" rel="nofollow">http://blog.lusis.org/blog/2016/05/15/so-you-wanna-go-onprem...</a><p>Here be dragons.
This is a scary slope. A single client having their own environment 10 years ago was worth about 9% of sales so they need to be paying 10* what your next highest customer pays.<p>Now if you are in AWS you can just invoice them the cost of their own subscription + 100% which makes it easier and they may pay.
At some smaller companies I have worked at we used Terraform and Helm for everything. We had a strict policy that anything beyond dev had to be deployed by a robot owned by our security operations team. We already had multiple test and staging environments so that developers can remain unblocked. When an enterprise customer required a dedicated instance we created an additional set of environments from our existing templates.<p>The environments looked like:
- platformcodename-$customerid-test0
- platformcodename-$customerid-test1
- platformcodename-$customerid-stage0
- platformcodename-$customerid-prod<p>and so on. At one of these places we were doing multi-cloud so each of these environments were a GCP Project and AWS subaccount. At another where we were on bare-metal put single-tenant customers in their own Kubernetes namespace (we were strong on genuine multi-tenancy), then we had a very special customer that we put on a dedicated Kubernetes cluster accompanied by a dedicated storage cluster.<p>If you have robust DevOps this should be an easy problem to solve. I have to admit upfront I am probably biased to what "robust DevOps" means because of how many people I have recently encountered with "DevOps" in their title who shy away from stuff DevOps has been traditionally expected to do. Maybe I should think up a different role description for myself.
This is an interesting problem. I think a massive part of this is how much customers are paying. If it's enough, certain parts that may be hard to automate can be done manually.<p>IaaC and good software packaging will help take care of your infra, but working with 3rd party managed services that may live outside of your cloud provider will vary. If the customers are paying a lot, it becomes worth the time to manually do those steps (after verifying that they can't be automated).<p>Let's pretend you can automate with IaaC and docker images (although any deployment style works). You can wrap that entire process into a script that will initialize and all perform tests against the infra/service.<p>I'm not too familiar with it outside of exam prep, but AWS (and probably the other big guys) offer the idea of an organization, which consists of multiple accounts. Makes for easier tracking, with strong isolation. Could be a route to go.<p>There's a lot of variables here, and as others have said, it's a tricky path. I also think it's an interesting problem and I hope you have fun solving it.
This would have to be a potential new line of business to be worth it unless the customer is willing to pay the cost to build and maintain plus a significant markup.<p>We did something similar for a major healthcare client but our pricing scaled with volume and they paid for all our development costs + markup.<p>Luckily we already had said no to a few smaller clients so when the solution was built we sold it to them as well.
May I ask what backend platform / language are you using? I ask this because I've been developing something which is due to be released within Q1 of this year, and would like to understand my target market.<p>Currently my solution works for Elixir / Phoenix and static pages. But I'm working on expanding to ruby / rails and nodeJS based frameworks.