2014年10月16-17号,一年一度的阿里云AWDC开发者大会如期在杭州云栖小镇举办,本人作为众多开发者中的一员,也有幸能够来到现场参与其中。
目前,云计算已经成为当今IT行业最棘手可热的技术之一。无论是国外的亚马逊AWS、谷歌GAE、微软Azure、苹果iCloud、SalesForce,还是国内的阿里云、盛大云、青云、UCloud、腾讯云,各大行业巨头们都将注意力转移到了云计算领域,纷纷面向中小微企业以及个人用户开放了各自的公有云服务。与其同时也有很多优秀的开源云计算平台被开发出来供人们选择使用,例如:OpenStack、CloudStack、OpenNebula、Eucalyptus。每个企业都可以根据自身业务的特点,利用这些技术来制定自己的云计算平台战略。
阿里云作为国内目前云计算行业的领头羊,陆陆续续针对国内市场特点推出了很多服务和产品,使得很多中小微企业,尤其是一些刚刚起步的创业公司从中受益。近几年来,阿里云每年都召集其客户以及广大云计算技术爱好者和开发者汇聚一堂,共同讨论云计算技术的发展和不足。
下面,针对本次参会情况,总结如下。
一、 用户体验
在互联网行业,流传着这样一个段子:把互联网用户想象成一个智商非常低,脾气非常差,而且超级没有耐心,又非常非常小气不肯花一分钱的人就行了。虽然有点调侃的味道,但是从中说明了用户体验的重要性:稍有不慎,这些客户就流失了。
从阿里云工程师和其客户的演讲中,一直在讲用户体验的重要性,尤其是在当今的互联网时代,用户体验显得更加重要。一句话可以概括用户体验的重要性:这是一个体验为王的时代。
什么是好的用户体验?下面列举一些关键要点:
要超出用户的预期,能够给用户带来惊喜;
例如,会上一个阿里云客户分享他使用阿里云的经验的时候,说到原本将自己的应用迁移到阿里云上只是为了节省成本,但是没想到节约成本的同时还获得了非常好的稳定性和性能,在这一点上完全超出了他的预期,从而获得了非常好的体验。
好的用户体验要让用户能够有所感知;
一个产品究竟好不好,取决于很多因素,但是很重要的一个因素是产品的好处是能够被用户感知的,并且这种感知需要在产品使用过程中始终存在。用户感知不到的产品体验往往都是不好的产品体验。
从细节开始,并且贯穿于每一个细节;
都说细节决定成败,在用户体验上也不例外,非常关注细节的产品才能让用户得到很好的体验。会上,阿里云某高管在演讲中自揭伤疤,提到了阿里云API在开发初期存在很多细节性的问题,例如:API文档与真实API不一致、API文档歧义、术语前后不一致等等。这些问题虽然表面上看上去都是微不足道的,但是对于用户(广大开发者)来讲,这些小细节的错误将会是一场灾难。
那么,如何让用户获得良好的体验?答案只有一个:就是要持续的站在用户角度做产品。首先需要确定产品的目标受众,深入分析并了解用户需求和痛点,然后针对这些需求和痛点设计和开发出简单、易用的产品和服务。
二、 性能
不管是网站、手机应用、API,只要达到一定规模的用户量,就必然会面临性能问题。并且,高性能的产品和服务也能够提高用户体验。
例如,对于网站而言,影响性能的因素会有很多,硬件、Web服务器、网络带宽、用户量、静态和动态内容、数据库等等都可能成为网站性能的瓶颈。
以网站加载时间为例,下图展示了不同加载时间对应的用户反应情况。
下面列举一些关于网站性能分析和优化的工具或准则:
YSlow网站性能分析工具;
雅虎网站页面性能优化的34条黄金守则;
针对目前众多产品的性能问题,阿里云也对应推出了性能测试服务PTS(Performance Test Service),借助该服务,可以方便的为产品进行测试了。
总结如下:
根据产品特点执行可实施的性能测试计划并进行测试,然后根据测试结果进行分析,从而找出影响性能的瓶颈,接下来进行有针对性的性能优化,如此反复直到产品性能满足需求为止。并且在产品上线之后还需要有一个完善的性能监控统计和告警系统,以便及早发现性能问题并能及时应对。
三、 稳定性
系统稳定性也是大家比较关注的一个方面,对于很多行业来说,稳定性一般都会要求达到3个9(99.9%,即一年内总宕机时间不大于525.6分钟,即一个月不大于44分钟),对于一些数据高度敏感、必须提供无间断服务的行业,例如:电信、银行、证券、电商等等,都至少要求稳定性达到5个9(即一年内总宕机时间不能超过5分钟)。
这需要我们在做系统架构的时候,需要仔细分析可能会引发故障的地方,重点加以防御。
下面列举一些提高系统稳定性的措施:
优化系统架构设计;
备份:磁盘RAID、DB主备、集群、双机等;
开发过程中考虑程序健壮性;
选择高稳定性的硬件、软件平台;
四、 安全
目前信息安全问题日益突出,新型的攻击方式不断出现,阿里云安全工程师也演示了一些利用生活中常见的设备进行攻击的场景,主要涉及到社会工程学攻击、Wifi攻击、密码攻击、DDoS攻击等。稍不注意,我们的系统就会陷入恶意攻击之中。
下面也列出一些提高安全性的方式:
系统安全性整体设计;
操作系统安全加固;
更新软件版本,及时修复漏洞;
代码安全性静态检查:Fortify SCA;
黑白名单机制;
密码保护;
强制访问控制;
……
五、 监控和告警
如果系统构架于阿里云之上,可以采用阿里云提供的CMS(cloud monitor system)服务来监控系统运行情况,当发生故障或即将发生故障的时候发出告警,以便及时处理。
除了阿里云提供的监控服务之外,目前也有很多开源监控系统可以选择:Zabbix、Nagios、Cacti,这些系统各有特点,可以按需使用。
六、 弹性自动伸缩
云计算的核心特性就是其弹性,也就是自动伸缩。当业务量在某段时间内大量上升的时候,可以自动增加系统服务器以应对这段时间的大流量,当系统处于闲置期的时候,这些多余的服务器会被自动删除掉。这样,在保证系统稳定运行的同时又节约了成本。
基于即付即得(pay-as-you-go)的云计算模型有助于开发人员和架构师设计出能够一直运行于最佳资源分配下的应用程序。给服务器过高的配置来满足业务需要意味着花费太多冤枉钱,这个错误的另一个极端则更糟糕,即给服务器过低的配置导致应用程序的性能不足。而应用程序要求的变化使得对服务器配置的选择变得更加困难,因为最佳的资源组合不是一成不变的。
七、 其他的一些感受
云计算平台的主要使用模式
云计算和大数据技术相结合的使用模式。底层基于云计算平台提供的虚拟机、块存储、对象存储、数据库、缓存、网络资源、负载均衡、云监控、自动伸缩等服务,构建满足自身业务需求的架构;待业务量不断上升之后,将相关运营数据统计出来反哺行业,为行业发展做出贡献。
例如:12308网站作为汽车客运行业的在线查询、订票系统,底层构建于云计算平台之上,随着自身业务的不断发展,即合作的汽车站越来越多、网上订购汽车票的人群越来越多,必然会积累很多的汽车票预订人群分布、时间段分布、出行半径分布等各种各样的数据,之后运用大数据技术进行数据统计和分析,继而得到该行业的发展过程以及发展趋势,为汽车行业的发展提供可靠、准确的数据支持。
自强不息的残疾人开发者与夜郎自大的开发者形成鲜明对比
此次大会吸引了众多开发者来现场参加,其中不乏有一些行动不便的残疾人开发者拄着拐杖步履蹒跚的来到会场,其坚强程度令人动容,与此形成鲜明对比的是,也会发现周围也有一些夜郎自大的开发者。虽然近年来中国IT行业发展迅猛,但是仍旧与美国巨头的差距很大,希望我们能多一些沉浸下来认真做事的开发者,少一些浮躁的从业者。
各行各业对于云计算技术的热情和期望
从本次大会以及目前的发展趋势来看,各行各业对云计算技术日益了解,积极参与其中,并且也提出了不少的期望和需求,这都将对云计算技术在中国的落地起到积极的作用。
八、 一些思考
国内云计算不完善的地方:虽然国内近几年涌现了不少优秀的商业云计算公司,但是相比行业巨头AWS依然差距很大,需要前进的路还很长。列举一些需要改进的地方:计费模式需要完善、账号细分(主账号和子账号,参考AWS的IAM)、多租户模式下的平台隔离性、稳定性、易用性、安全性等等;
私有云:在公司发展初期尤其是创业阶段,公有云平台无疑是一个很好地选择,可以将精力从底层基础设施上解放出来,专注于自身业务的发展。但是在公司规模不断扩大、人员技术水平不断提高之后,可以考虑自建私有云平台或混合云平台,以便能够增大基础设施的灵活性和安全性。目前主流的开源云平台OpenStack已经成为各大中等规模的公司构建私有云平台时的首选,例如:BestBuy、Paypal、新浪、搜狐等等公司都采用了OpenStack平台;
多交流:不仅仅是公司内部的交流,还要重视同行业间的交流,有能力的时候也可以举办类似的技术交流大会;
适合自己的技术才是最好的技术:众所周知,Java语言作为一种高级语言其运行效率并不高,多数情况下很多人都不推荐使用Java作为后台开发语言,而是采用性能更高的C/C++,但是如果公司里面有很多Java高手呢?这个时候技术选择就要结合自身实际情况,适合自己的才是最好的。
本文出自 “烟花易冷” 博客,转载请与作者联系!
原文地址:http://yuanhuan.blog.51cto.com/3367116/1568268