写在前面的话
两年前,我与我的一些同事谈起微服务时,有很多人对微服务还不甚了解,而部分有所了解的人对其持观望的态度,现在,微服务架构已经成为一家公司技术是否先进、是否具有规模发展的标杆配置。
在这个到处充满着云计算、大数据、AI智能的时代,如果开发的应用不能容易地上云,那必定是落后的。云原生,是当前技术的一个流行语,简单来说,就是面向云的应用设计和开发。微服务不但是云原生的一个基本内容,也是实现云原生的一个“得力干将”。可以这么说,谈起云原生,没有微服务是不行的。当然,云原生不仅仅指微服务。微服务这种分布式的架构设计,正是建设云原生体系的基础。
其实说到底,所有这些很“新潮”的概念中,分布式占据着很大的份量,但它并不是一个新概念。区块链之所以能够发展神速并得到大家的推祟,其本质之一就是使用了分布式存储技术。
有人认为微服务也不是一个新东西,它其实就是一种分布式的架构设计。确实,微服务就是一种分布式架构的设计方法。但是,在微服务概念还没有出现之前,为什么分布式这个概念并不能引起人们的强烈关注呢?甚至现在也一样,如果说自己擅长分布式架构设计,可能没有多少人理你,但如果说自己精于微服务架构设计,情况那就大不一样了。
微服务可以缓解程序员的压力,提高开发效率,加速迭代的过程,是最适合敏捷开发的方法。另外,微服务能够快速响应需求的变化、能够分布式发布,最适合于云计算部署、实现弹性伸缩控制,以及满足无限扩展的业务需求,所以,微服务能够创建一个“打不垮”的系统。
微服务虽然有很多实现技术,如Service Comb、Service Mesh,等等,但是,Spring Cloud还是独占鳌头、独领风骚。因为Spring Cloud提供了服务治理、负载均衡、动态路由、轻量调用、降级调用和故障转移等一系列机制,使微服务从开发到运维管理都变得更加容易管控和实现。而且,Spring Cloud及其整个框架体系,如Spring MVC、Spring Boot等都是开放式的开源框架,所以其第三方支持也相当丰富,这是一个庞大的微服务技术生态体系。因此,微服务使用Docker引擎,使用Kubernetes部署工具,使用Jenkins自动构建工具,也就得心应手,水到渠成了。而使用微服务架构设计的系统,在进行CI/CD,即持续交付与持续集成的过程中,在DevOps的管理机制中,均能发挥它的独特优势。
想想看,在我们按产品需求进行一系列的设计和开发,或者说由市场部门提出了一个新的需求或变更之后,开发人员只需完成代码的实施与验证并提交,接下来的测试和部署流程就可以全部实现自动管理,这是一件多么激动人心的事情啊!
再说服务器压力,微服务不但有服务降级机制,还有自动负载均衡管理机制。更为甚者,如果我们的服务器资源充足,还可以设定自动弹性伸缩管理机制,由访问压力自动控制微服务部署的规模。
所以,我是带着一种非常喜悦的心情完成《Spring Cloud微服务架构实战》这本书写作的。我与众多读者一样,期待这本书能够早日出版,让我们一起在未来的设计和开发工作中,更加愉快地工作,创造更加激动人心的未来。
陈韶健
2019/12/30
于深圳罗湖图书馆