Services + End-to-End Tests = ?

Services + End-to-End Tests = ?

A defining characteristic - and a key benefit - of the microservice architecture is that services are independently deployable. A team can test their service in isolation and release it independently of other services. Sadly, however, some organizations ignore this benefit.

The trouble with end-to-end testing

Instead of deploying services independently, some organizations test and release all the application's services together. To do that, they run what are usually slow and brittle (break randomly) end-to-end tests.

This increases the application's lead time and reduces its deployment frequency and so they are no longer delivering software, rapidly, frequently and reliably.

If you are not deploying services independently you essentially have a distributed monolith. Moreover, it's probably an instance of the Red Flag law anti-pattern.

While you still have the other benefits of microservices, such easier technology stack evolution, most likely, you are experiencing the pain of a distributed architecture with few of the gains.

Fixing the problem

If you can't successfully deploy services independently then I'd recommend one of the following options:

  1. Addressing the obstacles to end-to-end testing, such as an overly complex, fine grained architecture with unstable APIs.
  2. Migrating back to a monolith architecture and avoiding the pain of a distributed system.

Learn more

Please see read the article.

Need help

If you need help escaping from distributed monolithic hell, please don't hesitate to contact me.

Ricardo Bemfica

Platform Engineering Manager at Livelo, BSc Computer Science, MBA - Digital Business

7 个月
回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了