百度智能云的技术架构
系统架构驱动业务发展。云计算技术对于百度的产品具有整体的推动作用,更准确的来说,就是以前不能做的事情现在能做了,以前能做的事情现在可以做得更好。很多时候有很多新的业务要发展,但是受限于技术,其实不能用业务来推动公司的发展,因为基础架构的构建非常重要。由系统架构驱动这个业务发展。甚至我们可以通过数据分析的方法,用数据驱动这个公司的业务展。这是我们对云计算技术的认识。
系统架构服务广阔的开发者和终端用户。云计算在百度已经做了很多年了,在此之前主要为搜索引擎服务,称为专有云,包括绿色环保IT的建设,高效的网络和服务器的计算,以及大规模存储,大规模计算,还有实时存储与计算。2007年左右,百度开始开放服务的API,比如说搜索的API,地图的API等等,更好地服务开发者。
百度智能云技术架构的传承性
经过15年的技术积累,百度拥有强大的底层系统技术和基础架构,支撑搜索、贴吧、知道、百科等20多个用户数过亿的用户产品,同时还支撑了凤巢广告、阿拉丁、直达号等服务上百万企业客户的商业产品。
百度在2003年已经将搜索技术全部换到了最先进的分布式计算系统,真正系统自动地进行分布式的调度。从2008年开始,百度在基础架构技术的投入加速,单以搜索举例,做好一个综合性的搜索引擎,在底层基础技术上,至少需要这几方面的能力:一是大规模集群建设与管理,其中不光是指IDC、网络、服务器等硬件设施,更重要的是支撑大规模集群的部署、调度、监控、查错等基础的系统软件能力;二是海量数据存储和计算,整个互联网的网页数据,仅仅是中文网页 就是千亿级别以上,对此等规模的半结构化数据处理,对底层存储和计算系统的可扩展性要求很高;三是自然语言处理和机器学习等,要做到充分理解用户搜索需求,达到快、全、新、准的效果,对搜索query和网页内容的理解,以及不断迭代的机器学习系统是必不可少的。通过这些大家可以看到百度在基础技术方面积累非常多,所有规模数字下面都是非常多的机器,非常多的系统,非常多的研发人员的汗水。今天百度总容量已经达到千P,每天新增的数量级就有1P,每天处理的数据超过50P,峰值处理每秒达50GB,更重要的是,百度的业务非常复杂,各种类型的应用,各种各样的数据,都依赖于百度强大的基础架构。
正是这样的一些产品,使得百度内部的基础技术经过多年的发展,形成了一套强大的私有云架构,而百度智能云秉承“one platform, two clouds”的核心理念,正式把这些已经在百度内部服务多年的基础技术和平台对外开放。
百度智能云数据中心
百度在云计算数据中心的突破与创新,已经远远走在了国内互联网企业的前列。从早期租用运营商的几个机房、几十上百台服务器到大规模的自建数据中心、数十万定制化服务器,百度的数据中心团队积累了丰富的经验,拥有很多领先技术:
PUE领先的自建数据中心
PUE领先的自建数据中心:PUE(Power Usage Effectiveness)是评价数据中心能源效率的指标,是数据中心总能耗与IT设备能耗之比,PUE越接近1表明能效水平越高。国内数据中心PUE 目前平均值约为2.5。而百度在北京朝阳区的M1云数据中心基础设施在数据中心供电架构,冷却塔防结冰设计、降低机房回风温度、模块化交付等方面技术业界领先,在2013年的绿色数据中心评级中荣获综合评分、PUE双第一(PUE 1.36)。而新建的山西阳泉数据中心,年均PUE将低于1.28,远远领先业界平均水平。
支持大规模的基础网络
支持大规模的基础网络:百度基础网络是保障百度所有业务正常运行的根本,在网络及系统运维方面,国内首个规模上线的自研万兆交换机,较商用成本下降70%;百度智能网关、CDN分发网络、骨干网自建传输等技术,在负载均衡、网站加速、网络流量调度等方面提供强有力的支撑。
不断创新的服务器相关技术
整机柜服务器采用共享架构设计,对比传统服务器可以明显的降低成本,提高交付效率。作为天蝎计划的项目发起人和 主导厂商,百度在整机柜服务器研发和部署方面一直处于国内领先地位。中国第一代整机柜服务器天蝎(北极)1.0版本2013年1月率先在百度南京机房上线,开创了定制服务器新时代,在中国发挥了很好的引领作用。如今,百度已大规模上线天蝎(北极)2.0;还包括全球首个成规模部署的ARM服务器,高温耐腐蚀服务器等,也都展现了百度在服务器方面的技术积累。
软件定义数据中心的新时代
早在2008年,百度就宣布把闪存技术应用到搜索集群,是全球首家服务器使用闪存技术的互联网公司,到2014 年百度自研SSD大规模应用在自研分布式存储系统,相关论文发表在ASPLOS这样国际顶尖的学术会议,百度在软件定制存储方面得到了业界的认可。
百度智能云的整体系统架构
百度智能云基于百度的高可靠数据中心之上,使用先进的集群管理系统对服务器进行统一运维管理,极大降低了人力维护的繁琐性,可有效避免人为操作失误。同时依托智能调度技术,对部署的服务自动化冗余管理,保障服务运行稳定性。
百度智能云拥有领先的虚拟化技术。通过虚拟机和软件定义网络,实现了多租户隔离及跨机房组网。客户与客户相互隔离,即便在同一个机房内也不可见,有效保证数据的安全性。同时在单地域内可以将部署在多个机房的服务纳入同一个虚拟网络,客户无需关心物理架构即可实现多机房冗余。
百度智能云拥有多种存储技术,可针对客户不同应用场景提供量身定制的解决方案。无论是强大灵活的数据库,还是追求极致性能的NoSQL存储系统,或者是超低成本的海量数据备份,百度智能云都能为您提供解决方案。所有存储系统均在百度内部有着多年应用实践,通过了海量数据的大规模压力考验,能够确保客户的数据安全可靠。
大数据技术是百度的强项。百度智能云拥有MapReduce、机器学习、OLAP分析等等不同的大数据处理分析技术。客户可以对原始日志批量抽取信息,然后利用机器学习平台做模型训练,还可以对结构化后的信息实时多维分析,根据客户的关注点产生不同的报表,帮助业主做出决策。百度智能云为客户提供最完整的大数据解决方案,让业务数据能够产生最大价值。
百度智能云还拥有顶尖的人工智能技术。上百位顶尖科学家的研究成果通过百度智能云向客户开放。从文本到语音再到图像,百度均代表着世界领先水准。在当前业界最热门的深度学习领域,百度也同样站在前沿。客户可以通过百度智能云,享受到世界一流的人工智能技术所带来的技术飞跃,使自己的业务变得更加智能。
机器学习
如果把海量的数据比作大数据时代的燃料,那机器学习就是这个时代的发动机。传统的数据分析方法,能够在某些具体维度或指标上解决难题,帮助数据拥有者做出决策。而机器学习能够使我们不必了解每一行数据,通过目标制订和模型训练,直接完成智能应用的搭建,让数据来帮助我们做决策。这种能力随着数据量的逐渐增大,显的更加珍贵。
百度自搜索起家,就是一个大数据公司。从网页搜索到凤巢广告,从网盟到地图,从语音到图像,处处都有基于海量数据实现的智能应用。多年以来,我们为了适应百度的大数据发展,满足日益复杂的应用场景需求,积累了数十种经典的机器学习算法。这些算法中除了应用广泛的回归、聚类,还包括业界最流行的深度神经网络,成为“百度大脑”的重要组成部分。
丰富的算法满足了数据多样性的需求,高性能的分布式实现解决了海量数据的难题。所有算法基于全内存的集群计算,应用大量计算、通信优化技术,并且实现了业界领先的ParameterServer架构,运算速度世界领先,处理规模达到了万亿特征、样本。技术的领先让我们在可以轻松处理众多的大数据难题,并通过上百个重要项目的成功实施,验证了算法的可靠性。
机器学习有很高的应用门槛,也不是标准化的产品,为了让用户快速接入直到上线部署,我们通过抽象机器学习的典型过程,将项目生命周期分解成“预处理-特征工程-模型训练-评估-预测-发布服务”,并通过简单易用的API,使用户不用写一行代码,完成项目全流程,从而降低接入门槛,缩短项目周期,让更多的大数据智能应用实现快速上线及迭代。
计算器解不了应用题。除了功能强大、易用的机器学习平台,百度资深的机器学习团队根据过往的成功经验,抽象出了多个成型的解决方案。从点击转化预估到个性化推荐,从自然语言处理到反欺诈,基于海量数据的机器学习能力变得触手可及,可以根据业务场景快速实施上线。
这些能力帮助我们的用户高效、低成本的实现大数据的智能应用,突破最尖端的技术瓶颈,把握住大数据时代的商业契机。
应用引擎
百度的应用引擎服务提供弹性、分布式的应用托管服务,帮助开发者一站式轻松开发并部署应用程序(Web应用及移动应用)。
百度应用引擎有诸多优势:首先,完美的多场景支持。同时提供论坛、门户、博客、电商、游戏等各种Web应用支持及移动应用后端支持。其次,丰富的多语言环境及工具。同时支持PHP、Java、Python、Node.js等语言环境,并提供控制台及命令行两种操作方式。再次,性能稳定强大。可灵活调增计算资源配置,个别实例故障不影响整体服务,同时提供包括MySQL、MongoDB、Redis、Log、Port在内的多种扩展服务。最后,采用轻量虚拟机技术实现完美的资源隔离。传统PaaS采用沙盒技术来实现应用之间的资源隔离。
百度应用引擎的整体架构如下:
虚拟化和网络
百度智能云采用与openstack类似的技术来管理虚拟机及周边的资源,主要分为如下几部分的功能:
- 资源调度:对物理机进行资源分组,根据客户的虚机资源需求,调度到合适的物理机。
- 镜像管理:管理虚拟机的操作系统镜像,包括系统自带的及用户自定义镜像等。
- 块设备管理:对虚拟机的磁盘,包括本地盘、云磁盘等进行管理。
- 网络管理:配置虚拟机的ip地址、路由、防火墙等网络资源。
具体的架构图如下:
在单机层面,百度智能云同时支持kvm及docker容器两种虚拟化方式,使用cgroup等技术对虚机的资源进行隔离,并采用硬件辅助虚拟化等一些技术优化性能。
百度智能云采用典型的软件定义网络(Software Defined Network)技术,控制平面和数据平面分离,支持弹性IP,物理机与虚拟机混合组网,L4/L7负载均衡等功能。
在控制平面,百度智能云通过元数据优化、流表优化等技术对系统扩展性、可靠性等进行了加固;在数据平面,我们采用了自研的dpdk + ecmp实现各种middlebox集群,例如接入接出网关、负载均衡等,可以有效的解决网络设备的单点故障,提升整体性能。
具体架构图可参考如下:
存储
目前百度的存储体系包含如下三种存储系统:
- 分布式KV存储
- 分布式对象存储
- 分布式块存储
现有存储体系的架构如下:
分布式K/V存储
百度提供的专业、成熟、高性能、高可靠的K/V存储,数据存储于分布式系统的SSD中,通过采用数据分片和多副本保存数据,提升数据服务的可靠性;通过在表和分片级别采用负载均衡,提升数据服务的稳定性;通过对外开放统一数据调用接口,屏蔽底层实现细节,提升数据服务的易用性;通过系统提供的自运维性,在常见错误发生时,做到数据副本自动恢复,提升数据服务的容错性。使用百度提供的K/V存储可以为您省去运行和扩展高可用分布式集群的管理成本,我们还为您提供审计服务,随时为您更新资源使用情况。较之自建数据库,百度提供的K/V存储具有更经济、更专业、更高效、更可靠、简单易用等特点,使您加倍专注于自身核心业务。
总体架构如下:
分布式对象存储
百度提供稳定、安全、高效且高扩展的对象存储服务,支持单文件最大5TB的文本、多媒体、二进制等任何类型的数据存储。数据多地域跨集群的存储,以实现资源统一利用,降低使用难度,提高工作效率。 架构如下:
分布式块存储
百度提供的分布式块存储是安全可靠的高弹性存储服务,作为云服务器的扩展块存储部件,为云服务器数据存储提供高可用和高容量支持。有独立于云服务器的生命周期,支持快速扩容、在线备份和回滚;支持数据随机读写,在吞吐、IOPS以及异常恢复时间等方面,均有业内认可极佳性能。
数据库
百度智能云数据库是由百度DBA团队提供技术支持,百度智能云数据库是DBA内部多年数据库技术的积累和典型实践方案逐步对外开放的云数据库产品。百度智能云数据库具有高可用、高性能、在线扩容等特点。
百度数据库通过主从热备架构实现高可用,master模块会实时监控主从实例状态,在发现主库异常情况后可实现秒级别的主从切换。用户可以通过一键式操作对数据纵向和横向扩容。在数据库集群扩容只读节点后,用户可以通过中间层屏蔽数据库集群间的拓扑关系,实现主从实例间的读写分离,和只读节点间的负载均衡。百度数据库通过databus实现cache与数据库之间的数据同步,并通过cache与mysql融合,突破mysql集群整体系统性能瓶颈,实现数据库集群吞吐的跃进式增长。通过对虚机的IO性能优化和mysql内核的优化(并发控制、异步读写、提供刷盘速度),进而提高单个实例的性能。 百度数据库整体架构图如下:
大数据
目前,百度的大数据计算系统可以分为批量计算、实时计算和迭代计算三个平台,三个平台已成功应用于百度搜索、广告、大数据、LBS、移动、O2O等几乎全部的核心业务,经过多年的业务应用锤炼和技术演进,三个平台各自的集群规模、计算能力均为国内第一。统一的大数据计算系统架构如下, 其中,批量计算平台和迭代计算平台已经在百度智能云中以BMR产品的形式对外提供大数据计算能力。
批量计算平台
批量计算平台按照MapReduce模型实现,集群机器数超过6万台,最大单集群机器数超过1.3万台,是全球规模最大的批量计算平台;单机CPU利用率接近90%,是全球已知单机计算能力利用最充分的批量计算平台;日均处理计算任务数接近100万,是全球最忙碌、整合计算能力最强的批量计算平台,批量计算能力助力百度智能云端大数据分析产品具有全球最强的计算引擎。 架构图如下:
迭代计算平台
Spark是当前业界公认发展最快的计算平台,具有功能全面、易用、性能高效等多项优点,具备独立构建大数据分析栈的能力,是最有潜力的计算平台之一。百度的spark平台已全面融入百度技术大生态并100%兼容开源,集群规模已达到3000台,处于全球领先地位,对内成功支持了百度大搜索、大数据部多个核心应用上线,对外成功推出云端产品,借助云端生态覆盖能力,spark计算能力惠及大数据分析需求的各行各业。
架构图如下:
管理
用户身份及认证管理
百度智能云提供百度账号和推广账号两类身份账号。百度账号是百度通用账号,使用手机或邮箱注册,主要面向个人用户和开发者。推广账号是面向百度商业产品的用户账号体系,比个人账号有更高的安全等级和更多产品选项。
为保证账号和交易安全,百度智能云的多数产品还要求对账号进行实名认证。只有提供了相应的身份资料或企业资质等信息并通过这些认证和验证之后,方可获得使用相关产品或服务的资格。百度智能云支持的实名认证包含个人认证和企业认证两种方式。
网站信息备案管理
国务院和工信部要求凡是在中国大陆境内发布的网站均需完成备案工作,其中对于经营性网站还需完成经营许可。所以凡是使用百度智能云进行网站发布服务的用户,请务必进行备案资料提交,完成相关备案审核工作。
百度智能云对网站主办者的资质和联系信息、网站和域名信息以及网站所使用接入服务商(百度)信息进行登记,备案审核通过便可正常使用。目前从备案提至百度到成功备案,如无特殊因素,周期可控制在15个工作日以内。对于已经在其他服务商备案的网站域名,可直接迁移至百度智能云。
百度智能云支持的备案类型包括:全新备案流程、新增接入流程、新增网站流程、变更备案流程和注销备案流程。
计费管理
百度智能云有完善的计费管理流程,严格监控数据,按分钟实时计费,确保您的每一分钱都被监管到。预付费产品按月计费,价格较低;后付费产品按需计费,根据您的需求实时计费并扣费,更灵活。百度智能云目前支持以下两种计费方式:
- 包年包月:您可在账户余额中预先充值,通过账户余额支付购买;也可直接通过银行卡、百度钱包等支付购买。
- 按需计费:根据您的使用情况,按分钟实时计费并扣费。因此为保证服务的正常使用,请在使用按需计费产品前向账户余额预先充值。
您可以在财务中心查看账户信息并对订单、发票、账单和代金券统一管理。
运维
百度智能云的运维充分体现了百度运维团队出色的技术能力和服务意识,使得百度智能云拥有百度搜索口碑的稳定性。
百度智能云的运维的覆盖范围包括部署、监控、环境、预案、安全、容量、性能等方面,特别在部署和监控两个方面有足够的技术积累和经验沉淀。
部署
百度智能云的自动化部署,结合高可用、可扩展、对用户无感的核心宗旨,保证服务质量和稳定性。部署整体可以分为两个方向:环境部署和迭代部署。
环境部署:在环境上充分考虑容灾和备份,做到多网段隔离和多地部署,在极大程度上避免了服务器、交换机、网络等机房故障对业务带来影响,确保服务稳定。此外,我们有完善的备份和备案机制,即使在非常极端的情况下(如自然灾害)也能够保障服务可以被恢复,无数据丢失。
迭代部署:后台的升级迭代,沉淀了百度十几年来的技术优势,所有的变更全都一键自动完成,稳定高效,目前百度智能云上每周会有超过100+次变更,后端的全部操作做到用户无感,不会影响到用户服务,更无需停机进行后台维护。
监控
完善的运维与监控是云服务的关键,百度智能云的智能监控系统可以实现全方位的自动监控。覆盖面包括:系统层(机器硬件故障预测和自动摘除,自动报修等)、网络层(网络流量、延迟和全网连通性等)、服务层(关注服务运行状态,性能和资源使用情况)、核心功能层(业务主线流程全链路监控)、物理机服务、虚拟机内服务、虚拟机状态等。自动故障定位系统可实时捕捉主干数据流的服务异常,并自动定位问题原因,并可部分实现故障自动处理。
例如,针对云服务订单,全链路监控能自动定位失败原因,极大程度的缩短了问题追查和恢复时间;针对云网络监控,采用流表技术监控,第一时间检测到用户的虚拟机是否受网络影响或异常;出现物理机故障,后端数据迁移和故障机器隔离自动完成,能够做到任何单机的物理故障对用户完全透明。
在网络攻击方面,能主动发现攻击并在秒级完成自动封禁,确保网络健康稳定。