DEV Community

Discussion on: Is Microservices a good choice ?

Collapse
genichm profile image
genichm • Edited on

It's not enough details for a good answer so only based on my experience with microservices.
One of the keys for microservices success is automation if you have DevOps and QA that can write automated tests then even team of 5 devs can handle this approach.
Devs should be able to write high quality unit tests that validate positive, negative and edge cases it will help to the devs to re-run their code a lot of times and reduce amount of bugs + prevent regressions but slows down the development process. Devs have to run at least positive tests of their code. All the above will reduce a huge amount of work from the QAs that can focus on automated tests that have to be integrated into CI/CD process and again prevent the regressions. In it's turn automated tests will help to devs to be sure that their code don't destroy existing functionality and increase their productivity. It leads me to the staging environment where you can deploy your "clean" code and run all the possible tests on iin, in case of failure everything should be rolled back to the previous state.
If you can automate your processes to this level nothing should prevent you from using microservices.
From the experience with unit tests, design your code to support them it will reduce amount of time that you invest into unit tests development and maintenance.

Edit:

If you select distributed architecture it will required good level of observability. I.e. logs collected into centralized place and all the elements are monitored. So the main overhead is in management of everything and automation of everything.