Hello team,
Last week in the sprint wrap-up meetings we discussed various proposals for testing micro-services. I think we decided that the idea that "micro-services don't need unit tests" is incorrect. I've put together a short document that outlines a sensible middle ground between the above idea and "zomg test all the things". Let me know what you think: https://docs.google.com/document/d/10WL6R0mzoUWSJ8gKHI1Bmhr4fWzK6RRPkYMiE2kuI_g/edit# In slightly related news, I've had this thought rattling around my head for the last few weeks, but have failed to communicate it verbally - let me try in writing: - When writing software to solve a problem, there's a certain level of irreducible complexity involved. The problem we're trying to solve dictates the minimum complexity required. - Using micro-services as an architecture allows us to spread that complexity out into several services and code-bases. For example, instead of having the adt-cloud-worker deal with finding the correct cloud image for a given series & architecture, we can split that off into a separate service. (similar to how we split distinct problems into separate classes or functions when designing monolithic software) - ...However, no matter how you spread it around, you haven't removed that complexity, you've just moved it into a separate codebase. - ...furthermore, there is a cost associated with increasing the number of services - the complexity of your communication network grows. To quote Evan: "I fucking love micro-services" - I really do. I think the benefits outweigh the costs, but I also think it's important not to view micro-services as a panacea for all ailments, otherwise we'll end up like these people <https://www.gnu.org/software/hurd/hurd.html>. My brain works in abstractions (I guess that's a common trait of engineers) - to me I see the "micro-services vs monolithic applications" debate as a detail of deployment: when it comes down to it, they're both just software built with a message-passing architecture... Cheers, -- Thomi Richards [email protected]
-- Mailing list: https://launchpad.net/~canonical-ci-engineering Post to : [email protected] Unsubscribe : https://launchpad.net/~canonical-ci-engineering More help : https://help.launchpad.net/ListHelp

