在过去的几十年里,互联网大大改变了人们的生活状态。我们上网,用各种app搜索信息、购买商品、与世界各个地区的人们进行无障碍沟通,其速度之快、操作之便捷,可谓史无前例。私家车的仪表盘上的屏幕可以为我们推荐电影,智能手机可以制作并发布视频,我们还可以购买恒温器,它们能在我们到达办公室之前,提前调整房间的温度。
尽管这些进步对外界来说就像魔法一样神奇,但只有研发者们知道保障这些程序运行的开发技术到了何种水平。然而时代在发展,和商业打交道的每一个人都应该对此有所了解,这一点正在变得越来越重要。
原因很简单:聪明的公司都明白,未来十年的竞争要求我们对信息技术要有新思路。从移动应用到电冰箱,都需要变得更为个性化、智能化,更注重反馈与交互。
公司需要恰当的工具来促进机器的学习、获取传感器数据和处理超乎想象的高居不下的用户流量的能力。
大势不可逆。如果一款应用不能带给用户他们所期望的体验,他们会另寻别家。
重构应用构建方式
过去几年里,应用程序和网页的使用规模不断扩大,用户量已经达到上几百万甚至几亿级。在这种大流量、大数据的趋势下,昔日的应用架构开始土崩瓦解。最近,使用海量数据的趋势,已经激发了市场催生一个全新的科技团体的兴趣,他们专门研究这个终端。
处理方法包括开拓全新的存储空间、处理器和数据库框架,以期轻松扩大跨集群服务器的规模,简化处理过程,并提高各部分信息交流的速度。Google、LinkedIn、Facebook、Yahoo和Twitter正在一遍又一遍的重复这个过程。
其中一种模式应用于数据库,几乎每个人都从关系数据库开始,最终制定出新计划。一些公司花费了上百万美元(还在继续付出),牺牲个人时间,来寻找突破MySQL的自身规模局限的方法。
另一种模式则清晰地呈现在处理大数据的架构中。这种特殊的技术在不同领域或许会有所不同,但所有大型网络公司在处理实时、准实时和批量数据时,都会使用某种特定的架构。它们都希望给用户传达一种迅捷的、个性化的体验,还要确保内部数据分析师和数据科学家能够满足这份工作的要求。
邂逅数据中心应用栈
所有IT创新的结果都令人印象深刻。Google、Facebook和Amazon为几十亿的用户提供服务(可同时服务上百万用户)并储存海量数据。但它们几乎没崩溃过。因为对基础设施投入了大量的建设。
这些公司研发了许多知名技术,其中包括MapReduce、Hadoop、Cassandra和Kafka。除此之外,它们还研发了一套新工具(有的源自初创公司,有的是实验室开发,有的则是开源项目),旨在帮助应用程序运行得更好,规模更大,并在必要的时候增加新功能。这些新工具包括Spark、Storm和Elasticsearch。
与新技术相配套的新架构也随之浮出水面,试图解决为了研发能在大规模环境下稳定运行的应用而带来的问题。
一种架构是微服务概念,就是将应用看成是一种可以为多种应用提供服务的服务集合,而不是使用自己专用组件的单片实体。除此之外,微服务减少了组件之间的相互依赖,提高了个人服务的可扩展性,这一切无需重建整套应用即可实现。
另一种大型架构是集装化趋势,通过像Docker那样的开发者友好型方式或像Linux控制组那样的低层次方式构建。集装可以轻松给分散的服务器插入应用,根据运行处改变焦点。进一步说,开发者可以将焦点集中在应用需要运行的地方。
总的来说,这种新型分布式服务集成和架构技术合称“数据中心应用堆”。凡是想要构建能在多重平台上服务上百万用户的应用,并利用当今数据的数量、种类和速度的,都得使用服务集成或类似的技术理念。
实际上,这些技术正在迅速流行起来。它们当中有许多已经成为初创公司技术链条上的主打,为的是传递从下一个大型消费者应用到下一个Salesforce.com之间的一切信息。
这些技术正在超越单纯的网络途径,而进军世界500强,甚至进入和IT创新者不沾边儿的中型企业。他们了解数据中心服务(限于公司层面范围内)的一切,渴望加入这令人兴奋的创新中。.
“大数据”、“实时”和“物联网”不仅仅是流行语。21世纪,公司的成功在很多方面都要依赖它们。
数据中心应用的操作系统
虽然数据中心应用技术越来越重要,但问题在于(IT供销商、开源支持者或专业的Facebook工程师不会告诉你)构建十分困难。部署、管理和大规模Hadoop;部署、管理和大规模Cassandra;部署、管理和大规模Kubernetes。你必须清理和重复你想要的每个架构或服务。
某种意义上说,公司或许不愿真正写程序、建立数据管道和确认架构的弹性。
像Google和微软那种工程师众多的大型公司分别用Borg和Autopilot系统为自己解决(或很大程度上解决)问题。系统会自动管理资源分配,实现服务器及为百万用户服务的应用程序的高实用性。是算法——而不是开发者或微软架构师——决定程序的走向和机器的数量。
当然了,它们是伟大的系统,但同时也为公司所专有。Google也是最近才发布文件官方承认Borg的存在。微软几乎没有公开讨论过Autopilot的相关事宜,更别说是销售了。