微服务的好处你没有用出来

领域驱动设计帮助我们理解了用代码呈现真实世界的重要性,告诉我们如何更好地进行建模。持续交付理论告诉我们如何更有效及更高效地发布软件产品,并且保持每次提交都可发布的重要性。借助虚拟化平台,我们能按需创建机器并调整其大小,借助基础设施的自动化我们也很容易从一台机器扩展到多台。


随着领域驱动设计、持续交付、按需虚拟化、基础设施自动化、小型自治团队、大型集群系统这些实践的流行,微服务也应运而生。很多组织发现细粒度的微服务架构可以帮助他们更快地交付软件,使他们能更快地响应变化。


微服务就是一些协同工作的小而自治的服务。单体架构的代码库会越来越大,以至于想知道要在哪里做修改都很困难。微服务则很好地实现了单一职责原则:把因相同原因而变化的东西聚合在一起,把因不同原因而变化的东西分离开来。根据业务的边界来确定服务的边界,这样就很容易确定某个功能代码该在哪里改。每个服务专注于某个边界之内。微服务要多小?足够小即可,但不要过小。当你不再觉得你的代码库过大,它就足够小了。微服务的大小要与团队结构相匹配,如果一个小团队无法维护,就要拆小。使用的服务越小,独立性带来的好处就越多,但管理大量服务也会约复杂。一个微服务就是一个独立的实体。服务之间通过网络调用进行通信,从而加强了服务之间的隔离性,避免紧耦合。服务彼此之间独立进行修改,并且某一个服务的部署不会引起服务消费方的变动。服务会暴露出API,然后服务之间通过API调用。修改一个微服务并进行部署,不影响其他任何服务。


微服务的好处之一是技术异构性,每个服务可以采用适合自己的技术。微服务可以帮助我们更快地采用新技术,并理解这些新技术的好处。你可以从风险最小的服务开始尝试新技术。如果你可以在两周之内重写一个服务,那么尝试新技术的风险就降低了很多。微服务的第二个好处是弹性工程。如果系统中的一个组件不可用了,系统的其他部分还可以正常运行。第三个好处是扩展性。使用较小的多个服务,只需对需要扩展的服务进行扩展。第四个好处是简化部署。在几百万行代码的单体应用中,即时只改了一行代码,也要部署整个应用,这种部署影响很大,风险很高。这样就会由于不敢部署和攒的新功能越来越多的交互作用,造成恶性循环。第五个好处是与组织结构相匹配。微服务架构可以很好地将架构与组织结构相匹配,避免出现过大的代码库,从而获得理想的团队大小和生产力以。第六个好处是可组合性。在微服务中,系统会开发很多接口供外部使用,达到可复用、可组合的目的。第七个好处是对可替代性的优化。当采用微服务时,重新实现某个服务或者直接删除某个服务,都是具有可操作性的。微服务团队可以在需要时轻易重写应用。


Scrum和XP是敏捷的特定方法,微服务是面向服务的架构SOA的一种特定方法。微服务相对于共享库、模块化等分解技术也是优势明显。但微服务不是银弹和免费的午餐。为了得到微服务的好处,你需要在不是、测试、监控等方面做很多的工作。引入微服务之后的一个主要挑战是,架构师职责的变化。

5cc34cd9def04f9c236c42df325488f6.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值