DevOps国际峰会2018深圳站 会议学习

虽然周六有事,但还是抽了上午的时间去参加了DevOps国际峰会2018深圳站,毕竟还是自己掏了钱买了门票的,不舍得不去。

会议上绝大多数都是与DevOps自动化运维相关的,自己更感兴趣的还是其中那个关于架构主题的。

 

有个人的演讲比较有意思,名叫《微服务:过早拆分是万恶之源》。主要是讲由于业务规模的扩大、业务场景的复杂度,应用会由一开始的单体,拆分为多个微服务。而在这个改造的过程中,有一些地方是值得关注的:

1. 微服务的哲学原理  DO ONE THING WELL

意译为:只做一件事并将其做好。这和微服务的设计思路是吻合的,我们将做同一件事的东西聚合在一个微服务里,对外提供服务,比如订单、产品、会员模块等。

 

2. 合并微服务比拆分成本更高

微服务不是拆分得越多越好,不能为了微服务而微服务。拆分时要想到如果拆分失败或者发现没有拆分的必要时,是否可以很快地进行合并。合并不容易,是因为要处理代码冲突、修改上下游依赖,并重新设计部署架构。

 

3. 小心把微服务做成小单体

微服务边界不清,服务之间无法解耦,随着业务的不断“膨胀”,微服务又变成了需要拆分的小单体。

 

4. 微服务拆分

有时很难界定微服务的边界,微服务的复杂度,在于服务之间的关联关系。我们可以基于聚合去构建微服务,聚合可以和业务一一对应。

 

5. 微服务设计的最佳实践 -- DDD

DDD(Domain Driven Design)领域驱动设计

 

6. 过早拆分是万恶之源

这里的“过早”,强调的不是时间点,而是警示。拆分什么时候都合适,最重要的是是否对整个系统的业务逻辑和边界有一个全面和清晰的认识,是否对拆分的过程有足够的风险评估和质量把控。

 

最后,附图。

 

展开阅读全文

没有更多推荐了,返回首页