l 探讨设计云原生应用所需的技术
l 介绍容器和函数计算的区别,并学习它们的适用场景
l 有针对性地设计应用来满足数据相关的需求
l 学习DevOps的基础知识和一些开发、测试、运维实践
l 学习一些构建和管理云原生应用的技巧、方法和实践
l 理解构建一个具有可移植性的应用所需的代价,并且学会对需求做出取舍
前言第1章 云原生简介1.1 分布式系统1.1.1 分布式系统的误区1.1.2 CAP定理1.2 十二要素应用1.3 可用性和服务等级协议1.4 本章小结第2章 云原生基础2.1 容器2.1.1 容器隔离等级2.1.2 容器编排2.1.3 Kubernetes概述2.1.4 Kubernetes和容器2.2 无服务器架构2.3 函数计算2.4 从虚拟机到云原生2.4.1 提升和转变2.4.2 应用的现代化改造2.4.3 应用的优化2.5 微服务2.5.1 微服务架构的优势2.5.2 微服务架构带来的挑战2,6本章小结第3章 云原生应用的设计3.1 云原生应用的基础3.1.1 精益运营3.1.2 安全性3.1.3 可靠性与可用性3.1.4 可扩展性与成本3.2 云原生与传统架构的对比3.3 函数计算与服务3.3.1 函数计算的使用场景3.3.2 使用函数计算的考虑因素3.3.3 函数与服务的组合运用3.4 API设计与版本控制3.4.1 API的前后兼容3.4.2 语义版本号3.5 服务间的通信3.5.1 通信协议3.5.2 消息协议3.5.3 序列化的考虑因素3.5.4 幂等性3.5.5 请求与响应3.5.6 发布者与订阅者3.5.7 发布者/订阅者模式与请求/响应模式间的选择3.5.8 同步与异步……第4章 数据处理第5章 DevOps第6章 最佳实践第7章 可移植性
不同公司和行业的精神领袖常常会重述Watts Humphrey的观点:“任何企业最终都将变成一家软件企业。”他对形势的判断确实非常准确。软件正在冲击每个企业的现状,悄然改变着世界。Netflix彻底颠覆了我们收看电视和电影的习惯,Uber改变了运输业,而Airbnb正在挑战酒店业。这一切在几年前还是不可想象的,但现在各种创新企业正借助软件的力量渗透到各行各业中去,并为这些行业带来新的思维方式和商业模式。 前面提到的这几家公司常常被称为“诞生在云上的公司”,这句话的意思是这些公司的产品都是在各类云服务的基础上构建的。在云上构建这些服务使得公司能够快速响应市场,满足客户需求。云计算可以带来很多好处,比如可以快速更新和修改、易于使用新技术,并利用云端资源的集群优势来降低成本,改善经济效益。以云原生的方式构建的服务还可能带来新的商业模式。利用这些服务,公司可以重新审视现有的商业模式并考虑向新的业务模式转变,例如基于订阅的商业模式。我们通常把这类服务称为云原生应用。随着云原生应用的成功和普及,越来越多的企业开始采用云原生架构来开发软件,有些甚至把云原生的理念运用到了传统企业软件中。 容器、函数和数据是云原生应用的核心。对于这些特定的技术,已经有很多书去阐述了。云原生应用整合了所有这些技术,使得云计算的优势得到了充分发挥。作为作者,我们看到有很多人正努力尝试利用这些技术来设计和开发云原生应用,因此我们决定写这本书。其目的是提供一些基础知识,来帮助开发者和架构师更从容地开启云原生应用设计之旅。 本书一开始先讲基础知识,让读者了解一些分布式系统的基本原理及其与云原生应用的关系。然后再进一步介绍容器和函数等相关技术。接着,本书介绍服务间的通信模式、服务的弹性和数据模式,并讨论在什么情况下应该使用这些技术。最后,会总结一些经验性的东西,例如如何结合DevOps方法、如何兼顾可移植性,以及一些最佳实践。这些最佳实践对于打造一个成功的云原生应用是非常有帮助的。 这本书不会手把手教你如何实现一个满足特定业务需求的云原生应用。但是在读完这本书之后,你应该会知道如何去设计、构建和运维一个成功的云原生应用。在你去实现一些业务需求的时候,操作指南固然很有用,然而系统地理解云原生应用的基本原理和构建方法,才能使你的团队掌握打造成功的云原生应用的能力。