标题摘要:在阿里巴巴构建新一代数据中心的历程

作者:禅与计算机程序设计艺术

1.简介

百度在2017年9月份启动了新一代数据中心建设项目——Alauda Data Center (ADC),该项目将在阿里巴巴建立一个统一的数据中心集群,以支持高并发、海量存储、弹性计算等特性。ADC将包括三个区域(深圳、北京、杭州)、七层数据中心集群和全球接入网络,采用多云模型,提供数据中心级容灾能力。
ADC项目作为阿里巴巴继5G、物联网、AI、区块链等领域的“头部技术”之一,也正是一个具有极高影响力的科技创新项目。它的成立使阿里巴巴拥有了一个庞大的海量存储、计算和网络设备资源,这些资源可以用于支撑多种业务场景,例如视频网站、电商平台、游戏主机、社交应用等。
ADC项目目前还处于起步阶段,需要经过多个环节的协同合作,才能最终完成生产部署。这一过程不仅涉及到技术人员的研发工作,还涉及到对阿里巴巴各业务的系统架构和数据流转进行全面规划、策略讨论、硬件选型、软硬件集成、系统测试、性能优化和发布管理等一系列复杂的工作。
本文主要基于ADC项目实践经验,梳理ADC项目的历史、理念、架构设计、关键技术、运行机制、发展方向、前景展望等方面,从宏观角度,总结出ADC项目构建数据中心所需的经验教训,为读者呈现更全面深刻的见解。
为什么要写这篇专业技术博客?
实际上,本文旨在探讨阿里巴巴如何构建新的数据中心。相比于传统的数据中心产品,比如“北京一区”,“天津二区”,“广州三区”,它们虽然解决了不同地域、不同的业务需求,但也存在着一些共性,例如服务网络及管理方式、基础设施能力等。因此,对于这个问题,无论是从功能、服务、定价还是其他维度来看,都有很大差距。
通过观察、比较和分析,我们发现ADC的设计和实现是值得借鉴的。通过这篇专业的技术博客文章,读者能够了解到阿里巴巴是如何建立这个数据中心,并且实现相应的技术优势。更重要的是,通过阅读和学习,读者可以提升自己对阿里巴巴数据中心建设的理解,以及更加全面的认识阿里巴巴的发展方向。

2.基本概念与术语

2.1 数据中心架构

数据中心(Data Centre)简称DC,它是指为了存储、处理、传输、接收、处理和传输数据的位置。数据中心一般由机架房组成,机架房通常由服务器架、交换机、路由器、防火墙、电源设备等设备构成。这些设备和组件所组成的环境称为网络结构。
数据中心DC由四个层次组成,分别是物理层、数据层、网络层、应用层。物理层是在真空环境下安装的,主要用于储存服务器、网络设备及其它设施设备。数据层主要用于存储、处理和传输数据。网络层则是连接物理层和数据层的中间设备,负责网络通信。应用层则是处理用户请求的系统,它主要用于各种互联网应用服务。如下图所示:
数据中心DC的布局由机架房、服务器、网络设备、存储设备等组成。DC机架房分布在城市各个角落,每座机架房内都配有多个服务器、网络设备和存储设备,可以支撑不同业务场景的需求。

2.2 Hadoop

Hadoop是Apache基金会的一个开源框架,它是一个基于Hadoop MapReduce计算模型开发的分布式计算平台,提供HDFS文件系统、MapReduce计算模型、HBase数据库、Hive数据仓库等一系列服务。其中HDFS就是目前最流行的存储技术之一,主要用于存储海量数据。Hadoop提供了一种简单而有效的分布式数据处理方法。
Hadoop主要用来处理大数据,它将海量数据分割成小数据块,然后分发到不同的节点上进行处理。MapReduce模型可以把任务分解成多个子任务,并把任务结果汇总。Hadoop还有很多用途,如数据挖掘、日志处理、机器学习、推荐引擎等。

2.3 ApsaraDB for Redis

ApsaraDB for Redis是阿里云推出的Redis数据库服务,是一种基于内存的NoSQL数据库。ApsaraDB for Redis提供免费的实例和付费的集群服务模式。它能够快速响应用户的访问请求,并承担缓存、消息队列、排行榜等功能,可以适应各种应用场景。

2.4 Hangzhou Alibaba Cloud Base Station

Hangzhou Alibaba Cloud Base Station 是一款提供移动接入、固定宽带接入和WLAN接入的覆盖全国的主动综合化运营商基础设施。它通过第三方控制器控制网络设备的开关机、重启、升级,并且还可以通过DNS和DHCP服务为终端用户分配IP地址。

2.5 AWS Elastic Compute Cloud (EC2)

Amazon Web Services(AWS)是一家美国第三方云服务提供商,为客户提供计算、存储和数据库服务。EC2是AWS中的一种计算服务,用于运行应用程序以及提供网络托管服务。AWS EC2的计算节点由虚拟化技术提供,具备独特的超高性能、超大规模、安全可靠等特征。

2.6 Docker容器

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。Docker利用namespace、cgroup和联合文件系统技术,可以为容器提供独立的网络命名空间、进程隔离、以及文件系统隔离环境。

2.7 数据中心网络

数据中心网络是DC内部的一种通信方式,一般包括光纤、有线网、机架等物理网络。DC网络架构由骨干网和分支机架两大部分组成。
DC的骨干网是整个DC内部的基本网路,也是连接机架间的物理通道。分支机架是指独立于骨干网之外的网络设备,用于扩展DC的容量和性能。
DC网络架构的设计考虑因素非常多,主要包括:

  1. 通信范围及延迟:决定着用户访问速度,因此骨干网的规模和延迟就显得尤为重要;
  2. 拓扑结构:骨干网与分支机架的数量、类型和距离都能影响到通信延迟和容量;
  3. 流量调制方式:通信过程中的噪声、抖动、电波干扰都会影响到数据的质量;
  4. 服务质量保证:除了防止丢包和损坏,还需要确保数据传输的一致性、可用性和可靠性。

3.ADC项目概述

从2015年底的“五矿”项目,到今年的“Alauda Data Center”项目,ADC项目已经历了两个阶段的发展。

3.1 “五矿”项目

百度在2015年5月份举办的“五矿”项目,是一个基于公有云平台上云的海量数据存储、计算、分析、服务的解决方案。该项目主要目标是利用公有云平台为各类企业客户提供海量存储、计算、分析、服务,在数据仓库、大数据分析、人工智能等领域均取得成功。
该项目的特点如下:

  1. 高效率:利用云计算资源,为用户提供高度可用的、低成本的计算、存储和网络服务,服务水平和质量得到大幅提升。
  2. 技术创新:利用云计算、大数据、机器学习等技术创新,为用户提供创新型的服务,满足高速发展的业务需求。
  3. 持续演进:充分吸收社会各界的反馈信息,持续不断改进产品和服务,根据用户的诉求不断迭代优化。

3.2 Alauda Data Center项目

百度在2017年9月份启动的新一代数据中心建设项目——Alauda Data Center(ADC),其主要目的是为阿里巴巴构建一个统一的、安全、可靠、高性能、弹性的、可扩展的、高可用的数据中心集群。Alauda Data Center项目将在深圳、北京、杭州三个区域,构建出七层数据中心集群和全球接入网络,采用多云模型,提供数据中心级容灾能力。

3.3 项目背景

在2010年之前,公司主要依靠自建数据中心来存储、处理和分析数据,但随着互联网和移动互联网的普及,用户越来越多,数据量也越来越大。作为海量数据的供应商,公司想获得更多的用户和公司的支持,需要建立起可靠、高性能、可扩展的存储、计算、网络基础设施。
业界有两种数据中心方案:1)自建数据中心:公司选择在自己的办公场所或建筑物建立数据中心,公司需要投资建设、维护、运维等一系列成本高昂的基础设施。2)云计算数据中心:公司购买云计算平台上的存储、计算、网络服务,不需要自己去搭建、运维数据中心,云平台可以按需按量提供所需的存储、计算、网络服务。
毫无疑问,云计算数据中心方案更加经济省时省钱,是业界热衷的新潮流。但是云计算平台上的数据服务往往不是那么可靠、可靠、高性能、弹性、可扩展、高可用,导致用户体验不佳甚至无法达到最佳效果。而且,云计算平台和自建数据中心之间数据同步可能存在延迟、失误、冲突等问题。因此,阿里巴巴创建了Alauda Data Center项目,希望能够构建一个基于云计算平台、私有云、混合云等的统一数据中心解决方案。
2015年,阿里巴巴宣布,Alauda Data Center项目已经公测并获得阿里巴巴集团的战略合作伙伴青云计划的资助。作为第一批获得青云资助的创业公司,百度云计算将以独立自主的姿态,积极参与Alauda Data Center项目。
2016年,百度云计算内部研发团队在深圳市沃尔玛软件园成功完成了ADC项目的一期工程量产,并在全球范围内进行了试点验证。期间,阿里巴巴和百度的工程师们共同研发了数据中心运营工具、云平台数据采集模块等。在2017年4月,阿里巴巴、百度和阿里云、腾讯云、亚马逊云等多个巨头云厂商紧密合作,共同推出Alauda Data Center产品,形成了ADC系列产品的全球发展趋势。

3.4 ADC架构设计

ADC项目的总体架构设计目标是高可用、低成本地提供可靠、高性能、弹性、可扩展的数据中心服务。ADC项目总共分为五个部分:数据中心、云平台、物理网络、分布式计算、系统自动化和运维中心。

3.4.1 数据中心

数据中心由四个层次组成:物理层、数据层、网络层、应用层。数据中心的基本单元是机架房,机架房按照数据量大小,分成不同的存储、计算、网络设备的规格。每个机架房都配有多个服务器、网络设备和存储设备,可以支撑多种业务场景的需求。
每个机架房的服务器配置由CPU、内存、硬盘、带宽和硬盘阵列等构成,而存储设备的配置则取决于业务场景。目前ADC项目的服务器配置如下:
CPU:Intel Xeon Processor E5 v3 (128核,2.6GHz)
内存:32GB DDR4 ECC内存
硬盘:SAS SSD
带宽:10Gbps以上
硬盘阵列:Seagate STorMatic Plus 10K SATA SSD * 2
网络设备配置如下:
交换机:
Intel Corporation Ethernet Switch X710 Series
单双工交换机(Active/Standby)* 3
SAS交换机
Nutanix Karbon Switch
存储设备配置如下:
FusionSphere FSP 6000 Series 3D NAND闪存
StorPool Arrays
CEPH或NFS共享文件系统
ADC项目的网络配置如下:
骨干网:100GE+千兆光纤
分支机架:1Gbe、10Gbe或万兆光纤
ADC项目网络规划采用SDN架构,即软件定义网络,利用数据中心网卡将多个交换机集中到数据中心,通过统一的交换协议,实现所有设备的自动协调。ADC项目采用了ECMP( Equal Cost MultiPath )的方法,通过动态负载均衡,提升网络性能。

3.4.2 云平台

ADC项目云平台的核心功能是为ADC项目的数据中心提供数据存储、计算、网络等一系列服务。ADC项目采取了多云模型,即将部分核心服务放在阿里云或腾讯云上,剩下的服务放在用户的数据中心上。阿里云和腾讯云的数据中心是通过阿里云控制台、API或其他官方渠道接入到ADC项目中,用户可以使用各个云平台上的资源服务。

3.4.2.1 阿里云

阿里云是中国领先的云计算服务提供商,在ADC项目早期阶段,阿里云积极参与项目的建设。阿里云的数据中心平台主要包括对象存储OSS、块存储ECS、云函数CFC、数据处理DIS、数据库RDS等多个产品。阿里云的数据中心同时也支持用户通过外部存储设备和互联网提供服务。

3.4.2.2 腾讯云

腾讯云是一家中国领先的云计算服务提供商,在ADC项目早期阶段,腾讯云积极参与项目的建设。腾讯云的数据中心平台主要包括云硬盘CVM、云数据库TDSQL、云函数SCF、负载均衡CLB等多个产品。腾讯云的数据中心同时也支持用户通过外部存储设备和互联网提供服务。

3.4.3 物理网络

ADC项目的物理网络由七层设备组成,分为骨干网、分支机架。骨干网包括全球分布式光纤,以连接核心数据中心和用户数据中心,并为用户提供全局高速网络服务;分支机架则是支撑ADC数据中心的辅助网络。ADC项目采用了三种数据中心网络的设计,即骨干网三星S300、千兆光纤,分支机架三星S600、万兆光纤。ADC项目对上游、下游的网络流量进行分类管理,并且支持动态网络调整。

3.4.4 分布式计算

ADC项目使用分布式计算的方式,将计算节点和存储节点集中到数据中心,所有的运算和数据都由数据中心计算和存储节点进行处理。ADC项目通过集群方式,部署多个计算节点和存储节点,为用户提供可靠、高性能、可扩展的数据服务。

3.4.5 系统自动化和运维中心

ADC项目系统自动化和运维中心由专门的工程师设计和开发,提供基于数据中心整体性能的系统监控、故障诊断、报警、预测、优化、回滚等一系列服务。ADC项目的系统自动化和运维中心运行在私有云上,通过API接口调用各个云平台提供的资源。

3.5 项目原理和架构

下图展示了ADC项目的整体架构设计:
上图展示了ADC项目的整体架构设计,共分为五个部分:数据中心、云平台、物理网络、分布式计算、系统自动化和运维中心。
除此之外,ADC项目还采用了基于OpenStack的Cloudlet软件框架,该框架提供资源管理、调度、编排、监控、计费等一系列服务。用户可以使用云服务直接与分布式计算节点进行交互,减少数据中心的运维复杂度。

3.5.1 数据中心硬件资源管理

ADC项目采取的资源管理方式是采用OpenStack的虚拟化技术,将数据中心的硬件资源按租户进行隔离,不同租户之间资源的隔离程度是通过VLAN进行限制的。ADC项目对计算、存储、网络等资源进行精细化管理,并支持在线扩容。

3.5.2 用户权限管理

ADC项目采用RBAC(Role Based Access Control)进行用户权限管理。系统管理员可以对ADC项目的所有功能和数据进行管理,普通用户只能查看自己相关的资源。ADC项目支持用户组管理,用户可以加入到不同的用户组,具有相同权限的用户可以共用数据中心资源。

3.5.3 弹性云计算

ADC项目的弹性云计算解决方案采用OpenStack的弹性计算、资源池、弹性伸缩、弹性负载均衡等技术。OpenStack通过API对弹性云计算的服务进行集成,允许用户申请资源,并根据资源使用情况按需伸缩。同时,OpenStack还支持多个弹性云服务商的互联互通,用户可以在不同云服务商之间自由切换。

3.5.4 云平台的选择

由于云服务的特殊性,ADC项目对云平台的选择也十分慎重。ADC项目采取的是多云模型,即将部分核心服务放在阿里云或腾讯云上,剩下的服务放在用户的数据中心上。用户可以根据自己的需要选择接入哪些云平台。

3.5.5 消息通知

ADC项目支持消息通知功能,当数据中心发生异常时,用户可以通过微信、邮件等消息方式收到相关的通知。并且,ADC项目还支持多种消息通知方式,包括短信通知、语音通知等。

3.5.6 数据安全

ADC项目的数据安全功能由数据加密、访问控制、流量控制、容灾备份等多个功能组成。数据加密采用FIPS 140-2标准进行加密,用户的敏感数据会被加密保存。访问控制采用Kerberos进行身份验证,保证用户数据安全的同时防止恶意攻击。ADC项目还支持IP限制、流量控制、租户隔离等安全策略,来提高数据中心的安全级别。

3.5.7 成本管理

ADC项目采用的是公有云模式,即用户不用向阿里巴巴支付费用,只需付费购买服务即可。ADC项目的资源按使用量收费,并且提供了多种套餐来适应不同规模的用户。用户可以根据自己的消费习惯进行套餐的调整,也可以通过垂直整合、共享计算资源的方式,降低成本。

3.6 ADC项目实践经验

ADC项目历经两年半的迭代,目前已经稳定运行,取得了令人满意的效果。下面我们对ADC项目的实践经验进行一些总结。

3.6.1 项目架构演进

ADC项目的架构始终围绕着数据中心的架构,并没有随着时间的推移发生变化,一直保持着一种纵向扩展的设计。ADC项目的架构演进主要是依据用户的反馈和市场需求进行的。

3.6.2 统一的物理网络架构

ADC项目采用的物理网络架构由七层设备组成,并且对上游、下游的网络流量进行分类管理。采用三星S300、千兆光纤和三星S600、万兆光纤这两类设备,可以为数据中心提供更高的网络性能。

3.6.3 基于OpenStack的弹性云计算

ADC项目采用了基于OpenStack的弹性云计算方案,支持用户申请资源,并根据资源使用情况按需伸缩。同时,OpenStack还支持多个弹性云服务商的互联互通,用户可以在不同云服务商之间自由切换。

3.6.4 容器技术的应用

ADC项目采用了Docker容器技术,为用户提供部署灵活、快捷的服务。用户可以自定义Dockerfile文件来生成自定义的Docker镜像,并使用Docker Compose来管理容器集群。

3.6.5 自动化运维中心

ADC项目的系统自动化和运维中心由专门的工程师设计和开发,提供基于数据中心整体性能的系统监控、故障诊断、报警、预测、优化、回滚等一系列服务。ADC项目的系统自动化和运维中心运行在私有云上,通过API接口调用各个云平台提供的资源。

3.6.6 消息通知功能

ADC项目支持消息通知功能,当数据中心发生异常时,用户可以通过微信、邮件等消息方式收到相关的通知。并且,ADC项目还支持多种消息通知方式,包括短信通知、语音通知等。

3.7 ADC项目的未来

ADC项目的未来仍然有待不确定性,当前的ADC项目还在较为初期阶段,后续还将持续发展。
一方面,ADC项目的架构仍然处于高速发展阶段,下一步,阿里巴巴将进一步拓展ADC项目的功能,推出更多的产品和服务。另一方面,ADC项目也正在持续跟进科技创新、数据中心理念的发展,在创新驱动发展的大环境下,ADC项目的发展必将受到越来越多人的关注。

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/132014134
今日推荐