十年前的云计算是以资源为中心的,而现在(2024 年),云计算是以应用为中心的。
本书分为 8 章,重点讲解云上应用的功能性设计、高可用设计、高并发设计、安全设计及可运维设计,介绍如何通过应用设计充分释放云平台的技术红利,快速实现业务构建。希望本书能为云计算领域的从业者提供一个清晰的方向,通过分享经验与方法帮助他们更好地探索、设计并优化应用,以更高效地应对不断变化的市场需求和技术挑战。
★涵盖应用上云所有的必会知识点,全面、细致、丰富、前沿。
★全书提供多个实操级案例,源自真实场景,具有可复用性。
★通过应用上云的全流程设计,揭示架构师成长的三个阶段。
大部分人更关心如何在股市投资上成功,查理·芒格最关心的却是为什么在股市投资上大部分人都失败了。这是《穷查理宝典》中关于芒格思维的大致刻画。
在芒格漫长的一生中,他持续不断地收集并研究各种各样的失败案例,并把失败的原因总结成做出正确决策前的检查清单,这使他在人生、事业的决策上几乎从不犯重大错误。我们对云上应用的设计也应如此,需要通过对各类故障进行分析,获得架构设计最佳实践这里的最佳指的是犯最少的错误。
笔者还记得自己刚刚接手上云迁移业务时,有一个重要客户的线上商城应用上线仅仅 5 秒,就因为大量用户的争相访问及黄牛抢票软件的疯狂刷票而变得不可用。笔者当时就在想,要是有一本书,可以体系化地介绍在应用上云过程中需要考虑的方方面面,并且能结合实际案例把这些说清楚,就太好了!于是,笔者萌生了撰写本书的想法。
在后续的工作中,随着帮助越来越多的客户将原先的传统应用迁移上云,笔者逐步积累了云上应用知识体系,并且慢慢接触到了应用上云的各种案例固然有许多通过应用上云改造支撑海量用户的正面案例,但更多的是反面案例因为在应用上云的设计或流程上没有做到位。通过对各种反面案例进行分析,我们能够更好地设计和优化云上应用,使其满足高可用、高并发、安全和可运维的要求。
有了ChatGPT后,还有没有必要读书
在撰写本书期间,以ChatGPT为首的大语言模型逐步兴起,它们对世界知识的概括和抽象使人们逐渐产生一个疑问:有了ChatGPT后,还有没有必要读书?人们可以便捷地通过提问从大语言模型中获取任何需要的知识,那读书还有什么意义?
笔者在实际使用大语言模型的过程中发现,大语言模型的确可以快速、准确地给出我们需要的知识点,但对于应用上云改造这样的领域,大家真正需要的不是一个个知识点,而是一套完整的知识体系,这样的知识体系是ChatGPT远远无法给出的。读者在工作中遇到相关问题时,可以通过查询知识体系在诸多方案中选择最合适的解决方案,从全局的视角给出最优解。而大语言模型更多地基于关键词提问得出局部最合适的答案。
总结出完整的上云知识体系也是笔者撰写本书的一大初衷。结合这套知识体系和大语言模型的知识抽象能力、检索能力,笔者希望可以快速帮助读者在今后的应用上云工作中解决实际的问题。有了 ChatGPT后,我们其实更需要去阅读那些体系化的图书,为自己构建领域知识体系,方便后续更好地使用ChatGPT。希望大家明确结构比内容更重要。
如何理解应用架构设计
对应用架构设计的讲解往往是一大难点。如果单纯地讲解理论知识,则会显得非常枯燥乏味,读者也很难将其与实际工作相结合。同时,读者往往觉得架构是过于抽象甚至有些缥缈的概念,听着好像懂了,但遇到实际问题时还是手足无措。
其实,应用架构设计有点儿像老子所说的道可道,非常道。笔者无法直接把观点灌输给读者,而需要读者通过实际的场景自行理解、领悟。这也是为什么笔者花费了大量的精力为本书搜集和整理了众多实际案例。笔者希望通过实际案例带领读者进入当时的场景,通过对实际案例的分析更进一步地巩固那些体系化的知识点。当然,为了避免纠纷,本书对实际案例做了脱敏处理。
架构师在日常工作中的真正价值是什么
其实本书所写的是云上应用的理想国,在现实中,它的实现难度非常大,而且需要各方面资源的配合很多真正需要这种先进架构的应用都面临着各种历史遗留问题,还有大量的应用并不需要先进、全面的架构,而只需要做好某些基础设计即可。基于此,为架构设计做最适合的选择,正是架构师真正价值的体现。
笔者觉得架构师的成长分为三个阶段。
(1)刚开始的第一阶段,积累了某些技术的理论知识和实操经验,并且可以就这些技术点及案例进行分享,也就是所谓的见而识之。
(2)随着工作中的逐步积累,架构师逐步进入第二阶段,形成了体系化的技术框架。如果拿医生做比喻,那么这个阶段的架构师仿佛拥有了自己的医书。但架构师实际需要解决的病患问题千差万别,医书只能指明最终目标。
(3)处于第三阶段的优秀架构师会因为其更了解业务且更有经验,而能够厘清从现状到最终目标的最佳路径。一个经历过实际项目锤炼的架构师,还有能力将路径分拆为多个里程碑,并且为每个里程碑设定具体的验收指标,量化控制进程。
大部分技术人员经常会听到某些架构师说应用应该这样、应该那样,听的时候觉得他们说的都对,但有些东西又说不上哪里别扭。其实这就是典型的处于第二阶段的架构师给人的感觉,他们累积了一定的技术体系,形成了自己的医书,但由于缺乏实际的操作经验,所以不知道通往理想架构的路径是什么样的,也就是我们常说的不接地气。优秀的架构师有点儿像经验丰富的主治医生,他们能弥合现实与理想的缝隙,找到通往成功的最佳路径,平衡效能和成本。
请读者们始终记住:最适合的架构才是最好的架构,好的医生比好的医书更重要。
贺阮
攻读博士期间的主要研究方向是云计算安全。曾先后任OpenStack基金会董事、ISO/IEC JTC1/SC38和ISO/IEC JTC1/SC27标样委员会委员、联合国国际电信联盟(ITU)云计算安全组副报告人,以及多个云计算学术会议、期刊编辑等职位,从各个维度见证了云计算行业的发展。
史冰迪
2015年毕业于中央财经大学计算机科学与技术专业,现任职于中国信息通信研究院,从事政务信息化项目管理工作,从另一个方向继续在政务信息化方向发力,不断努力将电子政务、数字政府等工作与各类新技术结合。
陆佳亮
上海交通大学巴黎卓越工程师学院副院长,上海市科学技术委员会入库评审专家,承担国家自然科学基金、上海市创新行动科研项目等重大项目。主要研究方向是人工智能赋能、云计算、大数据系统。