知其然,知其因此然。在上一篇博文中咱们聊到 微服务的本质 就是一种新的协做机制,能够加速分工、促进合做,但为何微服务有这种效用呢?今天咱们来聊聊其背后的缘由。html
在业务互联网化以前,咱们建设的大部分IT系统都是供内部员工使用的,主要用于提高办公、管理的规范和效率,以及经过无纸化来下降办公成本等。但如今互联网已经成为获客、销售和服务的载体,跟以往相比,业务形态的变化愈来愈快,也愈来愈多样化。原先咱们经年累月在物理世界构筑起的防护城墙,例如:广告渠道(广播电视或户外等)、销售网络(代理人或实体店等)、客服中心等,都被互联网瞬间推平了,这彻底是降维打击。程序员
行业边界变得愈来愈模糊,跨界竞争愈来愈白热化,在这个没有自然屏障的世界里赢者真的能够通吃。在这个巨变不断的时代,再睿智的管理者也没法预见业务的发展,要否则各行各业不会出现这么多新巨头。就像在两眼抹黑的环境下,咱们只能小步前行,不断创新、迭代和试错。天下武功惟快不破,内在的梦想和外在的压力,呼唤更加精细的分工、更加广密的合做,只有这样才能提高进化的速度,从而更好地适应不断变化的外部环境。面试
为何说微服务能够加速分工呢?单体式架构的特色就是不一样类型的业务逻辑混杂在一块儿,彼此之间没有明显的物理边界,全部人都在维护同一个代码库,耦合度很是高。在业务须要快速迭代的当下,每次发版本都要全量回归测试,没法并行开发,这样很难提高速度。微服务化就是借助领域驱动设计(DDD)理论将单体式拆解成多个彼此独立的业务组件,高内聚低耦合,每一个组件聚焦各自业务,避免变动范围没法有效控制。微信
除此以外,著名的“康威理论”告诉咱们:组织架构决定了系统架构,每一个微服务组件都应该由一个小而精的团队维护,最适合的团队规模就是“两张披萨”能够吃饱的人数。经过限制代码和人员的规模,微服务让业务更聚焦、分工更精细、组织更简单、沟通更高效。网络
没有分工就没有合做,若是每一个人的才能类似,又干一样的活,那合做的必要性就下降了,更可能是竞争。为何微服务能够促进合做呢?咱们能够将合做的双方抽象成两个节点,合做就是在两个节点之间创建连线。在单体式时代,系统间的交互存在许多协议,例如:EJB T三、RMI、SOAP、Dubbo、Hessian 等,跟不一样的系统通信须要依赖不一样的协议,这种状况下学习、沟通和维护成本都很高,不利于合做。而微服务将通信协议统一为HTTP,组件或系统间的交互所有采用RESTful API,报文以JSON为编码格式,同时引进服务注册、发现等机制。这些技术理念都是借鉴自世界上最大的合做网络:互联网,包括超文本传输协议HTTP、域名系统DNS。简单、统一和松耦合的机制有利于合做。架构
所以,微服务能够帮咱们加速分工、促进合做。在微服务架构下,软件的复用率更高,研发的并行性也更高,从而以更快的迭代速度打磨出更好的产品,在更高的质量属性保障下全天候服务全网用户,同时资源利用更精细高效,让咱们的产品具有更好的成本优点。拨开云雾,看清微服务的本质,找到咱们学习新技术的内驱力。微服务
固然,微服务想要发挥最佳的效果,必需要跟容器云和DevOps结合,应用所依赖的其余服务最好是云化的,例如:传统的网络存储方案NAS就须要改成云存储,这样应用和关联服务都具有弹性伸缩能力,在业务量爆发性增加的状况下,系统可以快速地扩容,无需从头至尾手工扩容。记住一句话:微服务,就是加速分工、促进合做,让咱们进化得更快!学习
坚持原创不易,若是你以为有价值,麻烦动动手指点下文 「 推荐 」按钮,让更多小伙伴能够看到,老兵哥会更有动力坚持分享的。另外,我后续还会分享职业规划、应聘面试、技能提高、影响力打造等经验,欢迎 关注 本专栏或微信公众号 「 IT老兵哥 」!测试
关注「IT老兵哥」,赋能程序人生职业规划
近期热评文章:架构师入门系列
原文出处:https://www.cnblogs.com/itlaobingge/p/12195492.html