前言
本书介绍云环境下的解决方案架构和下一代架构设计,引导读者创建健壮、可伸缩、高可用且容错的解决方案。本书首先阐述对解决方案架构的理解,以及它如何适应敏捷的企业环境。通过介绍关于设计理念、高级设计模式、反模式以及现代软件设计的云原生方面的详细知识,带领读者完成解决方案架构设计的历程。
本书对安全性、基础设施、DevOps、灾难恢复的自动化以及解决方案架构的文档等方面均提供了深刻的解释。读者可以深入探究解决方案设计中的性能优化、安全性、合规性、可靠性、成本优化和卓越运维。此外,读者还将了解云平台(如Amazon Web Services(AWS))中的各种架构设计,以及如何最好地利用云平台来满足解决方案设计、现代化和迁移的需求。
本书还阐述了面向未来的架构设计与数据工程、机器学习和物联网(Internet of Things,IoT)的联系。此外,本书还将提供软技能方面的知识,帮助你提升解决方案架构技能和持续学习技巧。读完本书后,你将获得成为解决方案架构师所必备的技能,开启职业生涯的新篇章。
目标读者
本书适合从事IT行业的软件开发人员、系统工程师、DevOps工程师、架构师和团队负责人,以及有志于成为解决方案架构师并热衷于设计安全、可靠、高性能和高性价比的架构的人阅读。
本书涵盖的内容
第1章主要定义解决方案架构并解释其重要性。本章诠释了采用解决方案架构的各种益处,并探讨了在公有云上的架构设计。
第2章讲述不同类型的解决方案架构师角色,以及他们如何融入组织结构。本章详细探讨了解决方案架构师的各种职责,并进一步说明了解决方案架构师在敏捷组织中的作用及如何与敏捷流程相适应。
第3章揭示解决方案架构的各种属性,如可伸缩性、韧性、灾难恢复、可访问性、可用性、安全性和成本。本章解释了这些架构属性的共存和使用原则,以创建高效的解决方案设计。
第4章讲述创建可伸缩、韧性和高性能架构的设计原则。本章通过应用安全性、克服约束、应用变更以及测试和自动化方法解释了什么是有效的架构设计,并通过探索面向服务的架构和采取数据驱动的方法来研究架构原则,从而有效地使用设计思维。
第5章解释云的优势和设计云原生架构的方法。本章阐述了对于不同云迁移策略和迁移步骤的理解,讨论了混合云设计,并探讨了受欢迎的公有云供应商。
第6章通过实例探讨各种架构设计模式,如分层、微服务、事件驱动、基于队列、无服务器、基于缓存和面向服务等模式。本章展示了解决方案架构属性和原则的适用性,以根据业务需求设计最佳架构,并解释了AWS云平台中的各种参考架构。
第7章阐述应用程序性能提升的关键属性,如延迟、吞吐量和并发性。本章解释了在多个架构层级提高性能的各种技术选型,包括计算、存储、数据库和网络,以及性能监控。
第8章讨论适用于保护工作负载安全的各种设计原则。安全性需要应用于架构的每一层和每一个组件,本章有助于了解正确的技术选型,以确保架构的每一层级都是安全的。本章探讨了适用于架构设计的行业合规性准则,并通过共享安全责任模型解释了云中的安全问题。
第9章对促使架构可靠的设计原则进行讨论。本章探讨了各种用于确保应用程序的高可用性的灾难恢复技术,以及用于业务流程连续性的数据复制方法,解释了最佳实践和云在应用程序中实现可靠性的作用。
第10章论述在应用程序中实现卓越运维的各种流程和方法。本章解释了适用于应用程序设计、实现和后期生产全流程的最佳实践和技术选型,以提高应用程序的可运维性,还探讨了云工作负载的卓越运维。
第11章讨论在不影响业务敏捷性的情况下优化成本的各种技术。本章解释了用于监控成本和成本控制治理的多种方法,有助于读者理解云服务使用的成本优化。
第12章解释DevOps在应用程序部署、测试和安全方面的重要性。本章探讨了DevSecOps及其在应用程序的持续部署和交付流程中的作用,讲述了DevOps的最佳实践以及实现这些实践的工具和技术。
第13章讲述如何设计大数据和分析架构。本章概述了创建大数据流水线的步骤,包括数据摄取、存储、处理和可视化,帮助读者理解物联网所涉及的概念和技术,本章还探讨了有关机器学习、模型评估技术的详细信息,并对各种机器学习算法进行了概述。
第14章讲述遗留系统的各种挑战和现代化驱动因素。本章解释了对遗留系统进行现代化改造的策略和技术。对许多组织来说,使用公有云正在成为首选策略,因此本章还探讨了遗留系统的云迁移。
第15章讨论解决方案架构文档及其结构以及所需的各种细节。本章研究了各种IT采购文档(解决方案架构师需要参与其中以提供反馈)。
第16章讲述胜任解决方案架构师所必需的各种软技能,有助于读者了解如何获得战略技能(如售前和高层沟通)、发展设计思维以及个人领导技能(如大局观和主人翁意识)。本章探讨了将自己打造成领导者并不断拓展自身技能的技巧。
充分利用这本书
有一定软件架构设计经验将有助于你读懂本书。但是,理解本书并不需要特殊的先决条件。各个章节中贯穿了详尽的实例和相关说明。本书将带你深入理解解决方案架构设计的深层概念,你不需要具备任何特定编程语言、框架或工具的知识。
下载彩色图像
本书中屏幕截图或图表的彩色图像可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
排版约定
本书中使用了一些排版约定。
代码体:表示文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。例如,“你可以在传输和静止时应用数据加密。当推送到代码存储库(git push)时,它会对数据进行加密,然后将其存储。当从存储库提取(git pull)时,它会解密数据,然后将数据发回给调用者。”
粗体:表示新术语、重要词语或屏幕上显示的内容。例如,菜单或对话框中的词语会以粗体出现在文中。例如,“Jenkin Master在超载的情况下,会将构建分配到从属节点实例。”
表示警告或重要说明。
表示提示和技巧。