diff --git a/architecture/architect.md b/architecture/architect.md index ec0ae84c..4ddd440a 100644 --- a/architecture/architect.md +++ b/architecture/architect.md @@ -19,11 +19,11 @@ 10. 应用开发:Nocalhost。 -行文至此,云原生技术概论的篇章已经结束,细心的读者会注意到一个小问题,本书的命名是“深入架构原理...”,而不是“深入云原生架构...”,虽然云原生是一个足够宏观、广泛的课题,但对于构建高品质的软件产品而言,其影响服务质量还包括前端、网络、后端等等,云原生并不能涵盖所有环节,约束理论也是要求优化整体而不是单个的“孤岛[^1]。 +行文至此,云原生技术概论的篇章已经结束,细心的读者会注意到一个小问题,本书的命名是“深入架构原理...”,而不是“深入云原生/高可用架构...”。 -此外,对那些链路极长、逻辑极复杂的系统来说,"高可用"架构往往是一个伪命题,只要是人开发的系统,代码就总会携有缺陷。看似”稳定“的系统,它可能在随机某个时刻出现突发的问题。 +虽然云原生是一个足够宏观、广泛的课题,但对于构建高品质的软件产品而言,其影响服务质量还包括前端、网络、后端等等,云原生并不能涵盖所有环节,约束理论也是要求优化整体而不是单个的“孤岛[^1]。对那些链路极长、逻辑极复杂的系统来说,"高可用"架构往往是一个伪命题,只要是人开发的系统,代码就总会携有缺陷。看似”稳定“的系统,它可能在随机某个时刻出现突发的问题。 -既然问题不可避免,那我们就充分预测问题、设计更多的容错、做更多的演练,尽可能的缩小整体失效时间,努力将冲击降低到最小的程度。泛泛而谈容易,实操极难。架构师的最佳实践是从制造故障解决故障中成长,单当系统已经成熟,新手没有空间,那就唯有具备深厚的基础和广泛的知识面,此后面对突发故障虽可能无法立即解决,但至少可以准确地看出源头,从而找到解决问题的正确路径。 +架构师的最佳实践是从制造故障解决故障中成长,但当系统已经成熟,新手没有空间,那就唯有具备深厚的基础和广泛的知识面,此后面对突发故障虽可能无法立即解决,但至少可以准确地看出源头,从而找到解决问题的正确路径。 受限于笔者的功力,内容有诸多不足,但”足够的广度和一定范围内的深度“也是本书着重想要表达的内容。 diff --git a/container/Container-Orchestration-Wars.md b/container/Container-Orchestration-Wars.md index 46d83503..e255b7cb 100644 --- a/container/Container-Orchestration-Wars.md +++ b/container/Container-Orchestration-Wars.md @@ -85,7 +85,7 @@ Docker Swarm 可以在多个服务器上创建容器集群服务,而且依然 ## 5. 搅局者 Marathon -当集群规模很大,管理的资源很多时,很多人就不愿意再使用 Docker Swarm,选择了 Marathon 和 Mesos。 +当集群规模很大,管理的资源很多时,很多人就不愿意再使用 Docker Swarm,也没有选择 Kubernetes,而是选择了 Marathon 和 Mesos。 :::tip Mesos 是什么 diff --git a/container/orchestration.md b/container/orchestration.md index 3345566d..b7247276 100644 --- a/container/orchestration.md +++ b/container/orchestration.md @@ -8,11 +8,9 @@ 那么,容器是本质什么呢?如果吧 Kubernetes 比作云原生时代的操作系统,那么容器就是这个操作系统之内的特殊进程。 -操作系统视角下的进程访问资源并没有边界,可以使用计算机中所有的资源。 +特殊之处在于容器利用操作系统内核技术通过约束和修改进程的动态表现,从而为其创造一出一个“边界”。 -普通的进程,从磁盘上的二进制文件变成计算机内存中的数据、寄存器的值、堆栈中的指令、被打开的文件以及各种状态信息的集合。 - -容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造一出一个“边界”。使用 namespace 约束、cgroup(能用多少资源,内存/磁盘。cpu等),chroot 能看到什么文件。 +容器技术的核心功能,就是。使用 namespace 约束、cgroup(能用多少资源,内存/磁盘。cpu等),chroot 能看到什么文件。 命名空间创建一个几乎隔离的用户空间,并未应用提供专用的系统资源,如文件系统、网络堆栈、进程ID等。