- 云端架构:基于云平台的41种可复用的架构最佳实践
- 吕昭波
- 3691字
- 2022-05-06 15:10:26
前言
0.1 关于梦想
笔者在大学生涯刚开始的第二天就策划创建学校英语社团,并起了一个有梦想的名字——“梦想之星”英语社,到现在已经过去15年了。然后便通过一次次ACM竞赛和活动来追逐自己心中的梦想。
大学毕业后刚开始工作时,笔者就梦想着通过代码来改变世界,当时也正赶上“千团大战”,再加上Facebook和六度空间理论,也尝试了基于大学校园、基于三四线城市的本地社交平台。再往后笔者拼命地转型学习云计算,并推出了云计算在线动手实验平台“梦想学院”,正是因为这些,笔者拿到了UCloud的Offer,虽然还没有通过代码改变世界,但改变了自己的认知。
笔者历经解决方案架构师、培训师等岗位,通过培训、动手实验来为技术布道,通过架构设计来解决用户项目中的技术问题。这要求笔者不断学习新的技术、新的行业场景、新的架构设计方法论并提炼云计算最佳实践,为用户、开发者、大学生及内部员工普及技术,为IT行业的知识传播、技术演进贡献自己的力量,他们有所收获便是笔者的梦想。
接下来笔者还需要继续学习,不断提升自己,提炼总结,再进行分享。
0.2 关于云计算架构
提及云,想必大家已不陌生,云已在各行各业中落地。在分析不同行业业务场景的案例和解决方案时,可以发现在技术痛点、业务需求、技术解决方案上很多都大同小异。纵观云服务商的解决方案,一般分为行业解决方案、技术或通用解决方案,行业解决方案会按照新零售、金融、政务、医疗健康、教育等行业进行划分,每个行业中又分为不同的子行业或场景,这些是带有行业属性的。例如,新零售行业遇到的经典场景是“双11”等大促带来的业务流量高峰,需要保证业务持续可用;游戏行业业务重点考虑服务器与玩家之间的网络质量及体验友好度。业务连续性、数据可靠性、系统可扩展性、数据安全是系统架构设计永恒的话题,这些技术解决方案结合业务场景就是行业解决方案。
在缤纷的行业场景和案例中,我们抽丝剥茧探究通用的技术解决方案,其中并非无章可循,云架构设计围绕6大原则:合理部署、业务持续、弹性扩展、性能效率、安全合规、持续运营。这6大原则适用于传统业务架构,也适用于互联网等各个行业。在云端如何围绕这些设计原则展开架构设计呢?我们通过整理各行业在云端的落地案例、解决方案,提炼了41种架构设计模式。
从另一个角度,我们有了架构设计模式,就可以像积木模块一样将其灵活组合成架构的“拼图”,就像一味味中草药可以组成大夫的药单来医治百病。因此,在本书中将会用大量篇幅来介绍这41种架构设计模式,当然这些架构设计模式也是围绕云架构设计的6大原则展开的。
设计模式这个词广泛应用于IT领域,其更早的来源是建筑领域的通用设计方法论的总结。其实重要的不是设计模式的名称,而是提出的对同一领域的问题提供可复用的解决方案的设计思路。本书提供了架构设计模式,也希望读者能结合自己的学习、工作场景来总结适合自己的可复用的架构设计模式。
0.3 本书的内容组成
本书共三篇。
第一篇重点介绍云计算体系、设计模式及架构设计方法,引入MumuLab作为示例项目来实践。
第1章从5层架构的云计算架构体系开始介绍云计算,从云计算的优势来分析其给我们带来的思维变革,最后介绍云计算架构的设计流程和6大设计原则。
第2章介绍本书中配套的实践项目MumuLab,我们可以通过这个平台在线学习架构设计模式,还可以将其作为动手练习的项目,因此有必要了解MumuLab平台的功能和设计初衷。
第二篇包括开篇的设计模式全景图及围绕6大设计原则展开的41种架构设计模式。
第3章介绍了设计模式之间的关系并构建了设计模式全景图,提出了架构设计过程中的最佳实践与坏味道。
第4章介绍合理部署,包括公有云、私有化、混合架构、全球部署、多云部署5种类型。
第5章介绍业务持续的设计中需要考虑可用性、可靠性,以及业务与数据的可恢复性。
第6章围绕弹性扩展展开介绍,介绍如何实现数据访问与存储的动静分离、组件之间的解耦,介绍云主机、数据库、私有化部署的扩展能力,也介绍了通过迁移实现扩展的方案,最后通过流量转发及全局负载均衡将业务负载分发到各个解耦的组件中。
第7章围绕提升性能效率展开介绍,包括提升计算性能,通过Redis、CDN等缓存技术实现访问加速、网络优化,选择最优部署地域拉近最终用户与业务之间的距离、降低网络延迟,通过应用性能管理对当前业务系统进行性能检测。
第8章围绕安全合规展开介绍,介绍了不可忽略的账号与权限的管理、对应用和资源的访问控制,在架构设计之初就考虑等保测评、满足合规要求等会事半功倍,还从终端安全、数据安全、网络安全、应用安全、审计合规等模块逐一介绍如何应对不同类型的安全风险。
第9章围绕持续运营展开介绍,汇总了云服务等级协议SLA、云监控告警、成本优化等内容,也包含了对冷热数据分层处理和数据开放及隐私计算的介绍,通过持续运营定期巡检、评估、复盘来保证业务架构持续满足变化的业务需求,保持良好的架构设计。
第三篇包括应用、评估、总结与展望。
第10章从新零售行业、游戏行业、传统行业介绍了三类应用场景,并尝试通过设计模式灵活组合的方式来构建解决方案。
第11章介绍了架构评估与重构的时机,随后展开介绍了如何进行适用性评估、成熟度评估、健壮性评估。
第12章对本书进行概要总结,从个人角度对云计算的发展进行展望。
0.4 阅读指引
本书涵盖41种架构设计模式、MumuLab平台完整案例、3个行业解决方案案例,读者可以根据需要选择不同的阅读顺序。
本书介绍了公有云部署、具备可扩展性、实现基础高可用及数据备份、缓存加速、性能优化及高并发、存储周期及分析、安全、高可用进阶、私有+混合、全球化、持续运营优化。
路径一:对云计算产品、场景还不太熟悉,建议按照章节顺序阅读,先了解云业务架构设计的概况,再通过真实案例分析MumuLab有哪些需求,在云平台中如何解决,第4章至第9章将会详细介绍每种设计模式,在第10章的行业场景案例中进行练习,将设计模式应用到实际工作的不同行业场景中。
路径二:对云计算产品已经比较熟悉,建议从第3章开始阅读,先全览设计模式,再详细阅读第4章至第9章的每种设计模式,最后阅读第2章的完整案例和第10章的行业延伸案例。
路径三:如果你打算从行业切入,则可以选择新零售等互联网应用、游戏等跨地区的业务、传统业务数字化转型、创新创业平台,找到比较接近的行业和方案,直接跳转到第10章的具体行业场景案例进行阅读,每个行业的需求和痛点不同,提供的解决方案也不同,之后再通过浏览MumuLab完整案例进行设计模式全景图的补充。
路径四:按照业务系统部署、设计阶段,先考虑如何部署系统,再考虑可用性、扩展性、性能、安全、可持续运营等,按照阶段进行架构的迭代设计和螺旋式架构演进。
0.5 使用MumuLab项目进行练习与实践
完成实验
如前面所述,MumuLab平台项目会贯穿全书,每章节中的应用案例都来自该项目。在应用案例和动手实验环节中,重点是实践解决方案的实现过程,可以忽略不同云平台的差异及项目中的代码语言和框架。每章节中的动手实验环节均可实际操作,如有问题,可以通过平台进行留言或通过邮箱进行交流。
在实现具体实验时可能会遇到问题,这时可以回顾一下设计模式全景图,从全局角度上概览整个项目所涉及的业务痛点及解决方案的演变过程。
“刷题”式练习
如果是用碎片化的时间阅读本书,可以逐个完成实验并在MumuLab平台中进行提交,提交后可以获得实验积分。通过积分可以兑换一些礼品,通过这些方式让你与其他读者一起进步,带给你“陪伴式”学习的感受。
MumuLab平台不仅是贯穿本书的实践项目,还是用来承载本书实验、解答、提交实验结果、竞赛的平台,这也使得平时训练的项目就是正在运行的线上平台,不至于模拟一个只可看不可练的示例平台。
MumuLab 链接:请通过“读者服务”获取。
0.6 致谢及联系我们
每一位当下的梦想者都在信息化与数字化浪潮中推动技术创新、技术应用、知识普及,笔者能够在这创新时代的浪潮中追逐梦想,深感荣幸。感谢UCloud提供了良好的学习与锻炼的平台,感谢UCloud启云学院的各位讲师、学员在多次培训交流过程中的灵感碰撞、经验沉淀、最佳实践的提炼。感谢身边的朋友一直以来的帮助和鼓励,笔者受益匪浅。
感谢刘华、张悦兰、王彬、何梦君、郭凯、王威武、李诗萌、黄玲利、赵娜、张薇、左冬冬、魏宾宾、刘坚君、高亮、周恭元、薛翎军、沈晓勇等同事和朋友参与本书内容的讨论和修订,经过多次沟通与修订,尽可能让书稿中的错误更少。
感谢妻子刘宁对笔者梦想的理解和支持,在笔者编写本书的过程中细心照顾家庭,为笔者挤出了大量时间,在整个过程中不厌其烦地聆听书稿一点一滴的进展和一次次编写思路的优化更新,同时参与了部分公式的设计和部分章节的文字核对。还要感谢宝贝儿子沐然、沐橦,他们的每个微笑和可爱瞬间都让笔者的疲劳瞬间消散,也是笔者努力的动力所在。感谢父母的养育之恩,无论是“千里之行始于足下”的理念熏陶,还是无条件的信任、关心、鼓励,都让笔者能够勇敢追梦。有了你们的支持,笔者追逐梦想的信念更加坚定、脚步更加踏实!
笔者尽力修订了书中的内容,但难免有疏漏之处,烦请读者批评指正,谢谢!
微信订阅号:沐然云计算。
读者服务
微信扫码回复:42820
●获取本书实践网站、思维导图、参考资料等资源
●加入本书读者交流群,与作者互动
●获取【百场业界大咖直播合集】(持续更新),仅需1元