Continuous Integration & Delivery in Composable Systems
We mentioned above that you’ll need much less DevOps support. Here are some reasons why.
Continuous integration and testing
There’s another tradeoff when it comes to testing. Unit testing is significantly easier because each unit lives in its own silo and should be able to be tested outside the context of the rest of the system. Integration testing is trickier, as it may require orchestrating several services together to achieve the task within the test.
Deployment complexity
As the microservices pattern goes, you will have many more individual components to work with. But as stated above, each one is simple and siloed. Setting up CI/CD for each will be significantly simpler that what you’ve done in a monolithic context.
However, the system itself grows in complexity, as you have to understand how all these services work together. And for those that rely on each other, it will be a manual process to orchestrate the testing and deployment processes.
Rolling back code
The same holds true for rolling back code. Rolling back any one component couldn’t be easier. Rolling back multiple, intertwined components may be significantly more difficult, depending on the scenario.