从微服务架构的现状和未来看学习路径
在当今的互联网系统架构中,微服务已然成为整个服务端系统架构的标配,但不同的公司由于发展阶段、规模及历史现状的不同,所以在具体的实现路径及形态上一般会有所差别。
一般来说,对于新生的创业公司来说,由于没有历史负债,且赶上了微服务技术发展的潮流,因此可以在系统研发初期直接运用像Spring Cloud这样成熟的微服务技术体系来实施微服务架构。
而对于发展较早,但规模并不大的公司来说(如某些垂类的独角兽企业),受限于彼时的技术发展及业务量等因素的影响,由于其实施大规模架构升级的内在动力不足,且存在技术上的历史负债,所以其在实施微服务架构的过程中往往会涉及较多的系统重构及架构兼容情况。但也可以通过像Spring Cloud这样的微服务技术体系来逐步进行微服务架构的迭代。
最后,对于发展较早,业务规模和流量规模都很大的公司(如某些互联网大厂)来说,由于系统、业务分化严重,所以很难保证一致的服务架构体系,因此在实施微服务架构的方向和路径上也同样会存在分化情况,例如某些新生的团队可能会采用Spring Cloud微服务体系架构,而一些原有的业务和团队可能仍然会继续使用自研或某些早期流行的服务化组件(如Dubbo、Thrift等)。
但无论所处的阶段如何,现如今整个互联网服务端架构都在快速向以微服务化、容器化、服务网格、Devops等为代表的云原生架构方向发展。
今天的内容将从微服务架构的现状、未来,以及该如何学习微服务架构这几个方面简单和大家聊一聊!
01 微服务的现状
现阶段,以Spring Cloud为代表的微服务体系仍然是快速落地微服务架构首选方案。对于大部分公司来说,使用Spring Cloud微服务体系,不仅能够快速落地微服务架构,而且基本上也能满足未来3~5年的架构扩展需求。
但因为在服务治理方式上,对业务应用有侵入,且扩展性和灵活性有所欠缺,所以微服务架构也在逐步向以Istio为代表的Service Mesh(服务网格)的方向发展。
但即便如此,以Spring Cloud为代表的微服务架构体系仍然将占据微服务架构主流地位相当长的时间。
02 容器化的必要性
另一方面与微服务架构相辅相成的是容器化技术的发展。无论是Spring Cloud微服务体系还是Istio服务网格,容器化部署都已经成为主流,但Spring Cloud微服务体系可以不依托于容器化,而Istio服务网格则是搭建在容器化之上的上层建筑,这也说明微服务治理能力正在向基础设施层转移的。
而以Kubernetes容器编排平台为代表的容器化技术,已经实实在在的改变了服务端软件系统的发布和部署方式,成为当今服务端软件的标准运行环境。
03 要搞服务网格吗?
以Istio为代表的服务网格技术,进一步将微服务的治理能力与Kuberntes平台融为一体,使得微服务架构本身成为基础设施的一部分。而对于业务应用来说,开发方式上不仅更加简单,而且服务治理能力进一步得到加强。
但这种变化带来的问题是对运维Devops能力要求的显著提高,而普通研发人员则将进一步沦为“螺丝钉”。
但从公司的发展路径上看,前期一定是实现功能,这时候一套简单可用的微服务架构往往是最为迫切的。而以Istio为代表的服务网格由于其对运维Devops基础能力的要求较高,而这一条件往往是很多初创公司所不具备的,所以Istio服务网格虽好,但现阶段并不代表所有的公司都适合。
04 如何学习微服务架构?
前面简单和大家聊了下微服务架构的现状及发展方向,那么作为一名研发人员该如何学习微服务架构呢?
受限于具体的环境,很多研发人员因为所在公司及项目本身还是单体架构,因此对微服务架构及实施路径等基础逻辑都还缺乏理解,对于这样的朋友,建议先以实战项目的方式来全面学习下Spring Cloud微服务技术体系的内容。
而对于有过使用Spring Cloud微服务项目经验的朋友,如果在工作内容上只是局限于业务开发,那么可能对微服务架构下容器化、Devops等内容并不了解,那么应该从整体上学习下Spring Cloud微服务的容器化部署方式,以及CI/CD等内容。而这就涉及到对Kubernetes容器编排平台、Devops技术体系的学习。
但上述内容涉及的面是非常广的,对于经验和时间都相对有限的朋友来说,实在是难以一下子掌握。
那么有没有一本书能够全面涵盖Spring Cloud微服务架构体系所涉及的微服务治理、容器化部署、CI/CD,以及微服务监控体系等全方位技术内容,并能够将其以项目实战的形式呈现出来呢?
答案是有的!这便是作者所撰写的《微服务项目实战派——从Spring Boot到Spring Cloud》这本书。
在这本书中,作者通过对自己近10年工作实践经验的总结,以项目(案例均来自于真实项目)实战的形式将构建Spring Cloud微服务所需的绝大部分内容——包括微服务工程搭建、微服务网关、熔断限流、分布式任务调度、自动化CI/CD构建、Kubernetes容器化部署、微服务监控系统、分布式链路追踪等内容从基本原理到具体实践进行了全面的呈现。
所以,这本书非常适合希望快速提升项目经验的Java初学者、正在转型微服务架构的传统项目研发人员、希望提升Spring Cloud微服务全栈技术经验的高级开发人员。此外,对特定系统设计感兴趣的产品经理及研发人员也可以通过本书的学习来快速提升项目实战经验。
此外本书也得到了业界几位重量级人物的推荐,其中就包括著名开源软件SkyWalking的创始人@吴晟、ElasticJob的创始人@张亮。此外,还得到了知名技术博主@程序员小灰、@纯洁的微笑,以及集度汽车基础架构负责人@卢鹏先生的倾力推荐。
很高兴看到以前的同事兼好朋友出书。在这个互联网时代,Spring Cloud微服务体系是每一个Java程序员都需要掌握的技术。这本书融入了作者多年的一线开发经验,具有很大的实用价值,内容深入浅出,值得一读。
——魏梦舒 微信公众号“程序员小灰”运营者,《漫画算法》作者
本书从中国实践出发,介绍了微服务领域中Spring Cloud相关生态的实践。来自一线的实践经验,能够帮助大家更好地在生产中践行微服务,做好服务治理。我也很高兴看到Apache SkyWalking被列入其中,它可以帮助大家在生产环境下更好地实现应用性能管理(APM)。
——吴晟 Apache SkyWalking创始人,Apache软件基金会董事
本书结合作者多年累积的大量实战经验,并融入了微服务的经典理念,将互联网开发中常用的技术体系呈现出来,使读者可以更快地融会贯通。
我有幸写下书中介绍的开源框架ElasticJob的第一行代码,很高兴能看到它茁壮成长,成为互联网微服务技术选型的可行性方案之一。希望读者能够和以ElasticJob等为代表的开源项目共同成长,在职业生涯中迈向新的层次。
——张亮 SphereEx 创始人兼CEO,Apache ShardingSphere 项目主席
本书从项目实战的角度介绍了基于Spring Cloud的微服务体系,并通过微服务架构的改造实践,很好地演示了实现DevOps的基本思想、方法及步骤,有很强的实操性,能够使读者对DevOps有更具体的了解。
——卢鹏 集度汽车基础架构负责人,微服务架构组核心成员
在这个“一切皆微服务”的时代,Spring Cloud是Java程序员不能绕开的“一道坎儿”。从某种意义上说,Spring Cloud的出现大大提升了国内微服务的使用率。这本书实战性强,对于微服务开发者有着较强的借鉴作用。
——张强 微信公众号“纯洁的微笑”运营者
当然,虽然Spring Cloud微服务架构体系仍然会流行相当长的一段时间,但毕竟微服务架构的发展趋势也在朝着以Istio为代表的Service Mesh方向发展,因此对于学有余力的朋友还是建议可以了解下这方面的内容,同时也可以进一步加深自己对微服务架构的理解。对此,文末作者也推荐了几篇自己总结的关于Service Mesh的文章,感兴趣的朋友也可以关注下!
抽奖赠书
截止时间:2021年12月24日 17:00
如何抽奖:点击下方卡片,关注并回复关键词 :20211220