• www.hao.125.com > 感受云计算,从弹性计算开始
  • 感受云计算,从弹性计算开始

    免费下载 下载该文档 文档格式:PDF   更新时间:2013-06-01   下载次数:0   点击次数:1
    出品
    [总第一期] 总第二期
    2012.8 2012.2
    2
    上海够快网络科技有限公司总经理蒋烁淼专访
    17
    云计算:创业的好时机
    深入浅出DDoS攻击防御
    29
    云计算成就代码之美
    ——阿里云首届开发者大赛
    14
    感受云计算,从弹性计算开始
    24
    4
    以WordPress为例教你如何把传统网站搬到云上
    阿里云存储 OSS 之九大使用技巧
    Interview 访谈
    22
    凌云 2012.8
    Contents
    访谈
    2
    云计算: 创业的好时机
    ——上海够快网络科技有限公司总经理蒋烁淼专访
    2012.8
    [总第二期]
    4
    感受云计算, 从弹性计算开始
    特别专题
    9
    主办
    基于弹性计算平台构建高可用、可扩展的应用
    14 17
    协办
    以WordPress为例教你如何把传统网站搬到云上
    深入浅出DDoS攻击防御 阿里云存储OSS之九大使用技巧
    24 29
    云计算成就代码之美
    ——阿里云首届开发者大赛
    主编:王坚 刘江 编委会:唐洪 蔡华 刘缙 陈金培 倪浩 孟迎霞 晓 美术设计:纪明超 朱凯
    观点
    30 32 33
    创业者最佳的选择——阿里云
    微博
    @阿里云 @程序员杂志
    阿里云服务 落地之美” “ 云计算加快创业者成功的脚步
    ——从Instagram的成功说起
    1
    Interview 访谈
    云计算: 创业的好时机
    ——上海够快网络科技有限公司总经理蒋烁淼专访
    文 / 刘江
    云存储是云计算目前的热点之一,Dropbox、Box等产品的风 靡,公司因此获得极高估值,都印证了这一点。但云存储对技 术和资金要求都比较高,竞争也非常激烈,挑战巨大。国外云 大大减少了发展初期的 存储公司有亚马逊的云平台作为支撑, 阻力。而中国公司该怎么办呢?近日,国内知名的云存储服务 公司上海够快网络科技有限公司 (简称“够快” 已经全面从自 ) 己部署服务器转向阿里云开放存储服务, 我们为此特地采访了 够快总经理蒋烁淼。 为什么想到创建够快?在创建够快之前做了哪些准备? 刘江: 蒋烁淼:创建够快是一件蛮有趣的事情。之所以这样说,在于 我们团队原本是开发视频内容数据同步的,包括基于运营商 平台的展示。创建够快是想到当时个人云存储市场会有机遇, 于是在2011年初发布了最早的够快版本, 当时面向的是个人用 户, 整体服务器部署也是完全以实体服务器方式部署在电信和 联通机房的。 而从2011年至今,个人云存储市场已经完全变成了红海,从盛 大、 酷盘, 再到现在的百度网盘、 360云盘, 大量的个人云存储产 品问世, 而且功能大多雷同, 大家比的都是空间、 分享等内容。 于是,在2011年底,我们对产品做了一个大的调整,将面向个 人云存储转变到面向企业的文 件协同上来。 目前,调整的 影响还在持续着, 虽然使我们在部分个人用户中的 有所下 降,不过很庆幸,我们找到了自己的方向,也有VC开始向我们 投资。 可以说, 现在算是真正开始上路了。 刘江: 与其他同类型公司的产品相比, 够快有哪些自己的特点? 蒋烁淼:相对于其他云存储或者网盘类产品来说,现在的够快 和它们还是有很大区别的。 我们真正的目标用户是团队乃至于中小企业用户。对于这些 用户,我们更多的是提供文 文件在团队内部的一种协同 刘江: 在创业过程中遇到了哪些挑战?都是怎样攻克的?
    蒋烁淼在享受创业的好时机
    同步,包括版本控制、任务与项目, 以及现在提供的一个新功 能——通过一个很小的客户端就可以实现在线文 本地的应 用程序打开,编辑保存后又自动同步到云端。因此,我们强调 的不是传统网盘的大空间、分享、发布等功能,而强调它是一 种能为生活和工作真正带来便捷的工具。我们未来会不断在云 存储这个基础上提供更多的基于存储之上的应用, 真正把我们 的平台变成一个协同的平台,而不仅仅是一个网盘。相信基于 云存储的够快协同平台会真 广大无论是工作上还是生活上 需要协作的人们带来不一样的感觉。 我们另一个特点是安全, 当然技术上安全是一方面,存储的后 端是阿里云的OSS, 整个服务平台都基于阿里云。 同时我们也会 为一些特别的用户提供完全阿里云的版本, 即用户的数据将存 放在他们自己的阿里云账户中。 同时, 我们本身不带完全的发布 功能,也就意味着我们不会对用户的内容进行相关的审核,保 同时我们详细记 障用户的数据只有用户自己才能浏览与访问, 录了每个文件的详细访问清单, 包括浏览、 下载等操作。
    2
    凌云 2012.8
    蒋烁淼:我们在创业过程中确实遇到了很多的挑战,现在是, 未来也是。不过在我看来,最大的挑战是对自己想法的定位和 把握, 因为整个市场环境始终在变化,不少大公司也和我们一 起在这个生态系统中,真 难的是做自己,就是 自己的 产品和想法,既要因势利导,又要坚持自己的特色。我相信做 产品、 做好的产品, 最终会获得用户和市场的认可。 本来我们使用的是自己部署的服务器平台,在试用阿里云后, 我们果断地选择使用了阿里云,这本身就是一个巨大的挑 战——当时在我们做决策时,具体的开发人员存在着不解,投 资人也有疑问,而且 阿里云 也存在一些问题。不过目 前看来,使用阿里云带给我们的回报远远大于当时遇到的那些 困难。
    储,实际上当时就存在要不要迁移方面的考虑。随着产品形 态和目标发生变化,选择OSS就成了我们的考虑方案,并最终 使用了OSS。使用OSS主要出于以下几个考虑: 第一,OSS非常 快, 全国网络访问速度都非常好; 第二, OSS非常简单, 作为亚 马逊S3的类似产品, 确实很好用; 第三, 相信阿里云的实力, 能 够很好地保障OSS的数据安全; 第四, OSS本身和云服务器以及 其他阿里云的产品之间是高速的内网通道, 而且I/O性能非常好 (应该是目前国内最好的) 很有效地 了技术上的问题, , 我 们文件传输中的差量上传就是通过OSS这个特性实现的。
    刘江: 选定阿里云之后, 够快获得了哪些收益? 蒋烁淼: 在我看来, 有以下四个方面。 第一,够快获得了成本上的缓冲,不需要一开始再采购大量的
    刘江: 对于想创业的人, 在技术、 、 运营等方面有何建议? 蒋烁淼:技术方面,随着云平台的出现,对现在创业的兄弟们 来说,不用再走我们走过的弯路了。在不使用阿里云的那个阶 段,我们自己独立开发存储平台,部署和维护大量的服务器, 一大半的精力被这些事情给牵扯走了, 而不能更好地专注于产 品本身。使用阿里云平台至少在底层技术和系统维护方面节省 了大量的时间成本,可以说,现在 是一个创业的好时机。 此外,要牢记产品永远是第一位的,好的创业就是创造产品, 好的产品才是成功的基础,特别是创业公司,产品本身就 了你的整个商业模式。其实只要回答这两个问题:我做的是什 相信一定会成功。 么? 了什么问题?再加上坚持不懈, 方面我觉得更重要的是发挥每位创业者的积极性,让每名 员工也成为创业者, 只有人人都是创业者,整个公司才有活力 和凝聚力,才能达成最终的目标。从人才角度来说,我们更愿 意选择 有少量工作经验和较好学习能力的人,信任是我们 重要的管理方式。 我们还处于运营的菜鸟阶段,下一步最重要的是如何做好运 营,使得我们的产品能够更好为用户服务。这方面希望能得到 更多人的帮助, 而我们自身也有很多需要学习的地方。
    设备, 只需要用多少就支付多少费用, 大大降低了投资风险, 我 们可以拿更多的钱去发展市场和用户。 自己投资服务器那会儿,很 第二,提高了整个系统的稳定性, 容易出现服务器宕机以后导致服务中断而响应速度不及时,而 阿里云有效地 了这个问题,虽然也会有中断,但阿里云的 工程师会比我们以前更快地 这些问题。 同时也获得了更多认 第三,获得了阿里云在媒体方面的支持, 识其他创业者和用户的机会, 阿里云本身的影响力也加强了我 们产品的影响力。 第四,在使用阿里云搭建产品的同时,也使得我们很好地总结 出了一套基于云的开发部署经验,希望这方面的经验以后能够 帮助到更多的用户和创业者们。 刘江: 你感觉阿里云目前还存些哪些需要完善的地方? 蒋烁淼:在我看来, 阿里云是目前国内做云基础设施最有诚意 的公司了, 当然不是说阿里云本身就没有问题:第一,阿里云 整体运营网站平台改版过于频繁,但操作仍不够方便快捷,往 往找一个功能需要很多步操作;第二,相对于亚马逊来说,阿 里云的开发文 及SDK等还是非常薄弱的,对初级开发者的 学习帮助还不够,开发者要花更多的精力去上手,这也是目前 第三, 阿里云还需要强化云服务器以 需要开发者注意的地方; 外的服务,其实相对于其他VPS,阿里云最大的优势并不只是 有云服务器, 还有很多其他产品。
    刘江: 在存储服务方面, 为何最终选定了阿里云的OSS? 蒋烁淼:选择OSS的过程可以用一波三折来形容。我们最早选 择的是阿里云的云服务器和RDS,有一段时间是使用自己的存
    3
    Interview 访谈
    感受云计算, 从弹性计算开始
    文 / 刘江
    说起弹性计算,相信没有人怀疑亚马逊EC2(Elastic Compute Cloud)是目前的业界翘楚:亚马逊将自己的弹性计算云建立 在公司内部的大规模集群计算的平台之上,而用户可以通过 弹性计算云的网络界面去操作在云 平台上运行的各个实 例(Instance),而付费方式则由用户的使用状况决定,即用 户仅需要为自己所使用的计算平台实例付费,运行结束后计 费也随之结束。 可以看出,弹性计算这种方式,一方面减少了小规模软件开发 人员对于集群系统的维护,另一方面收费方式简单明了,用户 需要使用多少资源,只需要为这一部分资源付费即可。因此, 从这两个方面来说,对处于创业期的公司来说,尤其适用。阿 里云作为国内云计算行业的领军者,为广大企业提供稳定的 弹性计算服务,这其中,煎蛋网、向日葵、上网快鸟就是应用 阿里云弹性计算的典型 。本文就带你走进这三家公司, 在分享其创业历程的基础上,展现它们在弹性计算上的实践。
    煎蛋网创始人骆水银
    得到了众多读者的认同和支持。 目前,煎蛋成长为拥有几十位
    煎蛋网:阿里云,很贴心
    煎蛋,很简单
    煎蛋, 谐音“简单” 以翻译和摘要形式向中文读者介绍境外新 , 鲜资讯, 其前身是煎蛋网创始人骆水银(sein) 的个人博客。 当 时他订阅了很多国外网站, 感觉每天都有众多新鲜有趣的事情 发生,而国内网站却还在转载早已发霉的火星文,于是他就和 另一位创始人杨光 (oioi)一起, 决定把它做成一个境外资讯内 容分享网站。 从成立至今,煎蛋始终以“创作共用协议”授权方式坚持原 创,在以复制粘贴为内容源的中文站大环境下逐渐脱颖而出。 另外由于轻松随意的写作方式,煎蛋站内互动氛围非常热烈,
    兼职作者的团队博客, 已是同类小众网站的典型,在hao123、 360等导航首页上长期推荐, 在Google Reader、 QQ订阅里也有 累计200万左右的RSS读者。
    结缘阿里云
    作为非专业人员组成的兴趣团队,煎蛋每次在经历主机升级、 服务器故障和改换机房时,往往不知所措, 有时一个简单的问 题就可能让网站宕机一整天。 与阿里云走到一起也算是机缘巧合。 大约2个月前, 因为某黑客 的临时起意, 煎蛋不幸成为其DDoS的目标。 当时的托管机房所 采取的措施不是协助煎蛋找出攻击来源, 而是把煎蛋的网络切 断,并封锁其IP不再上线。这让煎蛋很是苦恼。恰好此时骆水
    4
    凌云 2012.8
    银了 阿里云的硬件防火墙,于是抱着尝试心态,在阿里云 购买了一个月的试用。 据骆水银介绍,煎蛋现在每天的流量是15万独立IP访问、80万 左右PV, 而静态文件和图片都存储在第三方服务上, 这样他们 便考虑用阿里云最低的5MB独立带宽 (这也比煎蛋之前使用的 。 北京某BGP机房里号称100MB共享实际限速2MB的好得多) 经过初步估算, 煎蛋选择了云服务器D套餐和RDS数据库中型。 煎蛋在之前的机房托管了两台服务器(一台前端、一台数据 库) 服务器购买成本2万元左右, , 托管费每年成本在1.5万元左 只需 右,而使用阿里云的话不需要再单独购买数据库服务器, 购买RDS服务就可以,这样云服务器+RDS的费用加起来也就2 万元左右, 比之前反而节省了很多。 此外, 由于都是云服务器, 因此以后不用担心硬件故障或者为了升级内存而专门跑机房 了,而且现在还有专门人员提供技术支持,这样看的话,云服 务就显得更具优势。 于是煎蛋果断下单, 购买了预定的服务。 在迁移到阿里云、配置服务器的过程中,煎蛋网还经历了外网 IP无法获取、数据库连接无法ping通等问题。这倒是让煎蛋首 次使用了阿里云的工单系统,在后台提交工单后,很快就在后 阿里云的技术还亲自 台看到了阿里云的反馈, 问题 之后, 打电话说明了情况。 值得一提的是, 5月9日, 煎蛋又遭遇了一次小规模攻击, 网站浏 览速度被严重拖慢,前台只能显示静态缓存而后台基本瘫痪。 骆水银迅速在阿里云后台提交了工单反馈问题, 10分钟后阿里 云方面就打来电话,通过PHP进程和网络状态判断出煎蛋遭受 了小规模CC攻击。 因为这种DDoS的流量较小没有被阿里云的硬 件防火墙清洗,就只能靠煎蛋服务器端发现问题所在并设置防 火墙来解决。 同时, 阿里云RDS数据库的技术人员还发现煎蛋数 据库引擎用的是MyISAM, 不支持多并发更新, 在压力大时读操 作会卡住而让故障更严重, 因此建议转为InnoDB数据库引擎。 随后,煎蛋的网管Paveo将数据库转换为InnoDB引擎并添加了 iptables规则, 将进入流量降了下来, 网站也恢复了 访问。 这次小规模攻击是对煎蛋的一次考验, 但他们这次并没有张皇 失措, 因为服务商不是撇清关系赶他们走而是帮他们解决问题。 谈及阿里云的使用体会,骆水银总结道: “就我个人目前的体 会, 阿里云的优势是稳定的带宽和周到的技术服务,而这是对
    网站 运行来说 最为重要的。 阿里云 与传统机 房的区别 就是在线后台和工 单系统。完善的在线 后台可以做 一些基 本管理操作, 有问题 时可以在线提交工 单。一开始我们对不 能直接打电话 找客 服的方式很不习惯,但使用工单后发现阿里云的同学反馈非常 及时,而且在答复时一般都会打电话进行说明,这样在 问 题时非常方便。 ” 阿里云给煎蛋带来的好处,连他们的读者都能够真实地感受 到: “我们以前的服务器经常超载, 超载的提示页面是一只鸡, 读者们把它称作超载鸡。 最近2个月经常有读者说, 自从煎蛋搬 了服务器, 都看不到超载鸡了, 好怀念它。 事实上, 在我们搬到 阿里云的这2个月里, 我也注意到阿里云的网站后台在不断升级 改版, 后台界面更漂亮了, 功能更多了, 与之前不同的是可以直 接监控系统状况, 并增加了续费和升级管理配置功能。 ”
    未来,继续“煎蛋”
    从2006年创立至今的6年时间里,从零做到现在的日浏览量近 百万,煎蛋增长速度相当缓慢。不过煎蛋没有做过任何主动推 广,前期完全是通过读者的主动传播逐渐成长起来, 到后期网 站内容多起来以后,搜索引擎开始成为煎蛋重要的流量来源。 与同类网站在成长起来后转向商业化相比 (比如译言、 果 , 煎蛋一直保持个人网站形态,所有成员都有自己的 职业 (或者学业) ,以兴趣为基础,从而保证在煎蛋的持续内容更 新。成员都没有任务要求,也没有定量的更新压力,还是跟最 初一样:看到自己觉得好玩的内容才会拿来写。而唯一的区别 就是,从之前的单纯的义务团队,转变为现在的付费兼职制 度,虽然没有专门成立公司,但广告收入能保证成员的稿费和 基本运营成本。谈及是否有投资和收购机会时,骆水银说他一 直没有接受, 因为他不希望为了 “做大”或者发展得“更快”而 承受盈利压力变得商业化, 或者承载起门户或媒体的雄心而失
    5
    Interview 访谈
    去煎蛋原始的 ;他希望煎蛋继续保持简单,始终保持轻松 的小网站姿态, 即使走得慢一点, 也要能留住老读者。 骆水银坦言,从商业角度来说,煎蛋从不是一个很好的范本, 毕竟它不以盈利为目的。他们追求的是在持续的分享中收获成 就感并乐在其中。因此,从这个角度来说,骆水银建议创业的 朋友们不一定都从热门入手, 扎堆去做SNS或者iOS APP, 可以 想想自己的兴 在。 做自己喜欢的事, 才是长久的事业。 对于阿里云,骆水银的寄语是: “阿里云在前进,我们也在成 长。作为阿里云的新用户,我们对这个平台只有感谢和祝福, 希望阿里云更好地走下去。 ”
    向日葵:与弹性计算同行
    向日葵的由来
    上海贝锐信息科技有限公司CTO张小峰
    向日葵远程控制是一款面向企业和专业人员的远程PC 和控 制的服务软件, 它是由上海贝锐信息科技有限公司 (简称Oray) 推出的。 主机安装了向日葵远程控制客户端后, 用户在任何可连 入互联网的地点, 都可以通过向日葵轻松访问和控制远程主机, 整个过程完全通过浏览器进行,无需再安装软件。 向日葵远程 通过浏览器能 控制在各种复杂网络环境下也能实现内网穿透, 轻松实现对远程PC的服务、 进程、 用户和文件等进行 。 现这种方式很麻烦, 后来想何不做成基于互联网的远程控制软 件。 但真 始做的时候, 才发现这不是简单地实现远程桌面, 还包含远程文件管理、 远程摄像头等各种类型的应用。 ”
    打造创新思维
    市场上远程控制和 软件众多,鱼龙混杂,而与其他同类型 的公司相比, 向日葵加入了很多自己的创新思维。 自主知识产权的远程控制协议。现在大部分远程控制软件都 是采用VNC的开源的远程控制协议, 目的就是为了极大缩短开 发周期,远程控制协议也是远程控制的最核心和最难的部分。 Oray一直以来坚持原创精神, 做拥有自主知识产权核心技术的 软件企业。 开启全新的云配置的远程控制模式。被控端在首次部署完成
    向日葵远程控制架构图
    后, 其配置参数将全部存储于向日葵的云服务器中, 这样当部署 被控端或被控端机器重新安装时, 无需进行任何配置, 做到真正 的无缝衔接。 全面兼容微软RDP远程桌面协议 (俗称3389) 在向日葵四种桌 。 面模式中, 工作模式采用了微软RDP远程桌面协议, 这样方便用 户在多种远程桌面模式中自由切换, 体验完全不同的桌面效果。
    谈到做向日葵的初衷, Oray CTO张小峰说: “当初决定做向日葵 就是想控制家里的电脑下载东西, 试用了几款软件后, 感觉都不 顺手, 于是就萌生了做一款简单易用的远程控制软件的想法。 而 向日葵的前身是花生 程控制, 花生壳本来是一款动态域名解 析软件, 开始时就想利用花生壳+RDP的方式来远控, 但慢慢发
    6
    凌云 2012.8
    与国内其他远程控制软件不同, Oray坚持 化运作路线, 不 作恶, 也不提供作恶的途径, 向日葵被控端全面获得了微软软件 徽标和WHQL双重认证, 与Windows系统完全兼容, 并且会一直 坚持安全的路线。
    弹性计算改变传统的项目上线方式
    虽说向日葵有这么多创新的地方,但张小峰并不讳言,在创业 过程中, 他们确 实遇到一些挑战。 一个项目的上线,如果通过传统的方式进行规划,需要考虑硬 件采购、多点线路部署等一系列问题,这些问题对项目的服务 质量都有着深远的影响。而云 作为一种新型的 模式, 云服务商可以很好地提供海量IT资源,如 能力、海量存 储、 多线路互访……而阿里云的弹性计算可以很好地 一系 列问题。 首先, 阿里云的弹性计算, 可以简化整个硬件采购的过程, 有效 地控制项目的运营成本,而无需在项目开始的时候投入大量的 资金。 通过阿里云弹性计算按需扩展、 实时开通等服务, 还可以 实现服务快速搭建、 切换、 扩容, 为用户提供更优质的体验。 其次, 阿里云的优质线路,令用户无论身在任何线路运营商的 环境下,都可以畅游阿里云上的服务。这优势是其他单一线路 的机房无可比拟的。 “阿里云的 在谈及阿里云弹性计算的使用经验时,张小峰说: 弹性计算既存在一定优势, 同时也不可避免地存在磁盘I/O资源 竞争问题。如果只是完全把物理服务器上的服务进行迁移,未 必能完全适用。因此在部署之前,我们根据其特点,对服务架 构及服务端程序进行有针对性的优化, 力求在云服务器上能发 挥最大的优势。 ”
    晨风云(北京)科技有限公司联合创始人兼CEO张慧
    好用不耗电。 在对上网快鸟项目组的采访中, 项目 受以上服务, 成员谈的最多的还是“服 户, 以用户为导向” 。
    不要为了创业而创业
    关于创业历程,晨风云CEO张慧说他们不是为了创业而创业, 大多数人在创业之前都会有很多纠结,有的人最终坚持下来, 有的人中途放弃。而自己之所以创业,一方面是与之前的工作 经历有关; 另一方面就是年龄——人过了而立之年就想做一些 自己喜欢的产品, 让自己更有成就感。 张慧2000年开始工作, 之 后经历了互联网 “兴起—泡沫—再次兴起”的过程, 凭借敏感 的嗅觉,他看好移动互联网的发展机遇,与朋友一起于2011年 10月毅然决然地投身到创业大军中,创建了晨风云, 目的就是 希望能够做出优秀的产品服务于用户。
    上网快鸟:云 对移动互联网格外重要
    晨风云(北京)科技有限公司是一家移动互联网新创公司, 团队最初由4个人组建。他们开发了一款节省流量的手机软 件——上网快鸟,可以使手机上网加速, 同时节省流量从而节 省手机话费。上网快鸟采用最新云 技术,带给用户省钱、 快速、安全的上网体验,安装完成即时生效,退出软件也能享
    在创建晨风云之前,张慧团队进行了大量的市场分析和技术 预研, 了服务用户的方式,在不断的否定、思想碰撞和 沟通中对产品做了很大的改变,最终定义出上网快鸟这款产 品。从2011年10月到2012年1月,上网快鸟历时3个月后正式发 布上线,上线第一周便被应用市场评为“上升最快的Android 应用”,说到这里,这位严谨的CEO脸上浮现出了幸福的微 笑。
    7
    Interview 访谈
    他表示, 自己的团队还是很幸运的, 来到了创新工场的平 过程, 台, 使得资金、 人才招聘、 场地、 培训等方面的问题得到 , 并能专注于技术、 产品和运营方面的工作。
    探索弹性计算在移动互联网中的应用
    云计算作为革命性的技术,带来了很多的机会,如Amazon
    创业方向和团队有优势
    张慧表示, 晨风云是一家新兴的、 朝气蓬勃的创 业公司,根据现代移动互联网手机上网的普遍现状, 即每个月 包的流量到月末时就不够用, 以及上网速度不快, 他们便顺势开 发了 “上网快鸟”这样一款能够使加速上网、 节省流量的免费软 件,争取提高手机用户的上网体验,期待得到用户的认可和喜 欢。 同时,晨风云与众不同的地方还体现在团队骨干成员及其 背景上, 团队成员中张慧有着十年电信运营商行业经验, 其他创 始人也均有多年工作经验。尤其架构师团队是做企业级网关产 品和云安全产品出身, 因此团队在系统稳定性方面具备丰富的 经验, 能够确保产品服务质量, 达到99.9999%的可用率。
    AWS、Dropbox、Evernote等成功者。在移动互联网情景下, 由 于终端的存储、计算能力有限,云计算显得格外重要。而且云 推动了企业和社会的进步,带来了新的契机,并开启了更 灵活、 协作的计算模式。 高效、 晨风云团队在成立初期已经使用过一些云服务,但最终选择了 阿里云, 原因何在?在张慧看来, 首先, 阿里云可以随着业务需 求的增加不断扩展资源, 很便利, 同时可以定制进项, 系统做好 进项之后, 可以马上上线和使用, 很及时; 其次, 性价比高, 适 阿里云 合需要很好的控制资金成本的创业初期的公司;再次, 已经可以支持淘宝和支付宝这样大的业务,对小团队的支持更 没有问题; 最后, 阿里云的网络用户和接入商比较多, 这样商家 就很容易获取服务。
    创业真体验
    “创业最困难的首先是资金问题,”在提到创业困难时,张慧 颇为感慨地说, “刚开始时, 项目资金不够, 大家就一起凑钱, 直到成功融资, 资金紧缺的状况才得以改善。其次是人才的稀 缺,创业初期,团队小,知名度不高,吸引不到合适的人才加 入到团队,这样就导致了团队技术开发的困难。最初,工程师 们要熬夜工作到凌晨两点, 甚至一起通宵在办公室工作也是常 团队才开始逐渐 有的事情。随着产品的上线得到用户的认可, 壮大。 ” 晨风云团队成员很认同马云说的一句话: “今天很残酷,明天 更残酷,后天很美好,但绝大部分的人死在明天的晚上,看不 到后天的太阳。 ”在张慧眼中, “创业是一件艰苦而且持续的事 情, 创业者需要不断给自己加油” 。创业是“打江山难, 守江山 更难”,创业者要始终保持清醒的头脑,守得住孤独,经得住 考验。 自身具备了创业的条件之外,还要选择一个好的合作伙 伴,这个合作伙伴,不仅要志同道合,而且要优势互补。晨风 云团队就是由一群志同道合的、愿意为了共同的目标而奋斗的 人组建。尽管创业很艰苦、很有挑战,但张慧很享受现在这个
    晨风云的云计算需求主要是在数据挖掘系统方面。由于每天 需要处理非常多的信息,除了例行任务,还有很多临时性的任 务, 如果使用传统的IT 方案, 可能需要准备N台机器处理例 行任务, 再准备M台机器处理临时性任务, 当然, 还得雇用相应 数量的IT工程师来维护。对于创业公司来讲,这是一笔相当大 当有 的开支。而通过长期租用阿里云的虚拟机处理例行任务, 临时任务时, 再临时租用一些机器, 因此, 无论从硬件成本, 还 阿里云这种弹性计算服务都是大数据量计 是IT运维成本考虑, 算的不二之选。 而在使用阿里云的过程中,让晨风云团队成员感触最深的当属 阿里云的客户服务和技术服务: 网站有稳定的服务器环境和畅 快的访问速度、 贴心的技术维护, 同时问题提交之后, 会有后期 的跟踪, 使问题得到彻底解决。 当然, 在张慧看来, 阿里云也存在需要改善的地方。 比如: 阿里 云目前没有远程控制界面, 只能通过SSH登陆 ; 服务、 响应 时间需要进一步提升, 真正为用户提供好的服务。
    8
    凌云 2012. 8
    基于弹性计算平台 构建高可用、 可扩展的应用
    文 / 陈波
    前不久,Facebook 投资10亿美元收购仅成立15个月的移 动照片分享应用Instagram,消息传出时,人们不仅惊叹于 这笔巨额的交易,更为这支13个人的小团队感到不可思议。 Instagram的Android版客户端发布时,24小时内下载量超过 100万,高峰期达到每分钟2000次,是下载量最大的Android应 用之一。究竟是什么原因让这支团队在很短的时间内一 人?又是什么技术让他们在巨大的下载量下顶住了压力? 让我们回顾一下Instagram开发团队奉行的3大原则: Keep it very simple(极简主义) ; Don't re-invent the wheel (不重复发明轮子) ; Go with proven and solid technologies when you can (能 用就用靠谱的技术) ; 总而言之,专注于自己的业务和擅长领域,其他事情让更专业 的人去做。 Instagram选择了美国的亚马逊云 平台作为基础 设施提供商,它部署了数以百计的云服务器和存储服务,却只 有区区3名工程师负责维护, 不需要任何现场人员支持。 如果依 赖于传统的IDC服务, 光是把这几百台服务器托管到IDC机房, 就需要数天时间和大量的人力成本。每当发布一个新版本时, Instagram所要做的只是在云计算平台上开启更多的服务器, 便 可稳坐钓鱼台, 看着自己应用的下载量节节攀升了。 阿里云弹性计算平台 (Elastic Compute Service, 简称ECS)面 向中国互联网开发者和站长, 致力于为中国的Instagram提供靠
    谱的互联网基础服务。它基于底层的飞天分布式 系统,结 合高性能虚拟化技术,实现了计算、存储和网络资源的统一调 度和弹性分配。在具体的产品形式上,客户接触的是最简单的 云服务器,与物理机无二,没有任何的使用门槛。 由于采用了 云计算技术, 相比传统的IDC托管服务, 弹性计算在自助 、 资源组合灵活性、基础环境定制化、数据安全性及硬件资源利 用率上都有不小的优势。 在本文中,我们将和大家分享在云计算平台上构建高可用、可 扩展应用的一些进阶技巧。考虑到有些读者尚未接触过ECS, 所以在进入 之前, 让我们简单浏览一下ECS的各项特性。
    自助
    ECS在aliyun.com的控制台中提供了多种用户自助的操作, 例如 最为常见的创建、启动、关闭云服务器,将来还会陆续推出比 回想我们 较高级的快照、 回滚、 自定义镜像(Image)等功能。 以前遇到服务器不可访问时,提交工单、 电话催促,在经历漫 长等待之后,也未必能够得到一个满意的答复。现在,我们可 以在控制台中全程监控和管理每一台服务器的运行情况, 从而 做出快速的决定——重启或者部署新的服务器。 ECS支持目前主流的Windows和Linux系列操作系统。 用户不仅 可以使用这些标准的镜像,还可以在此基础上修改配置、安装 9
    Special 特别专题
    软件,创建出自己的镜像, 当要快速恢复基础环境或者批量部 署集群时, 自定义镜像将成为提高运维效率的利器。 图1简单地描述了一个自定义镜像的生产过程。
    更高的可用性指标。当一台物理机损坏时,ECS会自动监测到 硬件故障,在第一时间内把云服务器迁移到新的宿主机上, 同 时硬盘数据保持最后一刻的状态。 如图2所示。
    图1 自定义镜像
    图2 自动故障恢复
    使用标准镜像创建一台云服务器; 用户登录云服务器, 安装自己所需的软件, 配置好系统参数; 安全关机, 然后将云服务器当前状态存为一个自定义镜像; 随后, 用户就可以使用刚创建的自定义镜像启动更多的云服务 器了。
    从以上介绍可以看出, 托管在弹性计算平台上的应用可以获得 更多的保障,但我们是否可以认为,将应用搬到云 平台之 后,它就能跑得欢快、永不宕机,还能自动扩展了?答案是 NO! 每时每刻, 硬盘、 主板、 电源或者网络设备都可能突然损坏, 甚 至整个数据中心发生停电。云 技术没有办法解决所有硬件 问题, 只是降低了某些故障的发生几率, 例如:
    数据可靠性
    对于写入VM磁盘的数据, ECS会实时地在不同的交换机下同步 3份拷贝, 当集群中的磁盘损坏时, 后台进程也会自动地重建故 障磁盘的数据。相比常见的RAID硬件方案, 这种分布式存储系 统能够提供更高的数据安全保障, 因为它不受单台服务器可用 性的限制,并且, 由于多台服务器可以并发处理,数据恢复的 时间更短。 ECS提供的在线快照功能可以完美地替代传统的复制备份,它 采用先进的增量数据算法,确保做到备份空间和时间的最优 化。 当用户数据被误删或者系统被病毒破坏时, 只需要一个简 单操作就可以瞬间恢复环境。
    普通SATA的年损坏率在2%~4%, 但使用分布式存储的年损坏 率在1‰以下; 自动故障恢复只是减少了服务器的宕机时间,但不能防止 宕机。 如果我们的应用只能跑在单台服务器上, 只能依赖单台设备的 硬件升级才能应付日益增长的访问量,那么这种应用的宕机是 迟早的事情。事实上,我们需要从部署架构和应用架构两个方 面来破解这个难题。
    部署架构
    既然没有什么硬件是永不损坏的, 我们是否可以用多份冗余的
    自动故障恢复
    有了分布式存储的支持,ECS可以提供比传统主机或VPS服务
    硬件来降低故障的概率?如果挨在一起的服务器被一把火烧掉 的可能性太大,我们是否可以把它们分 不同的集群?如果 数据可能被破坏, 是否要经常做些备份? ……
    10
    凌云 2012. 8
    把各种故障因素都考虑一遍, 我们就可以得出下面这个大致的部 署框架。 以集群方式提供服务 Web服务器、缓存服务器都是非常适合部署为集群的,单台服 务器损坏不会影响整个网站的访问。数据库服务器稍难一些, 但它们也提供了主从复制、 读写分离的解决方案。 将云服务器分布在不同的可用区(Zone)下 不同的可用区 数据中心里的不同物理位置, 同一可用区内 的服务器可能同时遭遇网络设备、 电力等故障, 因此,把一个 集群内的云服务器分散到不同的可用区甚至不同的数据中心 (Region) 是个明智的选择。 为Web服务集群配置负载均 DNS轮询 多台Web服务器可以通过配置负载均 者DNS轮询提供对外 服务。 因为它对外屏蔽了 相比DNS轮询,负载均衡方式会更加灵活, 服务器的真实IP, 当负载均衡资源池内增加或减少服务器时, 对客户是透明的。而DNS存在时延的问题,集群发生调整后, 很有可能造成部分用户在很长一段时间内无法 访问网站。 另外,负载均衡能够跟踪后端应用服务器的健康状态, 自动排 除有故障的节点, 避免出现服务时断时续的问题。 对于特别大的应用,我们推荐使用负载均衡+DNS轮询的方 式, 只是这里的DNS轮询域名指向的是负载均 VIP。 实现动态部署 为了应对经常性的业务推广和可能的DDoS网络攻击, 实现系统 与应用程序的一键部署很重要。 系统 员可以根据应用的当 前状态(CPU、 内存使用率、HTTP的响应时间等)作出判断, 即时增加服务器,并且快速部署应用程序,顶住突增的业务 流量。如果实现得更智能一些,可以在应用服务器内部部署一 些监控程序, 由主控程序判断当前整个集群的负载情况,调用 ECS API自动增减服务节点。 用一台主控机去批量操作其他云服务器时, 应该尽量使用一些 便捷工具, 例如SSH密钥对, 它实现了授权服务器间的免登录, 使得集群 更加简单。
    定时备份很重要 前面说到,没有什么技术可以保证100%的数据安全,你的数 据始终面临误删文件、病毒破坏、程序写错、硬件损坏等种种 可能的风险。如果你的数据非常重要,请定期备份!在弹性计 算平台上,这件事情相对简单,快照功能自动完成增量数据备 份。然而,单个物理位置的存储始终会面临地震、火灾等灾难 的威胁,如果你觉得还不够安全,或者有异地使用的需要,且 能够承受异地备份带来的存储、带宽等成本,可以自行拷贝数 据文件。 弹性计算平台也 考虑跨机房的容灾方案。 将应用程序配置为自恢复的 单台服务器的硬件故障是常见现象,以现有的云计算技术能 力, 尚无法做到不影响云服务器的运行,但ECS可以快速检测 到故障特征,并且将云服务器自动迁移到新的宿主机上。这里 存在一个问题, 虽然云服务器重新启动了,而且硬盘数据恢复 到最后一刻的状态,但原先正在运行的应用程序中止了。为了 强烈建议 让你的服务中断时间尽量地缩短,避免人工的介入, 将应用程序及相关服务设置为开机自启动,这样,你就可以高 枕无忧地睡大觉,不用半夜起来恢复应用,尽管只是几个点击 或者命令操作。 加固系统 安全也是高可用的重要前提之一。放在IDC机房中的服务器时 时面临各种恶意攻击, 图3是我们偶然截取的一个攻击片段。
    图3 端口扫描攻击
    这台服务器在循环探测机房中每一台机器的1433端口, 有经验 的读者很快猜出来了,它是在试探SQLSer ver服务,一旦 SQLServer被攻破,再利用SQLServer 员的系统权限漏洞, 马上就有一些机器沦为肉鸡。 阿里云弹性计算服务在平台层面就屏蔽了一些影响范围很大的 恶意攻击,例如篡改MAC、伪造IP、发送ARP欺骗包等,但用
    11
    Special 特别专题
    户的系统还是要遵循一些安全最佳实践, 才能让自己的系统更 加稳固。 关闭不必要的系统服务 越多的服务意味着越多的漏洞,特别是Windows共享文件夹、 远程修改注册表项等服务都存在巨大的风险, 如果你的工作不 需要这些服务, 请马上关闭。 及时升级系统补丁 前段时间爆出的微软高危RDP漏洞让很多用户深受其害,通过 黑客就可以直接获取系统管理员权限 一个简单的Python脚本, 或者直接把服务器打至蓝屏。不要忽略操作系统厂商的安全警 告, 一旦遭遇攻击, 将造成不可挽回的损失。 开启系统防火墙 采用白名单控制策略, 只开放最小集合的端口。对于数据库服 务器, 更要设置IP白名单, 仅允许前端的Web服务器访问; 对于 Web服务器, 只对外开放80端口。 修改常见服务的端口 从刚才的攻击示例看出, 黑客虽然漫无目的地扫描同一网段的 IP, 但攻击的目标端口只有一个1433, 这是SQLServer的默认配 置。 为了减少这类攻击, 最有效的方式就是修改数据库、 FTP这 类常见服 默认端口, 增加黑客扫描的难度。 加密数据传输 我曾经遇到过一个很奇怪的现象, 在一台Windows 2003服务器 上, 应用的负载很低, 但CPU利用率达到了99%, 从任 理器 中看到, 有无数个winlogon.exe进程疯狂消耗CPU, 当时百思不 得其 一天之后, 这台服务器就沦陷了, 我才恍然大悟, 一定 是攻击者在尝试破解密码。对于这类攻击, 即使调整密码长度 增加破解难度也收效不大, 因为攻击过程会消耗大量的系统资 源, 的业务根本无法进行。何况,现在的服务器 能力 越来越强, 一个密码的安全性实在太低了。 一些加密传输方式能够有效地抵御这类攻击, 也能减少传输过 程中的敏感信息泄露问题。Windows可以配置远程桌面服务使 用SSL传输,要求客户端必须持有证书登录。Linux则可以使用 SSH登录密钥对。结合修改默认端 方式,将使你的系统安 全性提高一个层次。 12
    友情提醒: 如果你开启了防火墙,又修改了默认的远程桌面或 者SSH端口,请务必在防火墙中设置这些服 白名单,否则 就悲剧了。
    应用架构
    要支持上述高可用、可扩展的部署架构,应用程序也要做相应 的调整。 Web应用的无状态设计 Web应用的诸多因素可能造成系统无法扩展:本地存放的上 以上传文件为例,假设使用了本 传文件、进程内的Session等。 地存储,用户第一个请求上传了一个头像文件,存放在Web-A 服务器上,接着刷新页面,但这个请求被发送到Web-B服务 器上,他惊奇地发现:上传的头像文件不见了!要 这个问 题,必须把上传文件存放到共享的文件夹,Web服务器不能保 留任何自己的数据(即无状态) 。而对于Session数据,一般的 建议是用Cookie ,或者存放到共享的Session服务器或者 数据库中。 用分布式服务 单点的服务 单点就意味着故障,不仅有可用性的风险也有性能瓶颈的问 题。常见的单点一般出现在共享文件服务器、Session服务器、 缓存服务器、数据库服务器。 阿里云计算平台提供了一系列分 布式服务, 是这些单点服 可行替代方案。 需要无空间和访问频率限制的小文件存储?用开放存储服务 (OSS) 。 需要可弹性分配存储空间和IO能力的数据库? 用关系型数据库 服务 (RDS) 。 需要海量结构化数据存储服务?用开放结构化数据服务 (OTS) 。 对于平台暂时不提供的分布式缓存服务, 业界也提供了一些解 决方案, 例如Memcached集群技术, 但这也对应用程序的设计 提出了更高的要求, 开发者必须清楚各种服 HA原理, 还需 要了 致性哈希算法等细节的实现。
    凌云 2012. 8
    应用的安全不容忽视 安全不仅是操作系统配置的问题,堡垒更容易从内部被攻破, 而这个内鬼很有可能就是我们的应用。从概率上说,一个复杂 程序会比一个简单程序多很多漏洞,而Web应用涉及数据库、 应用服务器、缓存等诸多组件,稍有不慎,攻击的后门就会向 黑客敞开。 常见的Web服务漏洞有以下几种。 XSS跨站脚本攻击 这类Web攻击最为普遍,一般发生在允许用户输入内容的页 面,尤其是提供富文本编辑的模块。几乎所有的网站都会被 限制用户输 XSS攻击光顾,但防御这类攻击也是最为简单的: 入,并且在页面输出内容时对敏感字符进行编码,相对来说, 后者更为重要一些。PHP语言的htmlspecialchars函数、Java Jakarta commons的StringEscapeUtils类都是实现编码功能的快 捷工具。 SQL注入攻击 只要应用 中存在这样的SQL:
    sql = "select * from User where name='" + name + "' and password='" + password + "'";
    件,却忘了限制上传目录的可执行权限,攻击者就可以上传一 个带webshell的jsp文件, 通过访问这个上传文件的URL就可以 完全控制网站服务器。 一定要取消上传文件的可执行权限, 另外, 绝不允许这类文件 被当作服 脚本 。 赶紧为你的网站实施安全策略吧! Cookie与传输加密 只要会用HttpWatch、Firebug等开发工具, 大家都可以看到各 大网站的Cookie数据,而这些Cookie 网站用于鉴别用户身 黑客有可能猜测出网站的鉴 份的凭证。通过分析Cookie构成, 权策略。要想让你的应用更安全,可以对Cookie等敏感数据进 行加密。如果你的网站还包含在线支付功能,部署带授权证书 的HTTPS是必不可少的,这也是很多第三方支付平台的强制 要求。 综上所述, 虽然云计算平台提供了更灵活、更稳定的基础服务 保障,但它不足以 应用的高可用性和可扩展性问题,应用 自身必须在架构设计和部署上充分考虑各种意外情况, 才能实 现真 义上的高可用、 可扩展。
    这个应用距离沦陷也就不远了, 攻击者只要输入一个值为
    ”’or 1=1 or name=’
    的name就可以轻易进入你的应用系统。
    杜绝这类问题的方法有2种: 对输入的特殊字符进行转义,例如PHP的mysql_real_escape_ string函数; 或者采用参数化的SQL, 例如:
    sql = "select * from User where name=? and password=?"; result = query(sql, name, password);
    后者实现更加优雅,绝对避免了SQL注入的风险,而且在提升 数据库的查询性能上也会有所帮助。 上传文件漏洞 这是最为危险的应用级漏洞,特别容易出现在允许用户上传内 容的网站中。假设一个tomcat搭建的Web网站允许用户上传附
    陈波
    阿里云总监,多年从事SaaS软件、互联网、搜索引擎、云 等技 术领域的工作,目前主要负 里云弹性计算平台底层技术研发, 涉及虚拟化、负载均衡及云引擎等云计算产品。
    13
    Special 特别专题
    以WordPress为例 教你如何把传统网站搬到云上
    文 / 周光辉
    在云 出现以前, 大部分传统互联网的开发者的做法是自己购 买服务器, 寻找托管机房, 自己安装数据库, 服务器和数据库的 维护任务也由自己承担。 这些做法给用户带来了巨大的硬件成本 以及人力成本。 并且当数据库出现一些疑难杂症或者硬件损坏导 致数据丢失, 很多用户都是束手无策, 不得不花费更大的 寻 求原厂或者第三方数据库服务厂商的帮助。 《Disaster Recovery Journal》有一项调查显示, 数据库出现故障的原因分类当中, 硬 件/系统故障占据了49%,人为维护不当导致的故障占据了36%。 云计算的出现大大改变了这个状况。云 是什么呢?简单地 讲, 云计算就是把 和存储资源通过互联网以公共服务的方式 提供给用户, 就像我们日常使用水电煤一样。 通过使用阿里云的 云计算服务, 用户不再需要购买硬件, 不需要寻找托管机房, 而 且也摆脱了维护数据库和服务器的负担, 从而也减小了硬件/系 统故障以及人为维护不当导致的故障概率。 并且构建网站的资源 都可以按需购买, 因此他们的硬件成本和人力成本将大大降低! 本文的主角是阿里云的关系型数据库服务(RDS)。通过使用 RDS, 用户不需要担心数据库安全漏洞, 阿里巴巴专业的DBA团 队会为用户做这些事情; 也不需要操心数据备份, 只需要定义好 备份策略, RDS会自动为用户备份; 更不用担心硬件或者系统损 坏导致数据库宕机, RDS提供了大于99.95%的可用性。 任何使用MySQL、SQLServer数据库的场景都可以迁移到RDS 上来, 比如: 淘宝ISV开发的各种应用、phpwind/Discuz论坛、 14
    WordPress等。 这些应用搬到云端的大致步骤如下。 在aliyun.com网站上购买阿里云的云服务器, 并且开通阿里云的 RDS服务。 应用迁移: 把现有传统网站系统的应用程序部署在云服务器上。 数据迁移: 把现有数据库的数据备份出来, 上传到云服务器上 面, 然后数据导入到RDS中。 迁移有以下两种模式。 现有系统整体迁移: 将原有系统停机, 应用和数据同时迁移至 云端。这种模式简单, 但会影响业务。 渐进式部分迁移: 原有系统不停机。 在云端部署好应用程序和 数据库, 同时开发数据迁移程序, 一个用户一个用户地迁移; 当 某个用户来访问时, 应用程序先判断这个用户的数据是在线下数 据库中还是在云端, 若在云端则访问RDS, 若在线下则访问线下 数据库。 这种模式复杂并且有一定的开发工作量, 但不影响业务 的正常运行。 下面将以WordPress为例,采用现有系统整体迁移的方式描述 如何将WordPress迁移到云端, 其他的应用迁移过程与此类似。 WordPress是一种使用PHP语言和MySQL数据库开发的开源、 免 费的Blog (博客、 网站) 引擎, 用户可以在支持PHP和MySQL数据 库的服务器上建立自己的Blog。 WordPress插件众多, 易于扩充功 能, 安装和使用都非常方便。 目前WordPress已经成为主流的Blog
    凌云 2012. 8
    搭建平台。 具体可以见http://cn.wordpress.org/。
    第一步:购买云服务器和RDS服务
    根据应用的架构和应用压力在http://www.aliyun.com上购买相 应的云服务器和RDS规格。购买之后可以看到你的云服务器 的IP地址以及RDS的连接地址以及用户名和密码。在我的例子 当中,云服务器的IP地址为42.120.125.186,RDS的连接地址为 cloudcc.mysql.aliyun.com, 数据库名为wordpress, 用户名/密码: wordpress/wordpress, 端口为3306。
    图2 创建配置文件
    点击“现在就开始! ”按钮,弹出图3所示页面,填写里面的信 息, 将RDS的连接串填在“数据库主机”一栏, 将RDS中的数据 库名和用户名/密码名填写在相应的栏目里面。
    第二步:应用迁移
    登录云服务器安装Apache并启动Apache服务。 安装Apache的 步骤这里不作介绍。 Apache的安装目录在/usr/local/apache2。 在http://cn.wordpress.org/上面下载WordPress压缩包, 将这个压 缩包上传到云服务器的/usr/local/apache2/htdocs目录下, 并解 压生成wordpress目录。
    [root@42.120.125.186 htdocs]# [root@42.120.125.186 htdocs]#pwd /usr/local/apache2/htdocs [root@42.120.125.186 htdocs]# [root@42.120.125.186 htdocs]#unzip /tmp/wordpress3.3.1-zh_CN.zip Archive: /tmp/wordpress-3.3.1-zh_CN.zip creating:wordpress/ creating:wordpress/wp-includes/ inflating:wordpress/wp-includes/defaultfilters.php inflating:wordpress/wp-includes/class-wp-ajaxresponse.php
    图3 填写信息
    点击 “提交” 弹出图4所示页面。 ,
    打开浏览器, 输入http://42.120.125.186/wordpress, 浏览器中显 示如图1所示。
    图1 浏览器初始显示
    点击 “创建一个配置文件” 弹出图2所示页面。 ,
    图4 提交后的页面显示
    15
    Special 特别专题
    这个页面提示“抱歉,无法写入wp-config.php文件” 因此需 , 要手工创建这个文件, 并将上面的内容复制 (Windows: Ctrl-a, Ctrl-c; Mac: Cmd-a, Cmd-c) 到这个文件中。
    [root@42.120.125.186 wordpress]# pwd /usr/local/apache2/htdocs/wordpress [root@42.120.125.186 wordpress]# cat > wp-config.php <粘贴剪贴板上的内容> (Windows: Ctrl-v; Mac: Cmd-v)
    “很遗憾, 一切皆已完成! ) 。WordPress的作者在安装最后 : ” 还跟我们幽默了一把。 至此, 你就可以访问新的WordPress了。 打 开浏览器, 输入http://42.120.125.186/wordpress就会弹出图7所示 的画面。
    创建好wp-con??g.php后, “进行安装” 弹出图5所示页面。 点击 ,
    图7 WordPress欢迎界面
    第三步:数据迁移
    在完成WordPress的安装后, 接着需要将原来WordPress系统中的 数据迁移到RDS中。 先将原来的WordPress的数据备份出来 (当然
    图5 安装页面
    也可以安装WordPress的WP-DB-Backup插件进行数据库备份) :
    [root@42.120.125.186 wordpress]#mysqldump –u root – h 127.0.0.1 –P 3005 -–default-character-set=utf8 –-opt –-extended-insert=false –-triggers –R -–singletransaction wordpress > /tmp/wordpress.sql
    在图5的页面中填写相应的信息, 这些信息可以根据自身的需要 填写。 其中的用户名和密码是 WordPress所需要的用户名和 密码。 填写好以上信息后, 点击 “安装WordPress” 等待一会儿, , 就会 弹出图6所示页面。
    将上一步备份出来的数据文件/tmp/wordpess.sql上传到云服务 器的/tmp目录下面。 然后将数据导入到RDS中去。
    [root@42.120.125.186 wordpress]#mysql –h cloudcc. mysql.aliyun.com –u wordpress –pwordpress wordpress 最后在域名提供商的域名 系统中,将域名指向云服务器IP 地址。 到此,WordPress迁移到云端的工作已全部完成。你是否 还沉浸在愉悦的迁移过程中?很遗憾, 一切皆已完成!
    周光辉
    阿里云云 基础产品部资深专家。主要负责RDS(关系型数据 库)产品以及云监控产品。
    图6 完成页面
    16
    凌云 2012. 8
    深入浅出DDoS攻击防御
    文 / 魏兴国
    敌情篇 ——DDoS攻击原理
    DDoS攻击基础
    DDoS (Distributed Denial of Service, 分布式拒绝服务) 攻击的 主要目的是让指定目标无法提供 服务,甚至从互联网上消 失, 是目前最强大、 最难防 攻击之一。 按照发起的方式, DDoS可以简单分为三类。 第一类以力取胜,海量数据包从互联网的各个角落蜂拥而来, 堵塞IDC入口, 让各种强大的硬件防御系统、 快速高效的应急流 程无用武之地。这种类型的攻击典型 是ICMP Flood和UDP Flood, 现在已不常见。 第二类以巧取胜,灵动而难以察觉,每隔几分钟发一个包甚至 只需要一个包,就可以让豪华配置的服务器不再响应。这类攻 击主要是利用协议或者软件的漏洞发起,例如Slowloris攻击、 Hash冲突攻击等, 需要特定环境机缘巧合下才能出现。 第三类是上述两种的混合,轻灵浑厚兼而有之,既利用了协 议、 系统的缺陷, 又具备了海量的流量, 例如SYN Flood攻击、 DNS Query Flood攻击, 是当前的主流攻击方式。 本文将一一描述这些最常见、最具代表性攻击方式, 并介绍它 们的防御方案。
    SYN Flood
    SYN Flood是互联网上最经典的DDoS攻击方式之一, 最早出现 于1999年左右, 雅虎是当时最著名的受害者。 SYN Flood攻击利 用了TCP三次握手的缺陷,能够以较小代价使目标服务器无法 响应, 且难以追查。 标准的TCP三次握手过程如下: 客户端发送一个包含SYN标志的TCP报文,SYN即同步 (Synchronize) 同步报文会指明客户端使用的端 及TCP , 连接的初始序号; 服务器在收到客户端的SYN报文后, 将返回一个SYN+ACK (即 确认Acknowledgement) 的报文, 表示客户端的请求被接受, 同 时TCP初始序号自动加1; 客户端也返回一个 报文ACK给服务器端, 同样TCP序列号 被加1。 经过这三步,TCP连接就建立完成。TCP协议为了实现可靠传 输,在三次握手的过程中设置了一些异常处理机制。第三步中 如果服务器没有收到客户端的最终ACK确认报文, 会一直处于 SYN_RECV状态,将客户端IP加入等待列表,并重发第二步的 SYN+ACK报文。重发一般进行3-5次, 大约间隔30秒左右轮询 17
    Special 特别专题
    一 待列表重试所有客户端。另一方面,服务器在自己发出 了SYN+ACK报文后, 会预分配资源为即将建立的TCP连接储存 信息做准备,这个资源在等待重试期间一直保留。更为重要的 是,服务器资源有限,可以维护的SYN_RECV状态超过极限后 就不再接受新的SYN报文, 也就是拒绝新的TCP连接建立。 SYN Flood 利用了上文中TCP协议的设定,达到攻击的目 的。攻击者伪装大量的IP地址给服务器发送SYN报文, 由于伪 造的IP地址几乎不可能存在, 也就几乎没有设备会给服务器返 回任何应答了。因此,服务器将会维持一个庞大的等待列表, 不停地重试发送SYN+ACK报文, 同时占用着大量的资源无法 释放。更为关键的是,被攻击服务器的SYN_RECV队列被恶意 的数据包占满,不再接受新的SYN请求,合法用户无法完成三 次握手建立起TCP连接。 也就是说, 这个服务器被SYN Flood拒 绝服务了。 对SYN Flood有兴 可以看看http://www.icylife.net/yunshu/ show.php?id=367,这是我2006年写的代码,后来做过几次修 改, 修改了Bug, 并降低了攻击性, 纯做测试使用。
    尽可能多地消耗DNS服务器的CPU资源。 DNS缓存的可能性, 关于DNS Query Flood的代码, 我在2011年7月为了测试服务器 性能曾经写过一份代码, 链接是http://www.icylife.net/yunshu/ show.php?id=832。 同样的, 这份 人为降低了攻击性, 只做 测试用途。
    HTTP Flood
    上文描述的SYN Flood、 DNS Query Flood在现阶段已经能做到 有效防御了,真正令各大厂商以及互联网企业头疼的是HTTP Flood攻击。 HTTP Flood是针对Web服务在第七层协议发起的攻 击。它的巨大危害性主要表现在三个方面:发起方便、过滤困 难、 影响深远。 SYN Flood和DNS Query Flood都需要攻击者以root权限控制大 批量的傀儡机。 收集大量root权限的傀儡机很花费时间和精力, 而且在攻击过程中傀儡机会由于流量异常被 员发现,攻击 者的资源快速损耗而补充缓慢, 导致攻击强度明显降低而且不 可长期持续。HTTP Flood攻击则不同,攻击者并不需要控制大 批的傀儡机,取而代之的是通过端口扫描程序在互联网上寻找 匿名的HTTP 或者SOCKS ,攻击者通过匿名 对攻 击目标发起HTTP请求。 匿名 是一种比较丰富的资源, 花几 天时间获取代理并不是难事, 因此攻击容易发起而且可以长期 高强度的持续。 另一方面, HTTP Flood攻击在HTTP层发起, 极力模仿 用户 的网页请求行为,与网站业 密相关,安全厂商很难提供一 套通用的且不影响用户体验的方案。在一个地方工作得很好的 规则, 换一个场景可能带来大量的误杀。 最后,HTTP Flood攻击会引起严重的连锁反应, 不仅仅是直接 导致被攻击的Web前端响应缓慢,还间接攻击到后端的Java等 业务层逻辑以及更后端的数据库服务,增大它们的压力,甚至 对日志存储服务器都带来影响。 有意思的是,HTTP Flood还有个颇有历史渊源的昵称叫做CC 攻击。 CC是Challenge Collapsar的缩写, 而Collapsar是国内一家 著名安全公司的DDoS防御设备。从目前的情况来看, 不仅仅是 Collapsar, 所有的硬件防御设备都还在被挑战着, 风险并未 。
    DNS Query Flood
    作为互联网最基础、最核心的服务,DNS自然也是DDoS攻击的 重要目标之一。打垮DNS服务能够间接打垮一家公司的全部业 务,或者打垮一个地区的网络服务。前些时候风头正盛的黑客 组织anonymous也曾经宣布要攻击全球互联网的13台根DNS服 务器, 不过最终没有得手。 UDP攻击是最容易发起海量流量的攻击手段,而且源IP随机伪 因为大多数IP并不提供UDP服 造难以追查。但过滤比较容易, 务, 直接丢弃UDP流量即可。 所以现在纯粹的UDP流量攻击比较 少见了, 取而代之的是UDP协议承载的DNS Query Flood攻击。 简单地说, 越上层协议上发动的DDoS攻击越难以防御, 因为协 议越上层, 与业务关联越大, 防御系统面临的情况越复杂。 DNS Query Flood就是攻击者操纵大量傀儡机器, 对目标发起海 量的域名查询请求。为了防止基于ACL的过滤,必须提高数据 包的随机性。常用的做法是UDP层随机伪造源IP地址、随机伪 造源端口等参数。在DNS协议层,随机伪造查询ID以及待解析 域名。随机伪造待 域名除了防止过滤外,还可以降低命中
    18
    凌云 2012. 8
    慢速连接攻击
    提起攻击, 第一反应就是海量的流量、 海 量的报文。但有一种攻击却反其道而行 之, 以慢著称, 以至于有些攻击目标被打 死了都不知道是怎么死的,这就是慢速 连接攻击, 最具代表性的是rsnake发明的 Slowloris。 HTTP协议规定, HTTP Request以\r\n\r\n 结尾表示客户端发送结束,服务端开 始处理。那么,如果永远不发送\r\n\r\n 会如何?Slowloris就是利用这一点来做 DDoS攻击的。 攻击者在HTTP请求头中将 Connection设置为Keep-Alive,要求Web Server保持TCP连接不要断开, 随后缓慢 地每隔几分钟发送一个key-value格式的 数据到服 , 如a:b\r\n, 导致服务端认 为HTTP头部没有接收完成而一直等待。 如果攻击者使用多线程或者傀儡机来做 同样的操作, 服务器的Web容器很快就被 攻击者占满了TCP连接而不再接受新的 请求。 比 很快的, Slowloris开始出现各种变种。 如POST方法向Web Server提交数据、填 充一大大Content-Length但缓慢的一个字节一个字节的POST 真正数据内容等等。关于Slowloris攻击,rsnake也给出了一个 测试 , 参见http://ha.ckers.org/slowloris/slowloris.pl。 高级攻击者从来不会使用单一的手段进行攻击, 而是根据目标 环境灵活组合。普通的SYN Flood容易被流量清洗设备通过反 向探测、SYN Cookie等技术手段过滤掉,但如果在SYN Flood 中混入SYN+ACK数据包,使每一个伪造的SYN数据包都有一 个与之对应的伪造的客户端 报文,这里的对应是指源IP地 址、 源端 目的IP、 目的端口、 TCP窗口大小、 TTL等都符合同 一个主机同一个TCP Flow的特征, 流量清洗设备的反向探测和 SYN Cookie性能压力将会显著增大。 其实SYN数据报文配合其 他各种标志位, 都有特殊的攻击效果, 这里不一一介绍。 对DNS Query Flood而言, 也有独特的技巧。 首先, DNS可以分为普通DNS和授权域DNS, 攻击普通DNS, IP 地址需要随机伪造, 并且指明服务器要求做递归 ;但攻击
    DDoS攻击进阶
    混合攻击
    以上介绍了几种基础的攻击手段, 其中任意一种都可以用来攻 击网络, 甚至击垮阿里、 百度、 腾讯这种巨型网站。 但这些并不 是全部, 不同层次的攻击者能够发起完全不同的DDoS攻击, 运 用之妙, 存乎一心。
    19
    Special 特别专题
    授权域DNS,伪造的源IP地址则不应该是纯随机的,而应该是 事先收集的全球各地ISP的DNS地址, 这样才能达到最大攻击效 果,使流量清洗设备处于添加IP黑名单还是不添加IP黑名单的 尴尬处境。添加会导致大量误杀,不添加黑名单则每个报文都 需要反向探测从而加大性能压力。 另一方面,前面提到,为了加大清洗设备的压力不命中缓存而 需要随机化请求的域名,但需要注意的是,待解析域名必须在 比如说只伪造域名的某一部分而固 伪造中带有一定的规律性, 化一部分,用来突破清洗设备设置的白名单。道理很简单,腾 讯的服务器可以只 腾讯的域名, 完全随机的域名可能会直 接被丢弃, 需要固化。 但如果完全固定, 也很容易直接被丢弃, 因此又需要伪造一部分。 其次, 对DNS的攻击不应该只着重于UDP端口, 根据DNS协议, TCP端口也是标准服务。 在攻击时, 可以UDP和TCP攻击同时进 行。 在于突破前端的cache, 通过HTTP头中 HTTP Flood的着重点, 的字段设置直接到达Web Server本身。另外,HTTP Flood对目 标的选取也非常关键,一般的攻击者会选择搜索之类需要做大 量数据查询的页面作为攻击目标,这是非常正确的,可以消耗 服务器尽可能多的资源。但这种攻击容易被清洗设备通过人机 识别的方式识别出来, 如何 这个问题?很简单,尽量 选择 用户也通过APP访问的页面,一般来说就是各种Web API。正常用户和恶意流量都是来源于APP, 人机差别很小, 基 本融为一体难以区分。 Slowloris之类的慢速攻击, 是通过巧妙的手段占住连接不释放 达到攻击的目的,但这也是双刃剑,每一个TCP连接既存在于 服务端也存在于自身, 自身也需要消耗资源维持TCP状态, 因此 连接不能保持太多。如果可以解决这一点,攻击性会得到极大 增强, 也就是说Slowloris可以通过stateless的方式发动攻击, 在 系统 客户端通过嗅探捕获TCP的序列号和 维护TCP连接, 内核无需关注TCP的各种状态变迁,一台笔记本即可产生多达 65535个TCP连接。 前面描述的,都是技术层面的攻击增强。在人的方面,还可以
    再 有一些别的手段。 如果SYN Flood发出大量数据包正面强攻, 辅之以Slowloris慢速连接, 多少人能够发现其中的秘密?即使 服务器宕机了也许还只发现了SYN攻击想去加强TCP层清洗而 忽视了应用层的行为。种种攻击都可以互相配合,达到最大的 效果。攻击时间的选择,也是一大关键,比如说选择维护人员 吃午饭时、 维护人员下班堵在路上或者在地铁里无线上网卡都 没有信号时、 目标企业在举行大规模活动流量飙升时等。 因此不提供代码,也不做深 这里描述的只是纯粹的攻击行为, 入介绍。
    来自P2P网络的攻击
    前面的攻击方式,多多少少都需要一些傀儡机,即使是HTTP Flood也需要搜索大量的匿名 。 如果有一种攻击, 只需要发出 一些指令, 就有机器自动上来执行, 才是完美的方案。 这种攻击 已经出现了, 是来自P2P网络的攻击。 大家都知道, 互联网上的P2P用户和流量都是一个极为庞大的数 字。 如果他们都去一个指定的地方下载数据, 使成千上万的真实 IP地址连接过来, 没有哪个设备能够支撑住。 拿BT下载来说, 伪 造一些热门视频的种子, 发布到搜索引擎, 就足以骗到许多用户 和流量了, 但这只是基础攻击。 高级P2P攻击, 是直接欺骗资源管理服务器。 如迅雷客户端会把 自己发现的资源上传到资源 服务器, 然后推送给其他需要下 载相同资源的用户, 这样, 一个链接就发布出去。 通过协议逆向, 攻击者伪造出大批量的热门资源信息通过资源 中心分发出 去, 瞬间就可以传遍整个P2P网络。 更为恐怖的是, 这种攻击是无 法停止的, 即使是攻击者自身也无法停止, 攻击一直持续到P2P官 方发现问题更新服务器且下载用户重启下载软件时为止。
    20
    凌云 2012. 8
    应对篇 ——DDoS防御方案
    防御基础
    攻击流量到底多大
    谈到DDoS防御,首先就是要知道到底遭受了多大的攻击。这 个问题看似简单,实际上却有很多不为人知的细节在里面。 以SYN Flood为例,为了提高发送效率在服务端产生更多的 SYN等待队列,攻击程序在填充包头时,IP首部和TCP首部都 因此IP首部长度恰好是20字节,TCP首部 不填充可选的字段, 也是20字节,共40字节。 对于以太网来说,最小的包长度数据段必须达到46字节,而攻 击报文只有40字节,因此,网卡在发送时,会做一些处理,在 TCP首部的末尾,填充6个0来满足最小包的长度要求。这个时 候,整个数据包的长度为14字节的以太网头,20字节的IP头, 20字节的TCP头,再加上因为最小包长度要求而填充的6个字 节的0,一共是60字节。 但这还没有结束。以太网在传输数据时,还有CRC检验的要 求。网卡会在发送数据之前对数据包进行CRC检验,将4字节 的CRC值附加到包头的最后面。这个时候,数据包长度已不再 是40字节,而是变成64字节了,这就是常说的SYN小包攻击, 数据包结构如下:
    |14字节以太网头部|20字节IP头部|20字节TCP|6字节填充|4字节检验| |目的MAC|源MAC|协议类型| IP头 |TCP头|以太网填充 | CRC检验 |
    变成了10101011, 当主机监测到连续的两个1时, 就知道后面开 始是数据了。 在网络传输时, 数据的结构如下:
    |8字节前导码|6字节目的MAC地址|6字节源MAC地址|2字节上层协议类型 |20字节IP头|20字节TCP头|6字节以太网填充|4字节CRC检验|12字节帧 间距|
    也就是说,一个本来只有40字节的SYN包,在网络上传输时占 的带宽, 其实是84字节。 有了上面的基础, 现在可以开始计算攻击流量和网络设备的线 速问题了。 当只填充IP头和TCP头的最小SYN包跑在以太网络 上时, 100Mbit的网络, 能支持的最大PPS (Packet Per Second) 1000Mbit的网络, 能支 是100×106 / (8 * (64+8+12)) = 148809, 持的最大PPS是1488090。
    SYN Flood防御
    前文描述过,SYN Flood攻击大量消耗服务器的CPU、内存资 源, 并占满SYN等待队列。 相应的, 我们修改内核参数即可有效 缓解。 主要参数如下:
    net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_synack_retries = 2
    分别为启用SYN Cookie、设置SYN最大队列长度以及设置 SYN+ACK最大重试次数。 SYN Cookie的作用是缓解服务器资源压力。启用之前,服务器 在接到SYN数据包后,立即分配存储空间,并随机化一个数字 作为SYN号发送SYN+ACK数据包。然后保存连接的状态信息 服务器不再分配存储 等待客户端 。启用SYN Cookie之后, 空间,而且通过基于时间种子的随机数算法设置一个SYN号, 替代完全随机的SYN号。 发送完SYN+ACK确认报文之后, 清空 资源不保存任何状态信息。直到服务器接到客户端的最终ACK 包,通过Cookie检验算法鉴定是否与发出去的SYN+ACK报文 序列号匹配, 匹配则通过完成握手, 失败则丢弃。 当然, 前文的
    到64字节时,SYN数据包已经填充完成,准备开始传输了。攻 击数据包很小,远远不够最大传输单元(MTU)的1500字节, 因此不会被分片。那么这些数据包就像生产流水线上的罐头一 样,一个包连着一个包紧密地挤在一起传输吗?事实上不是这 样的。 以太网在传输时,还有前导码(preamble)和帧间距(interframe gap) 。其中前导码占8字节(byte) 即64比特位。前导 , 码前面的7字节都是10101010, 1和0间隔而成。但第八个字节就
    21
    Special 特别专题
    高级攻击中有SYN混合ACK的攻击方法,则是对此种防御方法 的反击, 其中优劣由双方的硬件配置决定。 tcp_max_syn_backlog则是使用服务器的内存资源,换取更大 的等待队列长度,让攻击数据包不至于占满所有连接而导致正 常用户无法完成握手。net.ipv4.tcp_synack_retries是降低服务 器SYN+ACK报文重试次数,尽快释放等待资源。这三种措施 与攻击的三种危害一一对应,完完全全地对症下药。但这些措 施也是双刃剑,可能消耗服务器更多的内存资源,甚至影响正 常用户建立TCP连接,需要评估服务器硬件资源和攻击大小谨 慎设置。 除了定制TCP/IP协议栈之外,还有一种常见做法是TCP首包丢 弃方案, 利用TCP协议的重传机制识别正常用户和攻击报文。 当 防御设备接到一个IP地址的SYN报文后, 简单比对该IP是否存在 于白名单中, 存在则转发到后端。 如不存在于白名单中, 检查是 否是该IP在一定时间段内的首次SYN报文, 不是则检查是否重传 报文, 是重传则转发并加入白名单, 不是则丢弃并加入黑名单。 是首次SYN报文则丢弃并等待一段时间以试图接受该IP的SYN 重传报文, 等待超时则判定为攻击报文加入黑名单。 首包丢弃方案对用户体验会略有影响, 因为丢弃首包重传会增 大业 响应时间, 有鉴于此发展出了一种更优的TCP Proxy方 案。所有的SYN数据报文由清洗设备接受,按照SYN Cookie方 案处理。和设备成功建立了TCP三次握手的IP地址被判定为合 法用户加入白名单, 由设备伪装真实客户端IP地址再与真实服 务器完成三次握手,随后转发数据。而指定时间内没有和设备 完成三次握手的IP地址,被判定为恶意IP地址屏蔽一定时间。 除了SYN Cookie结合TCP Proxy外,清洗设备还具备多种畸形 TCP标志位数据包探测的能力,通过对SYN报文返回非预期应 答测试客户端反应的方式来鉴别 访问和恶意行为。 清洗设备的硬件具有特殊的网络处理器芯片和特别优化的操作 系统、 TCP/IP协议栈, 可以处理非常巨大的流量和SYN队列。
    缓存直接返回结果来保护后端业务。大型的互联网企业,会有 庞大的CDN节点缓存内容。 当高级攻击者穿透缓存时,清洗设备会截获HTTP请求做特殊 处理。 最简单的方法就是对源IP的HTTP请求频率做统计, 高于 一定频率的IP地址加入黑名单。这种方法过于简单,容易带来 误杀,并且无法屏蔽来自代理服务器的攻击, 因此逐渐废止, 取而代之的是JavaScript跳转人机识别方案。 HTTP Flood是由程序模拟HTTP请求,一般来说不会解析服务 端返回数据,更不会解析JS之类 。 因此当清洗设备截获到 HTTP请求时,返回一段特殊JavaScript ,正常用户的浏览 器会处理并正常跳转不影响使用, 而攻击程序会攻击到空处。
    DNS Flood防御
    DNS攻击防御也有类似HTTP的防御手段,第一方案是缓存。 其次是重发,可以是直接丢弃DNS报文导致UDP层面的请求 重发,可以是返回特殊响应强制要求客户端使用TCP协议重发 DNS查询请求。 特殊的,对于授权域DNS的保护,设备会在业务 时期提取 收到的DNS域名列表和ISP DNS IP列表备用, 在攻击时, 非此列 表的请求一律丢弃, 大幅降低性能压力。 对于域名, 实行同样的 域名白名单机制, 非白名单中的域名 请求, 做丢弃处理。
    慢速连接攻击防御
    Slowloris攻击防御比较简单, 主要方案有两个。 第一个是统计每个TCP连接的时长并 单位时间内通过的报 文数量即可做精 别。一个TCP连接中, HTTP报文太少和报 文太多都是不 的,过少可能是慢速连接攻击,过多可能是 使用HTTP 1.1协议进行的HTTP Flood攻击, 在一个TCP连接中 发送多个HTTP请求。 第二个是限制HTTP头部传输的最大许可时间。超过指定时间 直接判定源IP地址为慢速连接 HTTP Header还没有传输完成, 攻击, 中断连接并加入黑名单。
    HTTP Flood防御
    HTTP Flood攻击防御主要通过缓存的方式进行, 尽量由设备的
    22
    凌云 2012. 8
    企业级防御
    互联网企业防御DDoS攻击,主要使用上 文的基础防御手段, 重点在于监控、 组织 以及流程。 监控需要具备多层监控、纵深防 概 念,从骨干网络、IDC入口网络的BPS、 PPS、协议分布,负载均 的VIP新建 连接数、并发连接数、BPS、PPS到主机 层的CPU状态、TCP新建连接数状态、 TCP并发连接数状态, 到业务层的业务处 理量、业务连通性等多个点部署监控系 统。 即使一个监控点失效, 其他监控点也 能够及时给出报警信息。多个点信息结 合, 准 断被攻击目标和攻击手法。 一旦发现异常,立即启动在虚拟防 织中的应急流程,防御组织需要囊括到 足够全面的人员,至少包含监控部门、 运维部门、 网络部门、安全部门、客服部 门、业务部门等,所有人员都需要2-3个 备份。流程启动后, 除了人工处理,还应 该包含一定的自动处理、半自动处理能 力。例如自动化的攻击分析, 确定攻击类型, 自动化、 半自动化 的防 略,在安全人员到位之前,最先发现攻击的部门可以 做一些缓 施。 除了DDoS到来之时的流程等工作之外, 更多的工作是在攻击到 来之前。 主要包含CDN节点部署、 DNS设置、 流程演习等。 对于 企业来说, 具备多个CDN节点是DDoS防御容量的关键指标。 当 一个机房承担不住海量数据时,可以通过DNS轮询的方式,把 流量引导到多个分布节点,使用防御设备分头处理。因此DNS 的TTL值需要设置得足够小,能够快速切换,每个CDN节点的 各种VIP设置也需要准备充分。 在虚拟化时代,各种用户的不同业务共处在相同的物理机平 台, 遭受DDoS攻击的可能性越来越高, 而且一个用户被攻击可
    魏兴国
    阿里巴巴集团高级安全专家,主要负 里云虚拟化业务安全,以 及集团范围的网络安全策略。
    能牵扯到大量的其他用户,危害被显著放大, 因此防御显得尤 为重要。阿里云的虚拟化业务,平均每天遭受约20起DDoS攻 击, 最大流量达到接近20Gbit/s, 所有这些攻击都在15分钟内自 动处理完成, 让客户远离DDoS的威胁, 专心发展业务。 总地来说,对DDoS防御,主要的工作是幕后积累。台上十分 钟, 台下十年功, 没有充分的资源准备, 没有足够的应急演练, 没有丰富的处理经验, DDoS攻击将是所有人的噩梦。
    23
    Special 特别专题
    阿里云存储OSS之九大使用技巧
    文 / 伞兴
    作为云时 程序员,如果你还在使用fopen( )、fclose( )之 类的函数,那你就OUT了!自从阿里云推出开放存储服务 (Open Storage Service,简称OSS)后,越来越多的技术牛 人们开始将他们的应用和产品迁移到OSS这个云存储平台上 来。在上期《凌云》杂志中,我们向大家简要介绍了如何使用 OSS——《用云存储和CDN轻松搞定网站图片》。在本期中, 我们再讲 些使用OSS开发的实用技巧,希望能起到抛砖 引玉的效果。
    在云存储上读写文件
    从你的代码中,把fopen( )、fclose( )这类的函数删掉吧!取而 写文件是PUT,读文件是 的是RESTful风格的HTTP请求: GET, 获取文件属性是HEAD, 删除文件是DELETE。 在搭建好的OSS Python开发环境下,直接用上步声明的my_ store对象创建并写入一个新文件(OSS称之为object)的 如下:
    res = my_store.put_object(bucket_name, object_name, input_content, content_type)
    环境准备
    OSS对外提供的RESTful风格的API接口遵循HTTP协议, 因此 任何语言和工具只要按照OSS API文 义的规则发送合法 的HTTP请求,就可以使用OSS服务。如果你不想自己做深入 的开发, 可以直接使用OSS官方提供的SDK(下载页面:http:// 。 有三种语言的SDK可供选择: Python、 oss.aliyun.com) 目前, PHP和Java。本文将以Python SDK为例【注: 其他语言的SDK 可能在函数名称上与本文中的例子有些出入, 具体请参考相应 】 为大家深入讲解OSS的使用技巧。 的SDK文 , 如果你的系统支持Python 2.7,那么Python的OSS开发环境部 署非常简单: 只要把SDK中的几个*.py文件放在开发目录下, 并 在代码中加入如下两行, 以填入在阿里云主页上注册时获得的 “Access ID”和 “Access Key” 就可以通过my_store这个对象 , 来使用SDK中 的各个函数了。
    import oss_api my_store = oss_api.OssAPI(“storage.aliyun.com”, Your_Access_ID, Your_Access_Key)
    上例中, content_type可以根据需求, 填入HTTP协议中规定的某 一种文件类型。如JPG图片使用 “image/jpeg” ,MP3文件使用 “audio/mpeg” 具体定义请参考RFC 2616。 , 选择 '的contenttype, 可以让其他互联网应用直接 '地使用OSS上的文件。 读取一个已存在文件的代码如下:
    res = my_store.get_object (bucket_name, object_name)
    获取文件属性的 如下:
    res = my_store.head_object (bucket_name, object_name)
    删除一个文件的 如下:
    res = my_store.delete_object (bucket_name, object_name)
    通过上面列举的这四个简单的函数, 你就可以轻松地将建立在 传统文件系统上的应用移植到OSS这个云存储平台上来了。
    通过签名URL防盗链
    由于OSS有着非常优秀的网络带宽质量,很多朋友希望基于
    24
    凌云 2012. 8
    OSS开发图片、 音乐、 视频等网站和应用。 但如何有效地防盗链 通过 是个让人头疼的问题。这里介绍一个简单且安全的方法: 签名URL防盗链。 首先, 确认自己的bucket权限是private, 即这个bucket的所有请 求必须在签名认证通过后才被认为是合法的。然后根据操作类 型、要访问的bucket、要访问的object以及超时时间, 动态地生 成一个经过签名的URL。通过这个签名URL,你授权的用户就 可以在该签名URL过期时间前执行相应的操作。 签名的Python 如下:
    res = my_store.delete_object (bucket_name, object_name)
    If-Unmodified-Since的含义和If-Modified-Since 相反:如 果内容没更新,则返回数据;否则返回HTTP状态码304。IfUnmodified-Since和If-Modified-Since这两个参数可以一起使 用, 以指定一个时间窗 例如:
    headers = {} headers[‘If-Modified-Since’] = “Sun, 22 Apr 2012 09:06:23 GMT” headers[‘If-Unmodified-Since’] = “Sun, 22 Apr 2012 09:16:23 GMT” res = my_store.get_object (bucket_name, object_name, headers)
    If-Match、If-None-Match这对参数与If-Unmodified-Since、IfModified-Since参数的含义类似, 只是参数不是时间戳, 而是内 容的MD5值。利用好这四个参数,可以节省大量的流量,也就 是可以节省很多money。
    其中method可以是PUT、GET、HEAD、DELETE中的任意一 种;最后一个参数“timeout”是超时的时间,单位是秒。一个 通过上面Python方法, 得到的签名URL为:
    http://storage.aliyun.com/sharedata/lingyun.jpg?OSSAcce ssKeyId=y6h7nbcothehvcp7jlnwmrw9&Expires=1335084740&Sig nature=LZeqnHSo5WkDNWKffKDgQBXR6fY%3D
    实现文件夹操作
    许多终端用户习惯了文件夹这个概念,而较难适应只有bucket 和object的云存储逻辑。 但我们可以基于OSS从逻辑上实现文件 夹功能。 首先,我们可以按照惯例,认为所有以斜杠(“/”) 【注: 可以 但按照*nix系统的文件系统 用任意字符作为文件夹的分隔符, 的命名习惯, 我们常常使用斜杠(“/”)】结尾的object都是一 “folder/” 个文件夹。例如, 用户认为: “folder”是一个文件; 是一个文件夹;而“folder/file.txt”是一个放在folder文件夹内 “folder/”、 “folder”和 名为file.txt的文件。在云存储OSS上, “folder/??le.txt”其实都是object。 当用户需要查询一个文件夹下的文件时, 我们就需要巧妙地通过 list object Get Bucket) ( 接口的四个参数: pre??x、 marker、 delimiter 和max-keys来实现。 例如, 我们在OSS上名为 “mydata” 的bucket内有如下几个文件:
    lingyun.doc folder/ folder/file1.txt folder/file2.txt folder/file3.txt folder/image/ folder/image/test.jpg
    通过这种动态计算签名URL的方法,可以有效地保护放在OSS 上的数据, 防止被其他人盗链。
    满足特定条件时才传输数据
    IMS(If-Modified-Since)参数是HTTP协议中,经常被用到的 一个参数。它的含义是:通过这个时间戳参数,服务器端可以 判断客户端的数据是否是最新的;如果不是最新的,则返回服 务器端的数据;如果是最新的,则返回304告诉客户端其本地 Cache的页面是最新的,于是客户端就可以直接从本地加载数 同时也减轻 据了。这样在网络上传输的数据量就会大大减少, 了服务器的负担。 包括IMS在内,OSS共支持四种条件传输参数。只有object的属 性满足客户端给出的条件时, OSS才传输object的数据。这四个 参数是: If-Modi??ed-Since If-Unmodi??ed-Since If-Match If-None-Match
    如果认为这个bucket是一个传统文件系统的话, 当用户进入该 bucket, 应该只看到一个名为 “lingyun.doc” 的文件和一个名为
    25
    Special 特别专题
    “folder/” 的文件夹。 为了获得这样的效果, 我们将list object请求 的delimiter参数设为 “/” 即可, 如下:
    res = my_store.list_objects("mydata", delimiter='/')
    Headers = {} headers['range'] = "bytes=1024-4095" res = my_store.get_object (bucket_name, object_name, headers)
    OSS收到这个请求后, 会返回一个XML格式的消息, 中间记录了 这个bucket内有一个key为 “lingyun.doc” 的文件, 以及一个名为 “folder” 的common pre??x, 分别对应于文件和文件夹。 当继续想 查看文件夹“folder”内的文件列表时,可以将prefix参数设为 “folder/” 如下: ,
    res = my_store.list_objects("mydata", prefix=’folder/’, delimiter='/')
    知道了如何使用Range来随机读一个object后, 实现并发下载就 轻而易举了。 只要将要下载的object分成若干份, 然后开多个线 程, 每个线程下载其中的一块。 在所有块都下载完成后, 整个文 件就下载完成了。 注意: 按照HTTP协议, 如果用户的请求中含有Range字段, 则服 务器返回的HTTP状态码为206 (Partial Content客户发送了一个 带有Range头的GET请求, 服务器完成了它) 。
    执行后, 我们就可以知道文件夹 “folder” 有三个文件: 内, “??le1. txt” “??le2.txt” “??le3.txt” 、 , 和一个子文件夹: “image/” 。 list objects命令的另一个参数是max-keys, 它定义了在一次请求内 OSS返回文件和文件夹最大的数目, 默认值是100, 最大可以设成 1000。 但如果一个文件夹内有超过1000个文件怎么办?这时, 可 以利用list objects的最后一个参数——marker。 这个参数告诉OSS 从指定的文件开始, 按照字典序查其后面的文件。 示例 为:
    res = my_store.list_objects("mydata", prefix='folder/', marker='folder/file1.txt', delimiter='/', maxkeys='1')
    实现大文件并发上传
    由于OSS是一个互联网服务,用户终端很难长时间保证和OSS 之间的TCP连接。所以在上传一个大文件时会经常发生请求链 接被断开的情况。这时就可以采用OSS的Multipart Upload模 式。 Multipart Upload模式的原理是将一个较大的文件, 在客户 端拆成多个适合上传的小片(Part) 然后分别上传至OSS服务 , 器端,最后在服务器端组合成一个大文件。 由于每个小片是独 立上传的,它们之间没有任何的关联,所以利用这种模式就可 以做到并发上传。虽然原理看起来很麻烦,但如果使用OSS提 供的SDK的话, 只要一行命令就搞定了并发上传:
    res = my_store.multi_upload_file(bucket_name, object_ name, thread_num = 10)
    这时, OSS只会返回一个查询结果: “folder/file2.txt” 。利用好 这四个参数,你会发现做个类似于Dropbox【注: Dropbox是一 其官方主页: 个提供同步本地文件的网络存储在线应用, https:// 的应用是如此简单。 www.dropbox.com/】
    实现object断点下载和并发下载
    从互联网上下载数据时,支持断点下载是一项非常基本的功 能。 其原理很简单, 就是记住上次接受数据的位置, 然后要求服 务器从上次断点的地方开始将余下的部分传输过来。下载OSS 上的object时, 可以采用HTTP请求中通用的Range这一header, 来完成这个功能。 例如: 获取一个文件的头5个字节的请求 如下:
    Headers = {} headers['range'] = "bytes=0-4" res = my_store.get_object (bucket_name, object_name, headers)
    具体实现细节请参考OSS API开发文 SDK内部的实现逻 辑, 有兴 同学可以按照自己特定的需求自己实现一下。
    快速删除一个有大量object的bucket
    有一天,也许你只是看着自己的一个bucket不爽,想删除它。 但OSS服务出于保护数据的考虑会温柔地通知你:这个bucket 里面还有数据,不能删除它。打开这个bucket一看,成千上万 的文件在 等着你去删。 一个一个删, 肯定太stupid了。 这里 教你一个小方法: 先获取object列表, 再使用批量删除接 在 Python的SDK中已经封装好了与之对应的接口:
    object_list = [] while true:
    获取一个文件中间3KB字节数据的请求代码如下:
    26
    凌云 2012. 8
    object_list = my_store.list_objects(bucket_name) if len(object_list) != 0: my_store.batch_delete_objects(bucket_name, object_list) else: break
    原因。例如, 如果你尝试访问一个你没有访问权限的object, 那 么OSS会返回给你403 Forbidden的HTTP错误码, 以及一个如下 的XML格式的消息体:
    AccessDenied AccessDenied 17baec8b-1a0e-8dad-4a6e-343b4d8450dc storage.aliyun.com
    这样,删除几万个文件,也就是几十个请求的事情,不但节省 了请求次数, 更节省了大量的宝贵时间。
    为object添加自定义的header
    很多情况下,我们希望对文件的META属性中放入一些自定义 的信息数据。 例如, 一张照片的拍摄时间; 一篇文章的作者; 一 首歌曲的专辑名;甚至是一个专利的专利号。这样,我们在查 看文件的META属性时,就可以获取这些自定义的信息数据, 而不必将整个文件下载下来。 在使用OSS时, 可以通过在PutObject的时候把自定义的信息数 据放在以x-oss-meta-为前缀的参数中。 OSS将把这些参数视为用 户自定义的meta数据。 添加x-oss-meta-author的实现代码为:
    headers = {} headers[‘“x-oss-meta-author’] = obama res = my_store.put_object (bucket_name, object_ name,haders)
    其中上例中的“RequestId”字段是唯一标识该次请求的UUID; 当你无法 问题时, 可以凭这个RequestId来请求OSS开发工 程师的帮助。
    后记
    通过上述OSS开发小技巧的介绍,相信大家一定对OSS这个 云存储服务有了更深刻的理 俗话说“高手在民间”,祝 大家可以在此基础上开发出类似Dropbox、DrawSomething、 Instagram等的成功应用。
    在获取这个object时, 将收到如下的HTTP返回值:
    HTTP/1.1 200 OK x-oss-request-id: 3a89276f-2e2d-7965-3ff9-51c875b99c41 Date: Fri, 24 Feb 2012 06:38:30 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E053D763E1B002CC607C5A0FE " Content-Type: image/jpg Content-Length: 344606 X-oss-meta-author:obama Server: AliyunOSS [344606 bytes of object data]
    在OSS上调试自己的
    伞兴
    大家在用OSS开发时, 如果发送了非法或者不符合规则的HTTP 请求,OSS会返回错误码和相应的信息来帮助开发者发现和定 位问题。OSS对于所有HTTP返回码不是2xx的请求,都会返回 一个XML结构的消息体, 里面详细记录了无法执行用户请求的
    2009年加入阿里巴巴集团,专注于云存储平台的设计与开发。 目前在阿里云数据中心 平台部任专家,负 里云开放存储服 务(Open Storage Service)项目。2007年在中国科学技术大学完 成九年的本硕博连读,获得信息科学专业博 位。加入阿里巴巴 之前,在Omnivision公司从事算法工作两年。
    27
    Interview 访谈
    28
    凌云 2012.8
    云计算成就代码之美
    ——阿里云首届开发者大赛
    阿 里 云 首 届 开 发 者 大 赛已 经 拉 开 了 帷 幕,通 过 官 方网站 http://2012.aliyun.com即可报名参加。 本次开发者大赛以 为中 心, 主题是 “云 成就 之美” 与以往其他比赛不同, 。 向本 次大赛提交简单的程序就有机会获得百万大奖! 不管您是一个资深的程序员, 还是一个初出茅庐的新手, 只要您 能基于阿里云的云 产品, 写出易于使用的工具, 或高性能的 SDK, 或与业界流行的编程框架结合的插件, , 立刻参加本 次比赛赢取大奖吧! 您可以选择我们推荐的选题, 也可以根据您 的经验或发挥想象力去选择一个方向, 写出实用的工具, 来帮助 阿里云计算的用户更加方便、 快捷地上手云 产品, 享受云计 算的便利。 我们推荐的选题列表如下 (参赛选题包含但不限于以下内容) 。
    ◆ ◆
    客户端或服务器端的方式来实现。

    将OSS的bucket (或bucket中的一个目录) 挂载到本地
    的一个文件夹 (Linux) 或映射网络驱动器 (Windows) 。 SDK类 (可参考官方Java SDK的实现) iOS平台SDK, 便于iOS开发者使用OSS。 Android平台SDK, 便于Android开发者使用OSS。 C/C++ SDK。 Ruby/Node.js及其他语言的SDK。


    Web框架插件类

    phpwind/Discuz!的OSS插件。 Django/Ruby On Rails的OSS插件。 其他流行的Web框架的插件 (含Java等各种语言) 。

    OSS(开放存储服务)
    同步客户端


    图形化的OSS客户端工具 (也可通过本地的httpserver
    ECS(云服务器)
    服务器端软件一键安装和配置工具, 能支持Windows平台 或Linux平台 (可基于yum或apt) 方便安装常用的工具如 , ISS、 Apache、 nginx、 MySQL等。 网站/应用迁移工具, 便捷地将网站数据打包迁移到阿里云 的云服务器平台。 多个云服务器的集群管理工具, 可以 批量云服务器的 文件分发、 命令执行、 配置等工具。
    方式实现) 支持上传、 , 下载OSS文件内容, 功能强大与 否是重要的评价点, 如对断点续传、 多线程上传下载的 支持。

    本地文件夹和OSS的数据同步工具 (图形化或命令行方
    式均可) 如果能做到双向增量同步 。 (即自动同步两方的 差异) 将是一个亮点。 文件系统工具类

    通过FTP接口访问OSS服务。 您可以通过修改常用FTP
    本次大赛的参赛工具必须以BSD协议开放源 , 并将源代码上传到大赛官网指定的地址。 评委由阿里巴巴集团技术专家和业界知名 行业人 成, 最终解释权归阿里云首届开发者大赛组委会。 29
    Viewpoint 观点
    创业者最佳的选择—阿里云
    文 / 蒋烁淼
    云计算是什么,大家各有各的说法,也各有各的理解,作为一 个SaaS服务的创业者和开发者,云计算切切实实地带来了很 多不一样的东西。 我们够快公司是做团队的文件协同服务平台的,简单地理解 就是一个很多人一起用的“网盘”,我们的整个平台类似于 BOX的专业版或者是Dropbox的Team版本,更强调基于文件 的协同和共享, 同时能够保证整个过程的安全与稳定。 早在一年前,我们使用的还是传统的做法,自己采购服务 器设备,自主开发后端的存储系统(也考虑过H a d o o p 和 OpenStack) 自行维护服务器。整个系统完全按照传统的硬 , 件部署架构搭建。 在这个过程中,运维的同事曾经因为机器故障,半夜里冒着雨 赶到机房抢修;也因为机房间的光缆被地铁施工破坏,导致 网络中断;还有联通和电信之间的互联互通这个大麻烦等。除 了这些外部制约条件,从内部角度来说, 维护一套安全稳定的 平台难度也很大,需要寻找好的DBA,需要雇用机房的 人 员,需要去开发与业务本身不相关的基础平台。 当时我们就想,国内有没有类似Amazon EC2和S3的服务提 供商呢?我们发现了阿里云,它提供了BGP线路接入的云服 务器,以及一整套云计算的产品与服务,比如关系型数据库 服务(RDS),开放存储服务(OSS),开放结构化数据服务 (OTS)。这些云 服务不仅 了以前的问题,并且为我 们提供了一个良好的环境去很方便地实现新的功能,比如差 量上传同步、文件压缩打包下载等,从而让我们能够把精力聚 焦到如何把我们的产品做到最好,我想这才是创业者最应该 关心的问题。 在这篇文章里,我简单介绍一下我们在使用阿里云上的一点 经验, 为想使用阿里云的创业者和开发者梳理一下思路。
    阿里云的云服务器通过虚拟化技术为大家提供了廉价、高效 的弹性计算服务。一台云服务器对开发者来说本质上还是一 台真 服务器, 因此,使用云服务器最大的好处是可以沿袭 原来的语言和平台系统进行开发和部署。够快把网站和API服 务器都搬迁到云服务器上, 同时通过SLB在几台主机之间做负 载均衡。 关系型数据库服务(RDS) 目前支持MySQL,我们仍然是用传 统的MySQL连接器去使用这个数据库,省去了优化的问题。 由于是使用云服务器的内网方式和RDS连接,查询与结果的传 输带宽不受外网带宽限制。 开放存储服务(OSS)和亚马逊S3类似,整个接 于REST 风格。阿里云提供了各种语言的SDK,可以让开发者方便地上 手。够快所有用户上传的文件都存放在OSS中,包括头像、截 图以及客户端软件包等。我们在差量上传中大量使用了OSS, 以快速计算组合用户的数据包。 开放结构化数据服务(OTS)是一个特别的服务,它是一种基 于行列表的NoSQL模型,特点是支持大数据量和快速查询。 够快原来使用知名的MongoDB(跑在云服务器上)存放文件 版本和差量指纹数据,但在实际使用中遇到了不少问题,包 括MongoDB自身的一些Crash的情况,以及需要自主考虑的 数据备份、安全性等问题,最后我们决定把数据迁移到了OTS 上。虽然OTS的设计思想和一些流行的NoSQL不完全一样, 但至少OTS相比之下更加可靠,而且无需像MongoDB或是 Cassandra一样自己去 打补丁、升级、备份、节点部署等 因为它非常 繁琐的事务。大家也不需要担心OTS的学习成本, 简单,甚至比学习其他NoSQL的成本更低。唯一的不足之处是 SDK, 目前提供的还不是很多。不过因为API基于REST规范, 所以自己封装一下也不是很困难的事。 下面简单向大家介绍一下够快是如何使用OSS和OTS实现文
    30
    凌云 2012. 8
    件差量上传的。够快的用户在上传数据时,是以文件的虚拟 路径作为文件索引的,第一次上传文件,无论是通过Web上传 还是通过各类客户端进行上传,都是先将文件传送到一组阿 里云的云服务器中。云服务器在完成文件的接收后,对文件 (通过对每一个固定大 进行分析,计算出当前文件的分片索引 ,并在OTS中以这个文件的逻辑路径 小的分片进行哈希 ) 为PK(主键)将其保存起来,OTS可以通过这个逻辑路径非常 快速地找到对应的分片索引文件,完成 后的文件则直接 保存到OSS中。再次上传这个虚拟路径下文件的修改版本时, 对于本地各类客户端来说,先通过虚拟路径作从OTS中查找 到对应的分片索引,并与本地需要上传的文件进行对比,计算 出需要上传部分的数据,将这些数据组合成一个数据包(数 据包头部包含了新文件的大小和除了这些数据以外部分数据 对应于上一个文件的所在位置偏移,如0-2550、2600-31980、 31990-32000),然后上传到够快的云服务器上,接收这个数 据包的主机将同时从OSS中读取上一个版本的文件数据并通 过数据包的描述信息对数据进行组合,新产生的文件就是那 个用户需要上传的文件了。最后,把新的文件索引采样保存到 OTS中。在这个架构下,OSS与OTS与云服务器之间的传输直 接走内网,从而大大降低了用户通过Internet上传的数据,整 体的用户体验非常好,如几百MB的PSD设计文件在修改增加 几个图层后以后只需要上传可能几MB的数据就可以完成整个 数据同步了。下面是整个过程的简单列表。 客户端申请文件上传,如果存在上一个版本,服务端从OTS 中读取返回文件的分片索引。 客户端根据分片索引进行计算,生成需要上传的数据包。 客户端上传数据包到服 。 服务端收到数据包后,把数据包和从OSS中取得的上一个版 本的文件数据进行组合,产生与用户上传文件一致的新文件。 上传文件的分片索引并保存到OTS中。 新文件保存到OSS中。 上传完成。 阿里云通过一个强大的内网将这些服务都连接起来是集中优 势的体现,各个服务之间的网络带宽均达到了千兆的速度,在 I/O方面基本上等同于标准的SAS硬盘的效率。
    够快在阿里云上的部署图如下图所示。
    对于每个创业者和开发者,阿里云这种把基础的底层平台云 服务化的方式是自己团队能力的真正 ,让他们把精力聚 焦在真正的应用与服务上。我曾去过阿里云的办公场所,那里 有大量专业的工程师对底层平台进行开发和维护。而我们只 需要付出所使用部分的费用,就有一个那么大的集群为你服 务,就有 一群工程师为你服务,就有那么好的网络带宽让 你高枕无忧。整个软件服 开发周期被大大缩短了,所谓底 层技术的竞争 也荡然无存。以前我们自主开发的平台在 稳定性和网络带宽上无法和腾讯、百度这些互联网长年积累 的公司做比较,而有了阿里云以后,大家的竞争就回到了产品 本身的竞争上,而且面对用户爆发增长也不会措手不及。 以上是我对整个阿里云产品的一点使用经验和看法,也希望 大家和我交流,同时也希望大家都去注册使用一下我们在阿 里云上的服务, 网址是www.gokuai.com。
    蒋烁淼
    现任上海够快网络科技有限公司总经理,专注于互联网云应用领 域,尤其是云存储应用方面。
    31
    Viewpoint 观点
    阿里云服务 落地之美” “
    文 / 陈秋歌
    2012年称为 “云落地”之年, 而云落地需要更多云 应用案例 的支撑。 成立于2009年的阿里云, 历经三年, 独立开发出一整套 云计算平台, 众多企业已通过该平台实现了从软件到服务的战 略转型。 在第四届中国云计算大会上, 据阿里巴巴集团首席架构 师、 阿里云计算总裁王坚博 绍, 阿里云已拥有了众多典型的 客户案例。 下面就请大家跟随记者一起, 共赏阿里云服务 “落地 之美” 。 易美云盘作为一家专注于存储服务的创业公司, 最初 创业公司: 选择自建IDC及Hadoop集群, 但随着产品和业 发展遇到了诸 多挑战, 例如维护成本的提高、 可靠性难以保证等。 而通过与阿 里云的合作, 易美云盘不仅 了其成本及快速发展的问题, 还 在安全性上得到很大的保证。 DeNA作为世界领先的网络服务公司, 经营社区游戏 游戏公司: 平台Mobage梦宝谷、 社交网络服务和电子商 站, 拥有庞大的 用户数量和数据信息, 对于云计算的需求迫切。 借助阿里云弹性 服务, DeNA实现了 《三国征途》 《怪怪农场》等多款游戏 、 的正常运营。 此外, DeNA还与阿里云联合为手机游戏开发者提 供了从底层云 服务到上层运营推广的完整 方案, 以帮助 开发者轻松起步。 用友畅捷通作为国内典型的SaaS公司, 是小微企业使 SaaS公司: 用排名第一 软件提供商, 它的服务必须搭建在靠谱的IaaS服 务之上, 才能最大化地满足客户的需求。 通过将企管通云业务的 底层搭载在阿里云上, 用友畅捷通改变了原来的软件授权销售模 式, 统一了服务品质, 提升了最终客户的体验满意度。 作为一家老牌的提供电子服 德国公司, 施耐德是 行业用户: 楼宇能效 方面的专家。 由于它的很多产品都是实时采集大量 数据的, 所以对云计算的需求不言而喻。 通过与阿里云的合作, 施耐德已成功转型为一家服务公司, 一家离不开大数据的公司。 目前, 借助云计算, 施耐德实现了让每一个电表、 让每一个在外 面的开关、 每一个小的电器装置都变得更加智能, 并让所有的大 数据能够产生更多的价值。 从以上案例可以看出, 阿里云服务无论在新兴的创业公司、 游戏 公司, 还是传统的SaaS公司、 行业用户, 都得到了成功的落地, 它们也都切实享受到了云计算带来的便利。而我们也相信,就 像王坚博士常说的 : “无论你所处什么行业, 只要有了云计 算, 就可以给客户带来方便, 为用户带来更好的体验。 ”
    32
    凌云 2012. 8
    云计算加快创业者成功的脚步
    ——从Instagram的成功说起
    文 / 沈岁
    早在2010年时, 就有人不断地开始问我: “云 ” 是什么? 当时 我的回答只有: 云里雾里。 因为 我也不懂这究竟是什么, 关 于它的技术定义并不是大家关注的焦点, 而实实在在的产品和服 务还未浮出水面。 大家提到云计算时, 最在乎的是: 这项技术能 为我或者我的公司带来什么。 ,在这一年 而2011年则可以称得上是“云 技术落地元年” 里, 各种与 “云” 相关的概念和产品开始铺天盖地而来: 云存储、 云安全、 云浏览器、 云操作系统、 云语音等。 当我们能看见实实 在在可以用的服务和产品时, 这项技术才开始真 企业和消费 者带来福利。 下面让我们来看看, “云” 到底带来了什么福利。
    据的需求日益旺盛的今天, 不得不说, 这是一个巨大的革命, 它 了计算能力和存储空间。 举一个具体的例子, 扎克伯格在宿舍里创立了Facebook后, 前期 的资金投入主要拿去购买服务器了, 因此对于Facebook网站而 言, 前期控制成本的方法就是有效地预估数据负载的成长速度, 从而决定在什么时间需要购入多少台存储量多大的服务器。 而在 今天, 如果一个网站创业团队使用云 服务, 它无需考虑购买 服务器的问题, 用多少给多少租金, 避免了资源的空闲和浪费, 非常有效地节省了初期创业成本。
    福利二:使用云服 企业无需专门的团队负 术
    云计算带来的福利
    福利一:节省计算资源和存储资源
    现在可以大概阐述一下目前我个人对“云 ”的理解了。第 一, “云” “端” 与 (各种硬件设备, 如PC、 手机等) 对应, “端” 原来做的就是现在集成到“云”上做的, 即存储和 ; 第二, 连接 “云” “端” 和 的是互联网, 通过互联网传输和同步 、 存 储; 第三, 对于使用者而言, 不需要知道 “云” 是怎样运作的。 相 信前两点都很好理 关于第三点, 如果你不是基础云服 提 供商 (如亚马逊、 谷歌、 苹果) 你尽可以大胆地认为它是一个黑 , , 只管用它的资源就好了。 经过上面的解释, 就很好理 为我们带来的第一个福利 了, 原来 “端”做的都可以让 “云”做了, 对 “端” 的计算能 力和存储空间的要求必然就降低了, 在人们创造、 处理、 存储数
    和运营
    这个福利其实跟上述提到 “云 ” 理解的第三点相关, 云服务 仅仅是一个强大的工具而已, 而它所用到的技术和数据中心的运 营自有云 服务提供商负 无需使用者烦心。 目前的互联网 服务越来越走向细分化和平台化, 云计算服 出现使得做前端 用户服务的企业能专心负责产品的开发和运营。
    福利三:云计算前端应用解决了用户跨平台和数据备 份问题
    所谓云 前端应用的典型代表就是网盘, 利用数据中心的存储 功能, 使得企业用户或个人用户可随时随地使用任何终端访问自 己存在云端的资料 (几乎涵盖所有格式的文件) 在多终端的时 。 这种跨平台的服务显得尤为重要, 通过网络, 多个不同系统 的终端共享同一份数据资料, 可同步协作。 另外, 数据资料备份
    33
    Viewpoint 观点
    Instagram成功的重要因素:云计算技术的支撑
    前不久,Facebook以10亿美元收购了2010年成立的创业公司 Instagram, 在中国国内的创业者团队中引起了很大反响, 调动了 大家的创业积极性。 简单回顾下它的发展历程: 2010年10月, 登 陆苹果App Store; 2011年2月25日, 发布即时API; 2011年9月, 用户 突破千万; 2012年4月3日, 安卓版登陆Google Play; 2012年4月10 日, Facebook以10亿美元的价格收购了Instagram。 Instagram主要是一个图片分享互动社区, 最根本特色是由照片形 成的社交网络, 照片拍摄、 位置服务、 图片分享功能是其主要组 成部分。 我们将其成功总结为以下四个因素: 产品, 单个产品做 到极致; 用户, 首先立足高端用户合作; 合作, 开放胸襟拓展市 场; 产业, 云计算技术的支撑。 我们在这里着重分析最后一个因 素, 即云 技术的支撑。 Instagram在App Store上线不到一年,就已经拥有了超过 一千万的用户,用户每天上传的照片数量也达千万级,这样的 成长速度对于一个创业公司来说相当快速,同时成长快速的 是对其存储和 资源的需求。用户上传的照片都存储在云 端服务器中,对服务器的存储需求是在不断变化的,如果不使 用云 服务,那么Instagram就只能自己购买足够的服务器 以满足峰值的用户访问和照片存储(有心的朋友可以自己计 算下服务器的购买成本) ,而在低值时就会有闲置的服务器资 源被浪费。而云 服务 决了Instagram的这一大问题。 Instagram从一开始就租用了亚马逊的云计算资源, 亚马逊的庞 大数据中心成为其成长的支撑力量, 它需要多少资源都可以实 时调配,并按实际使用资源向亚马逊付费。这种资源付费方式 消费者按 很像现在的电力资源付费——发电厂集中能源发电, 需用电, 最后根据实际使用进行费用结算。 对于创业者而言, 不用自己购买服务器、 研究存储和计算技术、 维护和运营自己的云计算数据中心, 不但降低了硬件购买成本, 也是个人和企业都需要进行的工作, 以防重要的文件丢失。 综上所述,云计算服 落地至少给三方带来了福利:第一, 大规模数据中心的所有者, 以集中化处理优势有效地减少计算 中小企业或创业者,减少了 和存储资源的空闲和浪费;第二, 企业运作的硬件和相关运营成本;第三,终端用户,方便了其 信息的处理、 存储和备份。 人力资源成本也大幅降低——Instagram以16人的团队服务3千万 用户——这也是为什么美国的很多成功企业都诞生于大学宿舍 或车库之类的地方, 而创业团队却只有几个人。 2011年以前在国 内, 受到基础设施环境的限制, 创业者难以享受到这样的创业环 境, 很多创业团队的产品因资金不足或资源限制而夭折。 但随着 亚马逊的云服务进入中国和国内企业在云 领域的积极发力,
    34
    凌云 2012. 8
    图1 已使用或 试用云计算的决策制定者比例
    国内的创业环境已有所好转, 云计算服 用能够很大程度上帮 助创业者更好地专注于自己的领域。
    于云服务、 利用云服务落地的产品进入人们的视野, 不过几年的 时间。 在2011年, 很多人已经亲身体会到了云 带来的便利, 它已开始慢慢地从“虚无缥缈” 中走出来。 并且, 随着国内企业 纷纷开始云 平台的打造, 如阿里巴巴的阿里云、 百度的易平 台和三大运营商的云计算中心等, 虽然他们提供的服务有所不 同, 但都为众多中小企业、 创业者、 开发者和个人用户提供了云 端的服务, 成为推动整个云计算基础服务行业成长的重要力量。 从图1中也可看出, 各个国家的企业决策者已在积极使用云 服务了,美国作为互联网领域的领先国家,它的发展通常引领 了整个行业的发展方向,我们也有理由相信,随着国内云服务 产业的逐渐成熟, 其服务渗透率也将快速增长。 从整个互联网行业来看,基础服务环境的改善将为创业者们 提供更好的创业环境, 云计算的发展必然会加快创业者们的脚 步,使他们有更集中的精力创造出精彩的产品、应用和服务, 从而也加快了整个互联网行业的发展, 最终提高人们的互联网 使用体验。
    云计算服务隐忧:安全性
    安全性是云计算服务使用者目前十分关注的问题。 既然 和存 储都在云端的数据中心进行, 而且不需要自己运营和维护, 必然会牵扯到两方面的安全问题: 一是数据资源的安全性, 即云 服务提供商是否会利用或泄露其数据中心里的数据资源; 二 是数据中心的安全性, 即是否会出现故障导致使用者的数据受到 损坏。 安全性的问题同时困扰着云服 提供者和使用者。 国外的第一 类安全问题比国内的容易解决, 因为云计算基础服务提供商是 不参与前端应用开发的 (至少目前为止, 亚马逊、 谷歌和苹果都 没有) 简单说来, 。 即这些公司与开发前端应用的创业者没有直 接利益冲突, 它们只提供这样的基础设施。 既然没有直接利益冲 突, 大公司就没有理由和动力私自动用里面的数据。 而在中国, 可能不是这样, 产业链分工并不明确, 既当裁判又想当运动员的 公司很难得到信任。 这一部分的市场培育和规范形成是正在不断 推进的事情, 这部分的矛盾将由提供云计算这一基础服务的大企 业平台解决。 至于第二类安全问题, 可通过一些技术手段解决, 一般云服务提供商都会考虑到这一方面。
    不可逆转的趋势:云服务时 在加快脚步
    在不久的将来, 云服务将和电力一样成为一种按需取用的基础服 务。 在国内, “云 ”概念的兴起, 从 到2011年下半年很多基
    沈岁
    2011年3月正式加入艾瑞咨询集团,现任移动互联网分析师,主要负 究的领域包括智能终端、移动营销、移动电商、移动支付、云 等。至今已撰写十余份相关行业报告,服务过数十家互联网企 业,在移动互联网领域研究方面有丰富的经验。
    35
    Interview 访谈
    阿里云为什么想到要创办《凌云》专刊?其 定位是什么?
    云计算从诞生到现在, 已经从概念阶段进入了实践 阶段, 尤其在国外发展得如火如荼。而在国内, 却总 给人一种“云里雾里,不知所云”的感觉。为了拨开 这层迷雾,阿里云携手《程序员》杂志打造此《凌 云》专刊, 以期让国内IT从业人员对云 有更直观 的理 投身云计算,从而最终推动云 在中国 的推广和普及。
    目前在阿里云的官网上已经能够看到较为全面的 云计算产品了, 不知道阿里云未来还会有哪些发 展计划?
    阿里云接下来会重点完善云 的API体系即AliyunAPI, 每一个云服务比如弹性计算和存储都会有完善的API开 放给开发者和用户。一方面API能够帮助用户自动化地使 用、管理云服务, 另一方面越来越多的开发者可以使用阿 里云的API开发各种服务和工具完善云计算的生态体系。
    读编往来
    《凌云》专刊包括哪些内容?能否多一些从 整个业界范围来说的观点和技术文章?
    《凌云》将全面介绍阿里云的发展战略,深度剖析 阿里云产品的实现技术和使用技巧;同时它兼容并 包行业之声, 行业发展趋势,展示云 实践 应用成果。未来,我们会更多地整合业界观点,与大 家分享更多有价值的技术文章,也欢迎大家推荐和 投稿(邮箱请见本页底部) 。 很多用户会担心云 的安全问题,实际上, 为了安全, 更应当选择云计算, 就像是钱存在家里没有存在银行安全 一样。 阿里云将云服 安全性作为最重要的考虑因素, 依赖于阿里集团强大的安全团队力量,从内到外以技术 手段杜绝出现数据泄露的可能性。类似安存(http://www. ancun.com)这样的公司将具备法律取证效力的电话语音 记录存储在阿里云也证明了用户对阿里云云计算平台的 信任。
    如果我的数据存在云端,我的数据安全将得到 怎样的保证?万一泄露或者被别人偷看了我的 数据怎么办?
    如果您对《凌云》有任何意见和建议, 欢迎来信, 邮箱地址: lingyun@aliyun-inc.com 36
    凌云 2012.8
    37
  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的