Tim Yang:后端技术这一年

文/杨卫华

2012年后端相关技术发生了一些重要的变化,在本年度接近尾声之际,我将简单地对后端的相关技术进行回顾并对其未来的发展发表一些看法。

云计算的意义与选择

云计算降低了创业门槛,提高了生产力。最耳熟能详的故事就是Instagram利用Amazon云服务来实现其架构。在2012年8月,其每日活跃用户已超过老牌网站Twitter。据称,在这么大的一个系统中仅有3名工程技术人员(Instagram被Facebook收购时共13名员工)。可见,云计算平台在这个新兴应用的快速成长中发挥了多么重要的作用。

2012年,国内的新浪、阿里巴巴等公司的云计算平台都得到了较快的发展,很多新兴应用也开始选择云平台,享受到节约初期硬件投入的成本、时间成本与人力成本的好处。而大型应用在云平台的选择上则表现谨慎,目前国内可见的迁移到云平台的 典型案例还不多。考虑到国情的特殊及对国内云厂商的诚信,大型系统对云计算平台存在数据安全的顾虑,担心数据的私密性能否得到保证。另外,在数据可靠性方 面,虽然不同的云平台对数据的可靠性都有一定的SLA可用性承诺,但目前的云平台运营时间都较短,数据可靠性需要更长的时间来验证。

在未来一年,除一些数据安全性不太敏感的应用,如图片CDN及部分垂直应用的数据外,开发商仍然面临两难的选择。一方面云计算的数据安全顾虑不能完全消除,对公有云的选择存在顾虑,关键核心业务很难迁移到云平台上。另一方面,如果选择私有云,针对大部分应用场景自行搭建一套类似OpenStack的体系,并不能带来运营人力成本及时间上的收益。

如果把未来技术方向按使用云和不使用云进行区分,有以下几种做法:

  • 使用Amazon Web Services平台;
  • 使用OpenStack或者类似开放公有云网络;
  • 使用OpenStack或者类似开放体系搭建私有云;
  • 仅部分使用云或不使用云。

前两种可能短期内很难有获得广泛安全信任的厂商出现,而第三种私有云对于大部分组织来说发挥的价值有限。虽然所有开发厂商都希望生产效率能得到提高,以便适应业界的用户需求及行业态势的瞬息万变,在业务上赢得先机,但如何利用好云计算平台是摆在国内云服务厂商及应用开发商面前的一道难题。

大数据与离线计算市场

过去一年里,大数据在业界得到了飞速发展,行业也对大数据的方向有了更深刻的认识。在公有领域,大数据集中化的趋势比较明显,百度、腾讯、阿里巴巴、新浪、360等公司掌握了互联网领域最有价值的数据。在数据利用及挖掘方面,由于商业化的成熟,搜索引擎走得较早,类似用户的喜好、年龄、购买习惯、性格等都可以通过搜索的历史数据分析得出。但在更多其他领域中,数据的价值才刚刚体现。在2012年,我们看到了淘宝指数这样的数据产品上线,但相对整个电商或者行 业数据挖掘来说,目前展现及利用的只是冰山一角,更多有价值的信息需要进一步构建体系去挖掘与展现。在社交网络如微博中,由于内容完全由用户创造 (UGC),用户的交互及参与度更高,相关数据挖掘的空间及价值更大。在微博上,目前的数据价值主要服务于个人消息流阅读,而在未来,经济、金融、传播、 社会科学等多个方面的更多数据的潜力有待挖掘。

开放平台与应用市场

在通用应用领域,由于用户的使用时间集中停留在几个大的平台上,独立的应用脱离这些平台很难获得快速发展,因此未来的所有新兴应用,需要考虑好如何利用开放平台的基础来获得更快的发展。由于平台应用的托管需求,开放平台、云计算平台与应用产生了一个稳定的组合。开放平台提供API及服务体系来帮助应用访问数据及获取用户,云计算平台解决应用托管及扩展的问题,应用则可以低成本地转化创意及获得收益。目前开放平台厂商从提供IaaS到PaaS不同级别的服务,而应用开发商可利用PaaS平台来协助进行更多精细化的运营。

但开放平台目前还存在若干不足,从平台开放规则来看,大部分开放平台对于开放规则并没有明确的约定,因此,应用厂商可能担心开放平台的开放力度和政策的延续性。另外,从应用角度来看,目前大部分开放平台的应用还是以浅层次应用为主。浅层次的应用通常以获取平台的流量入口为主要目的,例如微博开放平台中,这类应用以内容推广或向好友发送邀请等方式获取流量。而在强调个性化及用户体验的时代,这种应用思 路通常效果不佳。从开发角度来看,大部分开放平台的文档、问答、社区、工具等配套设施存在良莠不齐的现象,大部分重量级的应用通常会通过内部的渠道获得技 术支持,但这对于小的开发商并不是一个不利因素。

在技术层面,开放平台一直面临开放与安全监管问题,未有效管理的开放会造成用户对开放平台 的不信任,进而也会影响整个生态圈。目前成熟的开放平台大多采用类似Facebook或微博这种基于OAuth Open API的方式,而OAuth协议本身也需要跟随业界的发展去改进。随着移动应用的飞速发展,未来移动方向的开放平台目前已经看到不少新的尝试,或许更多不 同的开放平台模式会在国内产生。

计算机语言

根据业内权威的Tiobe的计算机语言排名, 编程语言在过去一年并无大的变化。在服务端领域,依旧是以C/C++、Java、PHP开发语言为主。PHP解决了Web快速开发的需求,C/C++以高性能网络服务为主,Java则擅长处理规范化的业务逻辑并且也有不错的执行效率。对于行内的新人来说,选择任何一门老牌语言都是一个不错的选择。

从趋势来看,几年前受到小范围关注的函数式编程语言并没有得到业界的采用,选择并坚持使用Erlang、Scala等语言的公司并不多。而被Tiobe在 2009年视为黑马的年度语言Go,也未能得到足够的发展,目前的排名被挤出50名之外。计算机语言领域缺乏变化,一方面老牌语言形成的工具、框架、体 系、生态是影响计算机语言选择的主要原因;另一方面,由于云平台出现,在一定程度简化了应用开发的复杂度,因此这些语言的开发效率的瓶颈并不严重。

数据库

虽然身处大数据时代,但大部分业务在线实时处理的数据依然存在关系型数据库如Oracle或MySQL中。与之相关的是,技术人员需要思考未来数据是使用关 系数据库存储,还是要迁移到云存储的方案上。大部分云存储的缺点通常是IOPS(即每秒能处理的事务数)偏低。而使用传统的解决方案,存储的伸缩性、管理 成本又是一大问题。

在数据库领域,一直都是国外系统占据垄断地位,而我们也看到国内一些大型的厂商(诸如淘宝、腾讯等)在利用自身的技术力 量进行定制的数据库与存储方面的基础平台或组件的研发。虽然存在一些争议,但自定义的组件可以根据业务场景进行特殊的优化,一方面可以提高性能及单位资源利用率,另一方面在极端情况下可以有更稳定的表现。另外,这些组件由于对专业能力要求高,可以吸引更多高端的人才加入,而这些人才未来可以给组织带来更大的贡献。

作者杨卫华,新浪微博技术总监,负责设计新浪微博基础平台架构,解决新浪微博发展中遇到的各种技术瓶颈,并致力于打造业界一流的开放平台。

你可能感兴趣的:(Introduction)