服务拆分时应该考虑的几个因素
极客时间编辑部
讲述:杜力大小:1.19M时长:02:36
微服务在最近几年大行其道,很多公司都在考虑使用微服务架构,而在落地微服务架构的过程中,如何拆分服务又成为摆在研发人员面前的头等难题。近日,易宝支付的 CTO 陈斌在其公众号中谈到了这一话题,并详细介绍了系统拆分需要考虑的因素和坚持的原则。
首先,服务的拆分应该迎合业务的需求。在拆分时,研发人员需要从业务角度确定拆分的方案,拆分的边界也要充分考虑业务的独立性和专业性。这个时候一定要避免以团队为单位来定义服务边界,否则很容易出现土匪抢地盘的局面,并且极易破坏团队之间的信任。
其次,衡量拆分收益的标准是拆分后的维护成本要低于拆分前的,也就是说不能因为拆分而带来更大的维护工作。服务的维护成本包括所需要耗费的人力、物力和时间,如果一个系统拆分成两个或两个以上,导致所有的资源投入翻倍,那这样的拆分就比较失败。
再者,拆分不仅仅是架构上的调整,也意味着要在组织结构上做出相应的适应性优化,以确保拆分后的服务由相对独立的团队负责维护,尽量不要出现不同服务之间的交叉调用。在这里要坚持的原则是明确每个服务的分工,切记不可出现一个服务由几个不同的团队共同负责的情况,这会造成无人负责或多方争抢,也不利于团队积累相关服务的经验。
最后,团队一定要明确拆分最有价值的结果是提高了系统的扩展性。用户对不同的服务有不同的并发和性能方面的要求,因此服务具有不同的扩展性。把具有不同扩展性要求的服务拆分出来分别进行部署,可以降低成本,提高效率。比如电商平台的搜索服务有很多请求,并且需要较强扩展性,那这时就应该把搜索服务分离出来,单独考虑其扩展性的需求。
另外,陈斌也提到在服务拆分时还需要考虑软件发布和信息安全方面的问题。系统中经常变动的部分大约只占 20%,而剩下的 80% 基本不变或极少变化,因此软件的发布周期完全不同。拆分时就需要根据软件发布需求的差异,把不变的 80% 分离出来,单独部署,单独管理。
而信息安全方面,不同的服务可能对信息安全有不同的要求,因此把需要高度安全的服务拆分出来,进行特别的部署,比如放在防火墙的后面,可以更有针对性地满足信息安全的要求,也可以降低对防火墙等安全设备吞吐量、并发性等方面的要求,降低成本,提高效率。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论