可视化架构设计——C4介绍( 三 )


部署图

可视化架构设计——C4介绍

文章插图
 
前面的几张图都是站在开发的角度思考 , 但是一个没有充分思考过部署的架构很容易变成一个运维的灾难 。所以作者提供了一个部署图 。考虑到DevOps运动如火如荼 , 这个图可以变成很好的Dev和Ops之间沟通的桥梁 。我们在实操中发现 , Dev和Ops关注点的不同、语言的不一致 , 在这张图上表现得非常清楚 。
图上最大的的实线框不同于虚线框 , 它表达的是数据中心 , 当你开始考虑异地载备的时候它就有了意义 。数据的同步、实例的数量都会影响部署图的内容 。部署图基本都是容器级的 , 它能很好的表达出来容器到底部署了几个实例 , 部署在什么样的操作系统上 , 一个节点部署了几个容器之类 , 我们在实际使用中 , 发现需要考虑的信息太多 , 自己就抽象出了类似于亚马逊上实例规格的Small、Large之类的术语来表达机器配置 , 增进了开发和运维之间的交流准确性 。
为什么C4值得推荐够直观 , 对于程序员来说容易理解 , 容易使用 。
我们在开头的时候说过 , 只有每个人脑子里的才是架构图 , 如果我们使用一个本身就很难达成一致理解的工具 , 那成员就会陷入理解的死循环 。经过尝试教授不同工具 , 发现C4模型是最容易理解、最容易使用的工具 。可能它的概念是复用了程序员已有的一些认知模型 , 程序员在学习后都可以迅速的使用起来 , 并问出一些高质量的问题 。
总结在思维的世界里 , 我们都是盲人 , 很多东西我们以为自己知道 , 实际上画出来之后 , 才发现很多东西没想到 , 或者想的是乱的 , 同时别人也才可以给我们反馈 。
有了上面的这个工具 , 我们就可以开始可视化的架构设计之路了 , 但路上还有一个心魔需要战胜 。在我们的文化里 , 出错是一件很丢人的事情 , 所以我们喜欢用一些模糊的描述避免被别人挑战 , 而可视化是让我们精确的描述出自己的理解 , 来欢迎别人的挑战 。这一个坎不太容易跨过去 , 但是一旦跨过去、大家形成正向的互动之后 , 我们的进步速度会变得很快 , 从而把封闭的人远远的甩在后面 , 获得组织级的成长推力 。我自己就在跟别人的交流之后获得了更深入的洞见 , 本文已经分享了一些 , 还有一些内容后续再跟大家分享 。


推荐阅读