I'm looking into options for a new architecture solution for an API layer. We have decided to use dotnet core, and we'd like to have each part of our app's functionality broken into microservices. We use azure devops to handle the build/test/release CI/CD workflows.
Based on a broad analysis, I'd estimate our current back end solution could be broken out into 10-15 seperate microservices. Unfortunately, most of these would have a similar back-end dependency, but I'd still like to break them apart so we could isolate unit testing, have smaller CI/CD footprints, and have the project start with a solid separation of concerns.
However, at the same time, I'd like to avoid having 10-15 different git repos, solutions, and CI flows to facilitate this workflow. This would become a bit of a nightmare for ease of development, to have devs regularly needing to change workspaces (the 'Open Recent' list in any IDE would completely overflow!), maintaining and syncing 10-15 CI/CD.
The ideal result in my eyes would be a single solution, git repo, and build process with each microservice separated as a project within the solution. When code gets committed, I'd like to fire a process in Azure devops that would only build/test/deploy those services that were changed in the commit.
Is this possible or am I dreaming? I have not had much luck with Google but maybe I'm not entering just the right phrase for this...
Thanks in advance!