In the future, what would an ideal developer stack(s) look like?
Option 1: Enhancements to current Devstack
Option 2: Services are isolated
Would this serve the purpose of local development and testing?
Can this be feasible?
What level of technical understanding of Docker/etc that we expect developers to have?
Option A: Run stubs for services that you depend on.
Option B: Explicitly run the services that you need.
Option C: Make services more independent and more tolerant of non-existence of other services.
For example, add built-in circuit breakers.
What are alternatives to Devstack?
Option 1: No centralized Devstack repo, but having each IDA have its own Docker files and Containers.
Option 2: Just use sandboxes for development and testing
Moving from today to there
Do we keep our current devstack repo or start over?
Option A: Moving to a radically different place, but do it in place without drastically disturbing development.
Option B: Each service has its own Dockerfile (which doesn’t use Ansible), publishes its own official Docker image (which can be used for either prod or dev), and perhaps has its own docker-compose.yaml for just the services it needs. The current devstack repo gradually switches to use these images, and continues to be used for testing and development tasks that span multiple services.
Provisioning databases for services
This is something that devstack currently does for us.
We can move to the Test Data OEP instead (or some iteration of it)
Uses fixtures and named data sets consistently across services.
Publishing/Deploying changes: Is it OK to make changes to repos and not publish them?
Case 1: “I want to deploy ecommerce, but there are changes here I don’t understand”
Typically, people do deploy immediately per e-commerce’s policy.
Case 2: Changes in libraries that don’t get updated until the next make upgrade.
Currently, we don’t have consistent guidance around this.
Sometimes, people deploy one IDA/MFE, but don’t upgrade all dependents.
For frontends, we automatically merge updated MFEs, but don’t automatically deploy them to prod. They are deployed to stage.
For backends, we automatically run ‘make upgrade’, but don’t automatically merge or deploy.