Share E-Book
Scan to open this page

Scan with your phone to open this page

Author: [美] 鲍里斯·肖勒(Boris Scholl), [美] 特伦 特·斯旺森(Trent Swanson), [美] 彼得·加索维 奇(Peter Jausovec) 著

Rating No ratings yet

本书介绍了构建现代云原生应用的架构模块,包括如何使用微服务,容器,无服务器架构,函数计算等技术,并挑选合适的存储类型,同时考虑可移植性等问题。 l 探讨设计云原生应用所需的技术 l 介绍容器和函数计算的区别,并学习它们的适用场景 l 有针对性地设计应用来满足数据相关的需求 l 学习DevOps的基础知识和一些开发、测试、运维实践 l 学习一些构建和管理云原生应用的技巧、方法和实践 l 理解构建一个具有可移植性的应用所需的代价,并且学会对需求做出取舍

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

AI guide
【One-Line Pitch】 A practical architecture guide for developers and architects who need to design, build, and operate cloud-native applications using containers, serverless functions, and cloud data services—without being tied to one vendor's cookbook. 【Book Arc】 - **Opening (~0%–11%)**: Frames the shift from traditional servers to cloud-native thinking—distributed-system fallacies, the twelve-factor mindset, and why containers plus orchestration (Kubernetes) become the new baseline. - **Early (~11%–33%)**: Covers the core building blocks: microservices, containers vs. functions (FaaS), service communication, API compatibility, messaging protocols (MQTT/AMQP), pub/sub, and gateways for ingress/egress traffic control. - **Middle (~33%–56%)**: Turns to data: object/file/block storage choices, change data capture, GraphQL data services, CDN caching, data lakes vs. warehouses, and running stateful systems on Kubernetes. - **Late (~56%–78%)**: Moves into DevOps practice—test pyramids, local-to-remote development workflows, slim container images, observability with Prometheus/Grafana, health/readiness probes, and configuration via ConfigMaps. - **Ending (~78%–100%)**: Closes with migration patterns (strangler/anti-corruption layer), security and shared responsibility, scaling stateless services, deployment hygiene, and the real trade-offs of portability across clouds. 【Key Takeaways】 - **Cloud-native design starts with distributed-system realities** (Opening): network unreliability, latency, and partial failure must shape architecture from day one, not be patched later. - **Containers and functions solve different problems** (Early): containers suit long-running, stateful-ish services; FaaS suits event-driven, short-lived work—but FaaS cost and network overhead can surprise you. - **Loose coupling via messaging is a first-class pattern** (Early): pub/sub, MQTT, and AMQP enable event-driven designs; choose based on simplicity vs. feature richness and vendor compatibility. - **Data storage is a design decision, not an afterthought** (Middle): object storage is the default for files; file and block storage cost more; change data streams let you sync search indexes, analytics, and legacy systems. - **Testing follows a pyramid, and testability drives design** (Late): unit tests with mocks, service-level tests, and minimal UI tests; if mocking is hard, refactor the code. - **Small images and small deployments reduce risk** (Late): multi-stage builds and slim base images shrink attack surface and speed up scaling; keep functions single-purpose. - **Observability must be prepared before release** (Late): define health/liveness/readiness endpoints and a small metric set with rollback rules before routing production traffic. - **Portability has a price** (Ending): standards like OpenAPI, SMI, and MongoDB-compatible APIs help, but you may lose vendor-specific features and pay for third-party services separately. 【Reading Tips】 - Deep-read Chapters 2–3 for containers, orchestration, and service communication—these are the conceptual spine. - Skim the data chapter if you already know storage tiers; focus instead on change data capture and GraphQL sections. - Treat the DevOps and observability chapters as a checklist to apply to your own pipeline, not just theory. - The portability chapter is best read last, after you understand the trade-offs of the earlier patterns. 【Coverage Limits】 This guide is based on stratified excerpts covering roughly the first through final chapters; some mid-book details on specific cloud provider services and code examples are not fully represented.
Excerpt 1
书名: 云原生:运用容器、函数计算和数据构建下一代应用 ([美] 鲍里斯·肖勒(Boris Scholl) etc.) (Z-Library) 作者: [美] 鲍里斯·肖勒(Boris Scholl), [美] 特伦 特·斯旺森(Trent Swanson), [美] 彼得·加索维 奇(Peter Jausove...
View in text
Excerpt 2
以使应用从故障中 恢复。如前面介绍的那样,微服务架构中每个服务都是独立的,当某 个服务发生故障时,不会导致整个应用故障。对于服务本身而言,你 应当考虑通过水平扩展来提高整个系统的可用性。比如说,一个应用 程序的所有服务都有两个实例在运行,那么无论什么原因导致某个服 务的一个实例失效,整个系统还可以继续工作,这样就...
View in text
Excerpt 3
,可能会有对当前状态进行归档的需求。这个归档 数据很少被访问到,因此它更适合存储在成本较低的存储系统中。 历史遗留系统 替换一个历史遗留系统有时会要求把数据存放到多个存储中。数 据更改的数据流可以用来更新遗留系统中的数据。 在图4-2中,我们看到一个应用程序正在往数据库中写入一个更 改。然后这个更改被计入了更改日...
View in text
Excerpt 4
元测试来解决。在做单元测试时,通常需要模拟和伪造来解决依 赖关系,以便为运行单元测试用例创造条件。比如你现在要为登录服 务编写单元测试,这时候你不需要使用真实的授权服务。你可能还想 测试在授权服务不可用时的情形,或者你想测试无法登录或用户不存 在的情况,类似这些情况下你都需要用到模拟和伪造。 如果你使用模拟服务代...
View in text
Excerpt 5
的服务定义存活性探针。 livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 5 periodSeconds: 3 通过这段代码,你告诉Kubernetes平台在第一次开始检查前先等 待5秒钟,然后每3秒钟做一次检查。如果/h...
View in text
Excerpt 6
er API)是标准接口的另 一个示例,平台可以使用它通过Kubernetes这样的平台来创建和管理 云服务商的资源。 服务网格接口(Service Mesh Interface,SMI)定义了一个接 口,你可以使用该接口来实现多种服务网格技术间的互通性,比如 Istio、Consul和Linkerd等不同的服务...
View in text
Tags
AI categories
Cloud NativeDevOpsSoftware
ISBN: 7111653246
Publish Year: 2020
Language: Chinese
Pages: 197
File Format: PDF
File Size: 2.2 MB
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Generating text preview…