AIDevOps:智能微服务开发、运维原理与实践
上QQ阅读APP看书,第一时间看更新

前言

为什么要写这本书

随着RESTful和微服务等新服务技术不断涌现,服务软件已经从简单同构系统发展为环境开放、场景跨域、业务复杂的服务生态。例如Netflix的在线服务系统每天涉及50亿次服务调用,其中90%以上都是涉及微服务的内部调用;而Amazon.com每次页面构建需要进行100~150次微服务调用来实现。微服务的动态特性使情况进一步复杂化。一个微服务可以有几个到数千个物理实例,并运行在不同容器上由服务发现组件进行管理。针对新的服务适配要求,传统服务理论和技术已经难以实现海量异构服务之间的精准匹配、动态组合和耦合集成,需要研究智能服务适配理论和方法。

AIDevOps利用人工智能技术实现复杂服务软件的智能适配,解决了异构服务的智能匹配问题,以及服务演化和运行时的质量保障问题。在服务分析和设计方面,由于异构服务描述不精确、不一致,需要实现服务供需的精准匹配、按需组合、适应优化,从而保障服务适配的正确性。在服务版本演化和动态运行方面,由于服务版本众多、更新频繁、适配态势不断变化,需要及时感知态势、准确评估效能、自主可靠管理、保障服务适配质量。

我们希望通过本书系统地总结对智能服务适配理论和技术研究的思考与探索,为本领域的研究进展指出后续努力的方向。同时,我们也希望通过本书能够与有兴趣从事人工智能和服务计算领域交叉研究的科研工作者和企业技术人员分享相关的研发思路和经验,为正在学习本领域相关知识和工具的高校学生提供有价值的参考资料。

本书特色

目前,与微服务相关的大部分书籍偏重于介绍微服务的核心理念、基本架构、设计模式和开源工具等,旨在帮助人们掌握微服务开发和运维工具的使用方法,而对微服务技术相关的理论和算法研究较少涉及。同时,与智能运维相关的书籍则主要关注分布式系统的IT运维方法,侧重于基础设施和底层系统的可靠性管理和质量保障,对于面向应用层面微服务的智能运维讨论不多。

本书的基本写作思路是全面分析微服务开发和运维的核心问题,即复杂开放环境下海量异构微服务适配的挑战,并基于人工智能的最新研究成果,深入阐述智能微服务适配的理论模型、主要算法和相关开源工具,希望以理论联系实践的方式,帮助读者了解这个领域的总体面貌,并启发读者结合自己的研究和工作需要,深入地掌握和运用智能微服务适配的理论和方法。

本书介绍的研究工作主要针对“异构服务的智能匹配”和“服务演化和运行时的质量保障”两大科学问题:首先,讨论如何把不同来源、不同语义的服务,通过智能匹配,实现符合用户需求的服务功能;其次,讨论如何在服务运行状态下,实时感知服务运行的状况,智能化、适应性地实现微服务适配的动态决策,优化微服务适配性能,保障微服务适配的质量。

这两个科学问题实际上分别对应着微服务开发运维全周期的不同阶段,所需要的人工智能方法也往往明显不同。在这些阶段中,需要有机地结合相应的软件工具和人工智能模型,形成智能化微服务适配环境,支撑整个微服务开发运维周期。为此,本书把智能微服务适配划分为几个主要部分:分析设计、持续集成、持续部署、调度优化、监控运维等。每一部分都安排了相应的章节,综合论述相关的核心概念、技术框架、智能方法和典型实例,力图为读者呈现全景式的理论研讨和技术介绍。

读者对象

·微服务架构师

·微服务设计人员

·微服务产品人员

·微服务开发人员

·微服务运维人员

·人工智能研究人员

·其他对智能化微服务感兴趣的人员

如何阅读本书

本书从智能微服务的理论和实现角度给出了微服务架构下从用户端到运维端的全过程智能化方法和设计。全书整体分为两个部分,共七章。

第一部分内容涉及智能微服务的整体框架和基础设施,具体包括第1章和第2章:这两章主要阐述了智能化微服务的适用场景以及支撑智能化微服务的相关环境,给出了从感知、判断到决策执行的智能化微服务整体框架,提出了基于智能化方法的微服务双控制回路模型,并对学术界SOTA(State-Of-The-Art)以及工业界SOTP(State-Of-The-Practice)进行了详细阐述。通过阅读这两章,读者可以对智能微服务的基础设施有一个全面的了解。

第二部分介绍智能化微服务开发及运维技术。第3章从用户需求角度对服务流程自动适配进行了阐述。第4章将智能化技术引入持续集成(CI)过程,介绍了以GitLab为基础的微服务持续集成框架。第5章着重介绍了智能持续交付/部署(CD)技术,并以在Kubernetes和Istio社区广泛使用的应用程序Bookinfo为例,介绍了智能化持续部署方法。第6章从资源调度过程、调度性能检测优化和典型智能资源调度方案三个方面对微服务质量保障框架和智能调度技术进行了介绍。第7章从运维过程中的服务监控、服务故障检测和报警、服务的故障定位以及服务故障恢复等四个方面,介绍了面向微服务的智能运维相关技术。

本书各章的数据基础都建立在智能微服务的基础框架上,所以建议所有读者都要阅读第2章的内容;第3章到第7章是针对微服务开发及运维过程中的各个环节和任务展开的,因此读者可以根据自己的需求对这部分内容进行有针对性的阅读。如果你是一名初学者,建议在开始本书的阅读之前,提前进行微服务相关知识以及人工智能相关知识的学习。

勘误和支持

由于作者的水平有限,书中难免会出现一些错误或者表述不准确的地方,恳请读者批评指正。期待得到读者的反馈,让我们在微服务智能化道路上互勉共进!

致谢

本书的主要内容来自中华人民共和国科学技术部高技术研究发展中心国家重点研发计划“现代服务业共性关键技术研发及应用示范”重点专项“智能服务适配理论与关键技术”(项目编号:2018YFB1402800)的研究成果,同时内容的编写参考了微服务及人工智能领域大量先进的工业实践和研究成果,在此对本书写作提供帮助的单位和个人表示衷心的感谢!

感谢机械工业出版社对本书的重视,以及为本书出版所做的一切工作,使我们以较高的效率完成了本书的写作。

另外还需要感谢北京航空航天大学软件与开发环境国家重点实验室、湖南科技大学、中国科学院软件研究所、中国地质大学以及北京工业大学的老师和同学,他们帮助增添或改进了书中的内容。他们是(排名不分前后):冯埔、杨京波、李瑞、廖星创、彭天豪、覃雨晨、汪凌风、王洋洲、辛治旻、殷珂、杨开元、赵文佳、庄予彰、曹步清、彭咪、高赫然、许源佳、曾皓、张治宇、李怡、刘智敏、秦文豪、孙梦宇、张昊宸、刘博、李玉金、王名亮。

最后,我们要感谢家人,谢谢他们一直陪伴着我们。