在普通人眼中,数据中心不过是一栋普通的大楼,里面有成千上万台设备。只要有资金和人力,谁都可以建几座。事实上,数据中心的复杂程度远超人们的想象,正是“贫穷限制了想象”。数据中心几乎集成了世界上最先进的信息技术,涉及电力、制冷、通风、建筑、网络、计算、存储、布线、消防、监控等十几个技术门类,涵盖到先进数十个学科的技术。现在很多云计算、大数据、人工智能、软件定义也在数据中心大放异彩。数据中心是这些先进技术的实践土壤。你必须去数据中心一段时间。只有数据中心经过检验,先进的技术才是真正的技术,才能得到业界的认可。关于数据中心,维基百科给出的定义是“数据中心是一整套复杂的设施,它不仅包括计算机系统和其他配套设备,还包括冗余的数据通信连接、环境控制设备和监控设备。以及各种安全装置”。这个定义不够全面,几乎没有一个定义能把数据中心概括清楚,因为数据中心太复杂了,不是几个词或一句话能概括清楚的。当然,数据中心一开始并不是很复杂。一开始,我们甚至可以把拥有几台PC的机房称为数据中心,但是数据中心的规模和技术发展太快,复杂度呈几何级数增长。关于数据中心复杂性的讨论都是基于目前的现状。首先,数据中心规模快速增长。以前占地几千平方米的大型数据中心,现在变成了中小型数据中心。现在的数据中心动不动就有10万台服务器。填满所有这些服务器需要多大?建筑空间,这还不包括网络、通风和冷却等其他必不可少的系统。一旦规模扩大,所有系统都需要进行调整。这种复杂性不是简单的累加,而是几何倍数增长。例如,在建造一座大楼时,建造一座50层的大楼和一座120层的大楼,成本不会增加两倍。如果建50层的楼,平均造价3000元一平方米,10万平方米就是3亿元。120层的楼,造价应该是50层的10倍,每平方米3万元。如果是30万平方米,就是90亿元,相差87亿元。其次,数据中心是一个多功能的建筑,而不仅仅是服务器的集合。要将这些服务器互连起来,使正在运行的应用软件顺畅运行,需要进行大量的系统设计工作。每个设备运行的每条指令都有其特定的含义。我们知道仅以太网就有超过8,000个RFC。没有人能够了解所有的网络协议,但数据中心却需要部署众多的网络协议,复杂程度可想而知。登录任何一个网络设备,都能看到少则几百行的网络配置,多则数万行。这里的每一条配置命令都是为整个数据中心的运行和服务,缺一不可。任何局部小的任何操作都可能导致整体业务受损。为什么要建设自动化数据中心?其实一个重要的原因是,数据中心已经不能靠人的经验来管理了。它只能由机器自动管理。三是新技术演进太快,云计算才出现十年,就已经遍地开花。大数据、人工智能,甚至区块链都来了。这些技术都是基于海量数据的。海量数据就是数据中心。还有5G、移动互联网、物联网等等,哪个能离开数据中心?数据中心真正做到多功能、包容、无所不能。这些应用给数据中心带来了新的挑战。数据中心的基础设施需要满足这些应用,只能不断变化和调整,系统也变得越来越复杂。第四,人们对数据中心的要求越来越高。目前的数据中心全年都不能中断。每一分钟的中断都会影响业务,因为很多互联网服务是一天24小时访问的。阿里云前几天打断了一个。几个小时内,整个互联网一片哗然,阿里云及时诚恳道歉。这种事情可以一再发生,但不能一再发生。屡次失败很容易导致大量用户流失,最终只能倒闭。因此,数据中心提供连续不间断的能力比生命还重要,因此不可避免地要在数据中心的各个系统中进行冗余备份设计。冗余备份设计给数据中心带来了更多的复杂性。冗余越多,复杂度越高。看似安全,实则危险。过于复杂的系统不仅效率低下,而且在发生故障时也无法快速准确定位。因此,需要在冗余度和复杂度之间做一个权衡,在选择上做好平衡。因此,数据中心不仅包含很多系统,每个系统也非常复杂,而且越来越复杂。真是“贫穷限制了想象力”。现在哪个大型数据中心不是一个几十人的运维团队就能支撑起来的。难以置信,这怎么可能全部掌握。数据中心每天都在努力应对各种问题:应用需求、扩容、变更、升级等等,复杂性增加了这里的每一项工作。不犯错误很困难,但不难想象一个数据中心,其中80%的故障都是人为造成的。如此复杂的系统,谁也不能绝对肯定操作一定能达到预期的效果,不会出现意外。如果继续这样建设数据中心,迟早有一天,数据中心的复杂程度会达到人们无法想象、无法控制的地步,数据中心就会陷入无序状态。再好的技术也没有用。数据中心的复杂性引起了更多人的关注,很多专家学者也在建言献策,给出一些超融合的解决方案,试图减轻数据中心的负担。现在的数据中心要做减法,精简再简化,不要再一味追求规模化。新技术的引入不能增加系统的复杂性。必须很好地控制数据中心的复杂性,以避免失控。
