What to include in building an enterprise system home labe side project?

  softwareengineering

I’d like to build a home-lab side project that consist of technologies now used in enterprise systems for personal learning and having something to work on and try out new technologies. The “business” would be some sort of Gen-AI service (obviously), like personal AI generated images, notes etc.
Ideally, I’d like to apply as many established software engineering best practices as possible. In particular, this would mean (in no order of priority):

  1. Setting up various environments for local development with in-memory data and dummy-AI service, remote production-like environment with more sophisticated service
  2. Build pipeline for automatic deployment to different VMs / Containers (which perhaps would be serving dedicated B2B customers)
  3. Parallel deployments of different versions / feature sets –> either by checking out different version control branches in different deployments, OAuth or some other technology
  4. Fully automated releases triggered by some event (on merge to master?) with rollback capability in case of errors
  5. Prod like environment hosted in a major Cloud provider (preferably Azure)

As technology basis I tend to go for Java with Spring Boot or some Scala framework.

I’m interested in hearing recommendations for how to handle items 2. and 3. but opinions on any of them is also welcome.

LEAVE A COMMENT