今年以来,我读了不少书。到目前为止,对我最有帮助的,当属「架构即未来」。

几个月前,我在跟一位在华章工作的策划闲扯当下炒得火热的 NewSQL。现在各个厂商都把自家产品吹得天花乱坠,水平伸缩、高可用和强一致性、一致性的分布式事务,厉害得仿佛冲破了 CAP 定理的束缚,在允许网络分区的情况下同时实现了高可用和强一致。

作为一个吃过猪肉见过猪跑的老司机,我当然不会被这些公关软文蒙蔽了双眼。于是我搞了个大新闻,把这些 NewSQL 批判一番。不久后,我收到了这本厚得像一本字典的「架构即未来」。

在 A 厂摸了两年鱼,自然也不是白摸的,很多事情虽然没有亲自参与,但是耳濡目染之下也能收获不少人生的经验。可惜这些零零碎碎学到的知识点,始终没能用一个完整的体系重新组合融会贯通,直到我几个月前翻开了这本「架构即未来」。就像张小凡得到了天书,渐渐将之前互相抵触的佛道两派功法融会贯通,「架构即未来」则是给工程师们提供了更高层的视角,原本在工作中不知为何要做却不得不做的事情,原本知道如何做不知道为何做的事情,这本书的作者用自己多年的经验,给出了让人满意的解答。

世间很多事情,便是屁股决定脑袋。「架构即未来」这本书,虽然不能给你 CTO 的屁股,却能让你一窥 CTO 的脑袋里对技术、团队、流程、组织、架构等事情的看法。

在传闻中,虽然修士一生中只能服用一次造化丹,并且只限于化神期以下修士。这种古灵丹。对修士突破瓶颈的用处是显而易见的。据说服用此丹后的修士。在一段时间内神识将被药力催化,可提前体验下一层境界地不可思议变化。虽然这些感受无法明言。甚至每个人体验到的还不一样。但事后,大部分修士就此突破了停滞不前的瓶颈,可是真有此事的。

比如 MySQL 的第三方集群方案,之前是有以淘系 TDDL、阿里云 PetaData 为首的 Sharding 方案,最近鹅厂开源了 PhxSQL 再度引起业界讨论。一开始我便知道 PhxSQL 方案只是扩展了读能力,写能力还是受到单节点的局限,而 PetaData 之类的 Sharding 方案却能同时扩展读写能力。在读「架构即未来」之前,我能明确知道这是两种完全为了实现不同目的而设计的集群方案,但是我很难用简练的语言把这其中的差别讲清楚。

然而借助「架构即未来」中介绍的 AKF 扩展立方体,把事情讲清楚就容易多了。

在 AKF 扩展立方体中,X 轴扩展是通过复制实例来扩展,就比如给应用集群水平扩容,给数据库挂只读实例,这是实施起来最为容易的扩展方案。Y 轴扩展是通过分割业务来实现,用在数据库上俗称拆库,用在系统架构上,那就是时下火爆的「微服务」,就是把一个系统里登录、交易、库存、评论等各种耦合度不怎么高的组件拆分开来独立部署,从而使系统能力得到扩展,各个拆分之后的组件也能独立实施 X 轴扩展。Z 轴扩展则是通过为不同的客户群、不同的地区部署独立系统来实现系统的扩展,整体系统架构上体现为「单元化架构」,比如去年双 11 时候天猫的「异地多活」;在数据库上则体现为 Sharding,通过将不同客户群的请求路由到不同的数据库来实现数据库集群整体能力的扩展。

所以,PhxSQL 是在 X 轴扩展的方案,而 TDDL、PetaData 的 Sharding 则是在 Z 轴上做文章。业务的成长推动技术方案的发展,不同的业务对数据库集群的读写能力有着不同的需求,而电商业务对写能力可扩展的需求比社交、游戏等业务来得强烈些,这也使得 A 厂发展出了 Sharding 集群方案而鹅厂发展出了 PhxSQL。

在 X、Y、Z 三个方向上扩展都是扩展,适合业务的架构才是好架构。

总之,「架构即未来」是好书,值得看,值得收藏反复看。

License: CC BY-SA 4.0

Next Post Previous Post