《架构师》2016年6月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

推荐文章|Article

新浪微博混合云架构实践挑战

——不可变基础设施

作者 蒋生武

【编者按】《微博混合云架构》专栏是InfoQ向新浪微博技术团队的系列约稿,本专栏包含8篇内容,详细阐述以DCP设计理念为指导思想的混合云架构实践。本文是该系列的第二篇,主要讲解了在新浪微博业务背景下DCP的不可变基础设施服务。

概述

不可变,顾名思义就是一旦创建,便不再修改。这听起来和我们常见的诉求——灵活的部署环境,似乎背道而驰。对于DCP中的基础设施而言,这并不矛盾,因为创建后就没有必要去修改了。整个基础环境作为一种版本化管理的资源,和代码类似。运行时如果有一定要变更的部分,那么直接更新源码,重新创建资源即可。老版的环境依然存在,可以在需要时用于回滚。

为了做到“不可变”,有两个必要条件:

●能够快速获取所需的资源;

●业务应用和基础资源之间相互独立。

第一点很容易理解,如果重建创建的过程太慢,比如几个小时甚至数天,那将无法满足线上业务的需求,反而极大提高了运维成本;第二点在容器化技术出现之前,是相当难做到的。业务应用大量依赖本地环境的配置、文件以及缓存等,耦合过于严重导致不同的上层业务需要不同的运行环境,迫使我们对基础设施进行复杂的异构。利用Docker技术,可以将业务应用运行时的绝大部分依赖都打包到容器中。这样一来,需要维护的基础环境数量大大减少,便于统一管理,也能够支持更多的业务方来接入。

本文将主要介绍新浪微博混合云架构上的不可变基础设施服务。