FIT2CLOUD联合创始人阮志敏近日通过邮件向InfoQ中文站分享了他对Web-Scale IT的一些观点,当中列举了Web-Scale IT的典型特征,并对企业实现Web-Scale IT提供了一些建议。以下是邮件内容:
Gartner近日发布了2015年十大IT趋势预测,其中包括Web-Scale IT。Gartner指出:未来将有更多的企业以亚马逊、谷歌、Facebook等互联网科技巨头的方式去思考、行动和打造应用程序和基础设施。传统企业渴望拥有和互联网公司一样的IT能力去进行业务创新,同时提高IT运营效率、降低费用。Web-Scale IT和国内的"去IOE"运动有着相同的逻辑,都是互联网企业影响、颠覆传统IT解决方案的一种趋势。
Web-Scale IT和传统IT不仅在技术上有差异,而且在文化上也有差异,所以企业也并不是要完全从传统IT转向Web-Scale IT。比如,一些交易型应用/System of Record应用仍然离不开传统IT,传统IT有其存在的价值和理由。但是,企业应该开始用Web-Scale IT的方式去构建一些新型的社交化、移动化、面向外部用户的应用。企业应该怎么做才能实现Web-Scale IT呢?
我认为Web-Scale IT有5个典型特征:
- 拥有成千上万台机器的计算能力
- 只需少数工程师就可以运维大量机器
- 应用可以承载非常高的用户访问量
- 即使有些机器出现故障,应用仍然工作正常
- 应用每天可以升级部署应用好几次
1、拥有成千上万台机器的计算能力
这里的机器是指商品化服务器(Commodity)。企业可以通过两种路径实现这个目标,一是采用公有云,二是自建方式/私有云。目前我们观察到的情况是,国内对IT需求稍大一些的企业,都倾向于通过采用自建方式。而在国外,采用公有云的比例会高一些,比如像Netflix等,在AWS上面的虚机数量超出1万台,仍不自建数据中心/私有云。随着国内公有云服务的完善、API的开放、费用的进一步下调,更多的企业应该会优先考虑采用公有云。
很多企业实施"Go to Cloud"战略的第一步就是构建自己的私有云服务,而不是采用公有云,这种策略值得商榷:对企业而言,基于云的可编程特性,学习在云中开发、部署和运营大规模、分布式的云应用是更重要的,而不是将全部精力放在构建私有云基础设施上。一种更好的做法是,比如,企业可以先使用青云公有云,如果业务取得成功、使用的规模越来越大,可以考虑基于青云构建自己的私有云并托管给青云来运维。
2、只需少数工程师就可以运维大量机器
如果用户采用公有云,那么这个问题就转变成:如何高效管理成千上万台虚机?这包括:
- 如何快速启动部署一个应用所需要的一序列资源
- 如何给这些虚机做配置
- 如何一键给这些虚机打patch
- 如何对这些虚机进行统一监控和告警
- 如何进行安全和费用统一管理
实现这些的核心是要充分利用云的API来实现自动化管理,用户可以采用云服务商提供的工具(比如Cloudformation、 OpsWorks),也可以采用第三方管理工具(比如Rightscale), 也可以自己基于云服务API构建自己的管理部署工具(比如Netflix)。
若用户采用私有云,用户可以自己运维也可以采用托管方式。如果是自己运维,则不仅需要对整个私有云解决方案非常熟悉,而且需要投入相当的开发和运维人力,同时伴随着很大的风险。而想减少运维人员,托管、外包方式应该是更好的选择。
3、应用可以承载非常高的用户访问量
Web-Scale IT通过以下两个方面来实现这个特点:
- Web architecture/SOA服务架构, 把整个系统分为松耦合的组件,尽量实现无状态,使得组件可以水平扩展。
- 充分利用云来动态、快速地创建资源(scale-out),根据各层次的监控数据来实现自动伸缩。
传统IT则是更多地通过Scale-up方式来进行扩容,和Web-Scale IT相比在架构方面也有些差异,比如,采用session复制方式也多于基于Redis/Memcached的集中式session方案。
在云环境下,云服务商除了提供计算、网络和存储资源外,还提供负载均衡服务、缓存服务、RDS服务等很多上层服务。云服务商负责这些服务的创建并提供自动化运维方案以实现确保安全性、可用性和扩展性。企业也可以通过API动态管理这些服务。从这个角度看,在云中开发、运维应用和传统方式有很多不同,企业需要进行相应的转变。
4、即使有些机器出现故障,应用仍然工作正常
传统IT可以通过Infra层面的冗余来保证系统的高可用性,而Web-Scale IT是构建在商品化硬件上,其冗余度比较低。Web-Scale IT在Infra层次的SLA是无法保证的,这就需要用户Design for Failure。这不仅仅需要在Infra层次部署架构方面做相应的设计,如把应用部署在两个可用区、使用负载均衡服务等,在应用本身的逻辑架构、中间件、数据库存储层等方面做针对性的设计,同时在应用本身的管理上也需要有相应的设计,如数据的备份、恢复、动态地更改DNS、更改负载均衡的后端配置等。
5、应用每天可以升级部署应用好几次
传统IT对变更有着严格的控制和要求,开发和运维团队有着明确的分工和责任,应用要实现每天十几次的变更是不太可能的。
Web-Scale IT能够实现持续部署和交付,不单是靠自动化工具,更重要的是依靠流程、组织、文化上面的变革。很多时候,思维方式、文化方面的改变比技术上更重要。因此Gartner说,开发与运营之间的高效协作配合(DevOps)是实现Web-Scale IT的第一步。
小结
从上述分析可以看出,要向Web-Scale IT转变,企业需要实现在Infra、平台和管理部署工具、应用架构,流程、组织和文化等各个层面的改变。云计算的进一步普及会加速企业在Infra层面的转变,而另一方面,随着各个行业云标杆用户的出现,会示范和引导更多企业去实现其他层面转变。
作者简介
阮志敏是AWS认证解决方案架构师(专业级别),FIT2CLOUD联合创始人,长期关注于如何使用云服务进行业务创新。FIT2CLOUD是一个云管理及DevOps协作平台,旨在帮助开发人员、运维人员实现应用全生命周期的自动化管理,提升云使用成熟度。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。