DevOps的自动化测试非常重要,这样我们部署的变更才能有更好的质量,才能令我们更加信赖。然而,这并不是一个可以解决服务由于不明原因突然宕机的方案。由于在微服务模式中我们有更多的服务,从统计学上来说服务宕机的概率更高。
我们可以通过努力监控服务并在出状况时采取适当的行动来部分缓解这个问题。最好是自动化的方式。
在我们的客户数据库例子里,可以采用以下策略:
使用两个应用服务器同时运行应用程序。
应用程序通过JsonRest提供特定的监控接口。
监控后台定时调用监控接口。
如果服务器停止工作,负载均衡便会重新配置以将其从服务器池中移除。
显然这是一个简单的例子,但它有助于描述我们面临的挑战,那就是设计由许多动态部分组成的弹性系统以及它们如何影响架构决策。