So all of our services have multiple environments like Prod, NonProd, Dev. Should these be created as different technical services under the same business service, or different business service? Is there a native concept of environments that I am missing?
How do you manage different environments
Best answer by danieljcafonso
My pleasure
From that context, it sounds like `genomics` might be one of your Business service as this might be the overarching domain that you want your stakeholders to subscribe to.
So from that structure it might sense to:
- Create Business Service `Genomics`
- Create Technical services for Prod envs like `markers - prod`, `genotypes - prod`and others
- Link this Prod envs technical services to the `Genomics` Business Service and subscribe your statekolders to this Business Service.
- Decide if you want a single technical service for NonProd/Dev and either create the individual technical services (e.g. `markers - nonprod` and markers-dev`) or create a single technical service ( e.g. `markers - lower envs`) and leverage event orchestration to parse your event payload to help differentiate the env.
You also mentioned one thing that is important to take note which is the `but there are sometimes dependencies between them` part. Make sure that you use Service Dependencies to reflect your architecture. So if for example `genotypes - prod` depends on `markers - prod` make sure that dependency is reflected in your service!
Hope this gave a bit more practical clarity! Let me know if this helped.
Have a great day 😁
Login to PagerDuty Commons
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.