Header Place holder
This content does not have an English version, but a Chinese version, as shown below.
Do not show this message again.

“服务器 + IDC ”是企业构建 IT 系统的基本模式,但是现在,模式正在改变。传统的服务器模式弊端显而易见,应用程序的工作负载不断变化,单一应用程序的服务器通常无法满足需求,而急剧增加的服务器数量,势必造成企业资金和运营成本的攀升。同时,越来越复杂的 IT 系统和数据中心也很难快速配置和有效管理,以满足不断变化的需求。

在每个 IT 遭遇瓶颈的时间节点,总有新的技术出现,以解决 IT 系统困境,而现在,云计算适时出现。云计算通过部署成千上万的工业标准服务器,通过这些服务器之间的协同工作, 提高服务器的使用效率,并改变传统的 IT 交付方式,使客户可以按需、自助地使用 IT 资源。云计算代表了这个时代的需求,改变了 IT 系统构建的方式,也正在降低硬件、带宽因素对 IT 系统所带来的影响。在每个 IT 遭 遇瓶颈的时间节点,总有新的技术出现,以解决 IT 系统困境,而现在,云计算适时出现。云计算通过部署成千上万的工业标准服务器,通过这些服务器之间的协同工作,提高服务器的使用效率,并改变传统的 IT 交付 方式,使客户可以按需、自助地使用 IT 资源。云计算代表了这个时代的需求,改变了 IT 系统构建的方式,也正在降低硬件、带宽因素对 IT 系统所带来的影响。

背景

2011 年 3 月,人人公司推出商务社交网络平台--经纬网 ( jingwei.com ) 。经纬网是人人公司旗下专注于商务人士拓展人脉和获取资讯的社交网络媒体,通过商务人士实名制的社交, 帮助职业人的沟通联系变得更富成效。

“经纬,让商务人士的社交,不再止于认识,握手,交换名片,而是见贤思齐,择善而从”这是经纬网的愿景,商务人士加入经纬社交平台,可以获得行业资讯的纵览,通过自定义 对专业人士和群体的关注,精准获取行业资讯。

经纬是一个高效的社交平台,通过邀请商务关系人加入,获得个人的在线动态联络中心——所有重要关系的变化,包括职业变化,联系方式,相关资讯,都能在第一时间掌握,经纬 为客户维护终生有效的通讯薄,扩展商业人脉。

经纬也是用户创建个人品牌的理想平台,用户在经纬创建个人档案资料,给特定用户群体展现良好的教育背景和丰富的工作经历,也可通过行业资讯分享来传递专业讯息、分享行业 智慧,展现用户的行业价值。

商务与社交是经纬网最核心的两个关键词,如果您是商务人士,并且有社交需求,那么,经纬网将会从圈子、氛围、资讯、服务等多个维度,提供卓越的一站式商务社交平台。

解决方案

人人网目前拥有 1.6 亿注册用户,其中月活跃用户达到 3100 万,经纬网作为旗下垂直商务社交平台,在 IT 系统架构时,对高峰访问时服务器压力、数据存储安全性以及系统的弹性提出 了更高的要求。经纬网IT架构独立于人人网,整个 IT 系统通过自购服务器搭建,托管在 IDC 机房

传统的 IT 架构模式带来了高昂的成本投入,也增大了日常运维的工作量和不确定因素。将 IT 系统整体迁移到公有云平台是经纬网长期的目标之一。然而,国内的公有云平台处于发展 初期,平台功能欠缺,不时传出系统宕机、数据丢失的新闻,系统的稳定性和数据的安全性受到考验,所有这些一直牵绊着经纬网迈向云计算的步伐。

2013 年,Azure 正式进入中国,经过全方位的研究和评估,经纬网决定将 IT 架构整体迁移到 Azure 。一方面 Azure 具备完整的公有云平台功能,具备良好的系 统扩展性和伸缩性;另外一方面,经纬网也希望通过 Azure 云平台能为系统带来更大的弹性和更高可用的?存储,以更好地服务最终用户。除此之外,Azure 公有云平台能帮助经纬网降低硬件成本,减少运维支出,更好的做好灾难备份。

优势

更高的系统可用性

经纬网定位于公众社交平台,存储大量的数据及用户信息,包括各类文字、音频、视频和图片等数据,这对存储提出了更高的要求,既要保证存储的高可用性以确保业务的连续性, 同时也需要存储具有高可靠性。

Azure 为无论大小的任何数据均提供规模弹性、高可用的云存储、备份和恢复解决方案。可用于已有的基础结构,从而增强用户现有应用程序和业务连续性策略以及提供包括 视频、音频和图像等非结构化文本或二进制数据的云应用程序所需的存储。同时,Azure 存储提供 99.9 % 的服务等级协议 ( SLA ) ,确保存储的高可靠性。经纬网选择 Azure 的存储服务,无需搭建存储 系统,从何节省更多的时间专注于业务本身。

更低的存储成本

目前,经纬网的后端数据库 ( MySQL ) 存储在 RAID10 硬盘上,这对经纬网是一笔很大的成本支出。另外,为了应对突发状况和静态数据资源的高可用,经纬网预留了 50% 的存储资源 ( IOPS 和存储空间 ),这意味着通常情况下,经纬网的存储系统利用率低于 50 % 。而将存储整体迁移到 Azure ,经纬网能获得更低的存储使用成本,也能更弹性的使用存储资源。

内置 CDN 服务

经纬网目前没有使用第三方的 CDN 服务,为了更好的用户体验,经纬自建了缓存服务器。IT 系统整体迁移到 Azure 后,经纬可以使用 Azure 上的 CDN 服务,Azure CDN 服务提供了一个整体解决方案,用于传送在 Azure 中存储的高带宽内容,CDN 在重要位置缓存公开提供的对象,以提供最大带宽用于向用户传送内容,这对面向用户提供优质服务的经纬网至关重要。

更低的硬件和运维成本

成本是企业实施 IT 建设的重要考量指标之一,用户更希望成本支出主要在业务日常运营上,而并非大量支出在硬件的购置上。经纬网IT架构迁移到 Azure ,将极大的节约硬件 成本的支出,而将成本投入到云服务的运营上。经纬网原来需要自行管理服务器、存储等硬件设施,处理各种硬件兼容性、稳定性及各类异常,而在迁移到 Azure 后,与硬件相关的运维都交给了 Azure,在 IT 运维方面,既节约了成本也提高了人员利用率。

更灵活的系统弹性

作为公众网络,用户行为对 IT 系统的需求存在很大的差异,比如不同时间段,用户访问所带来的服务器压力变化很大。传统的 IT 系统,从设计之初就得考虑系统峰值、异常等情况, 购置更多的硬件服务器和带宽,以确保所有时段所有突发状况下,对用户是可用的。Azure 提供了灵活的可扩展性,可根据用户需求变化弹性变更服务器和带宽,可在不需要的时候关闭多余的服务器,也可在 需要时,实时增加服务器配置、服务器数量,带宽大小等,满足用户全时段的不同需求。

技术架构

AZURE 中的经纬网

经纬网在 Azure 上使用了大量 VMs 搭建 Hadoop / HBase 集群上的抓取系统,用以获取相关的数据信息。Azure 提供基础的 VMs 服务,经纬网自行部署大量 Hadoop 的计算节 点进行批量分布式的抓取,并且将抓取数据经过分布式的解析流程形成自己的结构化信息并且存储在 HBase 上,这样利用灵活的 VM 随时扩充抓取和解析的量可以将互联网上与之相关的所有信息获取并保存到本地,完成 数据收集的过程。

同时,经纬网在 Azure 上通过 VMs 部署了离线计算/日志分析的 Hadoop 集群,收集经纬网及其应用( 如经纬名片通 )的相关日志信息。由抓取和日志分析 Hadoop 集群得到的海量 数据将进入 HBase,进行大数据分析,经过数据的清洗、抽样、去重、过滤、筛选、索引等多种工序和方法,将海量数据变小,得到可以使用的数据信息。

在大数据平台之上,经纬网通过 VMs 部署整个系统的应用层,通过部署 Nginx、Resin 等为最终用户提供各式服务。整个经纬网的 IT 系统架构,经纬网通过大量 VMs 构建 Hadoop 集群,部 署相关的应用服务软件,Azure 提供最基础的 VMs、带宽、存储和 CDN 服务,提供了稳定的系统基础环境,也极大的提升了用户的灵活性。

除了在 Azure 北京数据中心部署 IT 系统外,经纬网将 Azure 上海数据中心作为灾备中心,通过数据库异地复制、逻辑备份 VHD、Blob 的方式,建立容灾系统,实现了系统的快速切换,当 Azure 北京数据中心系统出现异常时,经纬网可以快速将系统切换到 Azure 上海数据中心的容灾系统,而无需长时间对用户中段服务。

图. 经纬网 IT 架构图

快速开发 VMS

在经纬网的整个 IT 系统中,Azure 提供最基础的环境,而其中最核心的就是 VM,在 Azure 上快速开发 VMs 至关重要。在 Azure 上,通过设置地缘组 ( Affinity Group ) 、存储 ( Storage ) 、虚拟网络 ( Virtual Network ) 、云服务 ( Cloud Services ) 、虚拟机 ( Virtual Machine ) 、可用集 ( Availability Set ) 、服务器负载均衡 ( SLB ) 与自动伸缩 ( AUTO SCALE ) 快速获取 VMs。

地缘组

Affinity Group 允许用户将多个 Azure 服务配置成一个组合以优化性能。Affinity Group 告诉 Azure Fabric Controller,用户的 Compute ( 计算 ) 和 Storage ( 存储 ) 物理位置是非常接近并且放在一起的,这样 Fabric Controller 就可以在 Container 里搜索,让两者放置在尽可能接近,从而减少网络传输中的延时,提高性能。

Affinity Group 可以提供以下功能:

1. 聚集:Affinity Group 可以聚集 Compute 和 Storage ,让 Fabric Controller 将两者放在同一个数据中心比较接近的位置上;

2. 减少延时:因为放在比较接近的位置上,当计算节点需要访问存储的时候,就可以得到更好的延迟,提高性能;

3. 降低成本:使用 Affinity Group 可以避免随意选择数据中心部署的情况,因为部署的 Compute和Storage 都在同一数据中心,用户无需为跨 DataCenter 产生的流量付额外的 费用。

存储

Azure Storage 是一种节约成本的存储服务,可以让用户在检索大量的数据的同时方便地使用,并且提供持久化功能。Azure Storage 提供非关系型数据存储包括 Blob、Table、Queue 以及驱动器存储,其中,Blob 用于存储二进制数据,Table 用于可查询的结构化存储,Queue 用于实现角色实例间的可靠的持久消息传递的队列服务。

Azure 中每个订阅用户可以有 20 个存储账户,每个存储账户可以存储最多 200 TB 的数据,并且每个存储账户最多可以有 17 个虚拟机。地理位置冗余存储 ( Geo-Replication Storage ) 通过在远离主位置区域数百英里的第二位置 ( 子区域 ) 另外存储数据的副本,为用户提供最高水准的耐用性。当用户关闭跨地域冗余时,将从辅助位置删除数据。如果在关闭跨地域冗余之后决定再次将其打开,系统会将现有的数据从主要位置复制到辅助位置,这需要使用输出带宽,Azure 会对这部分带宽进行收费,仅当用户关闭跨地域冗余后再将其打开时才会收费,初始复制完成后将不会对跨地域冗余的继续使用收取 额外费用。

虚拟网络

Azure 虚拟网络可以让用户在 Azure 内部创建 VPN,用户通过 on-premises IT 基础设施加密连接 Azure 内部的 VM 等资源。通过 Azure 虚拟网络,用户可 以在 Azure 中创建一个逻辑上独立的部分,并可使用 IPsec 将其连接到内部部署数据中心或单个客户端计算机。通过虚拟网络,用户可以在使用 Azure 的同时连接到内部部署的数据和应用程序。用户 可以通过 Azure 虚拟网络,扩展数据中心、构建分布式应用程序、远程调试应用程序。

Azure 不为 VM 提供静态 IP,但是用户可以通过配置每个子网来预测 VM 的 IP 地址 ( 因为 IP 地址是按顺序配置的 ),如果用户想要保持 SQL 服务器始终在线,需要将多个 SQL Server 虚拟机实例的子网地址配置成一样。用户还可以为虚拟网络中的所有服务配置自定义 DNS 服务器,可以将所有虚拟机和服务指向一台本地 DNS 服务器或在虚拟网络中运行的一台 DNS 服务器,这允许用户在 Azure 中使用域控制器。

云服务

用户可以为每个云服务配置可用性集 ( Availability Set ) ,实例个数,是否开启自动伸缩 ( AutoScale ) ,以及自动伸缩预测 ( AutoScale Prediction ) 。用户可以手动缩放运行 Web 角色 、辅助角色或虚拟机的应用程序,也可以设置参数使其自动缩放,若要缩放运行 Web 角色或辅助角色实例的应用程序,需要添加或删除角色实例以适应工作负载。

当用户缩放运行虚拟机的应用程序时,不会创建新的虚拟机,也不会删除虚拟机,但会根据先前创建的虚拟机的可用性集打开或关闭虚拟机。用户可以根据 CPU 使用率的平均百分比 或基于队列中的消息数指定缩放。

虚拟机

用户可以在创建 VM 时设置 VM 名称,选择 VM 大小,选择操作系统,创建 VM 的用户名和密码。用户可以为 VM 配置端点使其可以对外网提供服务,可以配置端点的负载均衡。

在 Azure 中创建的所有虚拟机均可以使用专用网络通道自动与位于同一云服务或虚拟网络中的其他虚拟机进行通信。但是,用户需要向虚拟机中添加端点才能使 Internet 上的 其他资源或其他虚拟网络与该虚拟机进行通信。用户可以将特定端口和协议与终结点相关联,可使用 TCP 或 UDP , TCP 包括 HTTP 和 HTTPS。

可用集与服务器负载均衡

  • 可用集:用户可以使用多个 Azure 虚拟机来确保应用程序的可用性。可用性集直接与容错域和更新域相关;
  • 容错域:近似等同物理服务器机架。当多台虚拟机在云服务中连接在一起时,可用性集可以确保这些虚拟机位于不同的容错域中;
  • 更新域:Azure 定期更新承载应用程序实例的操作系统。在应用更新时,虚拟机将关闭。更新域用来确保不是所有虚拟机实例都在同一时间更新。
  • 服务器负载均衡:用户在将新增的虚拟机与第一台虚拟机相连接并在第一台虚拟机上创建端点后,就可以分配该端点,使其可供新虚拟机用于进行负载平衡。虚拟机必须正常运行才能接收网络流量。用户可以选 择通过将负载平衡探测功能添加到负载均衡端点中来定义自己的用于确定虚拟机运行状况的方法。Azure 将使用轮询调度算法每隔 15 秒探测来自虚拟机的响应,如果两次探测后都没有收到响应,则从循环中排 除该虚拟机。

本案例研究仅供参考,不做任何明示或暗示的保证。

所用技术和服务