| 作者: | Lee Atchison |
| 语言: | 英文 |
| 出版年份: | 2020 |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Architecting for Scale: How to Maintain High Availability and Manage Risk in the Cloud》第二版是Lee Atchison于2020年出版的实用指南,专注于帮助企业在云时代构建和维护高可用性、可扩展的系统。作者基于在Amazon(零售和AWS部门)和New Relic的丰富经验,提供了经过实战检验的方法和最佳实践,帮助工程和运营团队应对应用增长带来的复杂性、流量增加和可用性挑战。本书特别关注现代架构范式如微服务、云计算和SaaS应用,为架构师、经理和总监提供了构建能够处理巨大流量、数据和需求的系统的实用技术。
本书围绕构建可扩展系统的五个核心理念组织内容,每个理念对应一个部分:
第一部分:可用性 - 维护现代应用的高可用性 这一部分奠定了全书的基础,强调没有高可用性,扩展就毫无意义。第一章《理解、测量和改进可用性》深入探讨了可用性的重要性,区分了可用性和可靠性的概念。可用性指系统在需要时能够运行的能力,而可靠性指系统正确执行操作的能力。作者通过"大游戏停电"的生动例子说明客户对100%可用性的期望。书中详细介绍了如何测量可用性(使用"九"的度量标准),分析了导致可用性差的原因(资源耗尽、计划外负载变化、移动部件增加、外部依赖、技术债务等),并提供了改进可用性的具体策略。第二章《两个错误的容错空间》探讨了如何设计系统以从错误中恢复,强调构建具有容错能力的架构。
第二部分:现代应用架构 - 使用服务 这一部分倡导从单体应用转向基于服务的架构。第三章《使用服务》详细讨论了服务化架构的优势,包括更好的可扩展性、团队独立性和部署灵活性。作者澄清了"服务"和"微服务"术语的争议,指出两者本质相同,强调服务大小应根据上下文决定。第四章《服务和数据》探讨了在服务化架构中管理数据的挑战,包括数据所有权、一致性和跨服务数据访问。第五章《处理服务故障》提供了处理服务失败的具体策略,包括超时、重试、熔断器和降级模式。
第三部分:组织 - 为现代应用扩展组织 这一部分强调组织结构和文化对系统可扩展性的重要性。第六章《服务所有权 - STOSA》介绍了服务团队所有权模型(Service Team Ownership and Service Accountability),确保每个服务都有明确的负责人。第七章《服务层级》将服务分为不同层级(如Tier 1、Tier 2、Tier 3),根据业务重要性分配不同的可用性要求和资源。第八章《服务水平协议》详细讨论了如何定义、测量和强制执行SLA,包括SLO(服务水平目标)和SLI(服务水平指标)的概念。
第四部分:风险 - 现代应用的风险管理 这一部分承认所有复杂系统都有固有风险,重点是如何管理风险。第九章《在架构扩展时使用风险管理》介绍了风险矩阵等工具,用于识别、评估和优先处理风险。第十章《游戏日》描述了通过模拟故障场景来测试系统弹性的实践。第十一章《构建风险降低的系统》提供了减少系统风险的具体技术,包括冗余设计、故障隔离和渐进式部署。
第五部分:云 - 利用云计算 这一部分是第二版的重要更新,深入探讨了云计算在可扩展架构中的作用。第十二章《开始使用云进行架构扩展》提供了云迁移的入门指南。第十三章《云改变的五个行业趋势》分析了云计算如何改变应用开发、部署和运维。第十四章《SaaS类型和租户模式》讨论了多租户架构的挑战和解决方案。第十五章《在AWS云中分布应用》提供了在AWS中设计分布式系统的具体指导。第十六章《托管基础设施》探讨了使用托管服务(如数据库即服务、容器服务)的优势和考虑因素。第十七章《云资源分配》讨论了动态资源分配和自动扩展策略。第十八章《无服务器和函数即服务》深入探讨了无服务器架构的优缺点。第十九章《边缘计算》分析了边缘计算在降低延迟和提高性能方面的作用。第二十章《地理因素对使用云的影响》讨论了地理分布、数据主权和合规性考虑。
本书适合以下几类读者:
本书的核心价值在于它提供了一个全面的框架,将技术架构、组织文化和云计算实践结合起来,帮助企业在快速增长的同时保持系统的高可用性和可靠性。