2014 年值得关注的 9 项技术

  • 张龙

2014 年 1 月 12 日

话题:语言 & 开发架构

Andrew C. Oliver是一位专业的软件咨询师。他从 8 岁起开始编程,从 Basic 与 dBase III+ 开始。他最为人所熟知的就是创建了 POI 项目,该项目现在托管在 Apache 上。在 Red Hat 收购 JBoss 之前,他还是 JBoss 的早期开发者之一。Andrew 是 Open Source Initiative 的前董事会成员以及现在的顾问。除此之外,Andrew 还是 Open Software Integrators 的董事长与创建者,这是一家专业的服务机构,分布在达拉谟、北卡罗来纳州以及芝加哥。近日,Andrew 撰写了一篇文章,谈到了 2014 年值得关注的 9 项技术。

2014 年充满了各种预测,我们无法控制世界未来的样子,不过我们可以成为自身命运的主人。下面就是 2014 年值得关注的 9 项技术,与你一同分享。

1. 文档数据库

很多 IT 系统基本上都包含了将数据结构写到结构化存储这一部分,同时又要求高并发的性能。文档数据库出现已经有很多年了,其中就有 Lotus Domino 的 Notes Storage Facility,不过 NoSQL 与大数据革命又燃起了新的领域,其中 MongoDB 与 Couchbase 就是其中的佼佼者。

2. 键值存储

有时,你有一张很大的表,可以放到内存中。如果是网格,那么你就可以将内存中的表分发到多个结点上以加快写的速度。如果是个读多写少的小表,那么你可以将其复制到所有结点上,这样读就是个内存中的事情了。无论采用哪种方式,键值存储都值得你好好学习一下。几乎所有的键值存储都可以创建自定义的缓存负载器或是缓存存储,从而实现对 RDBMS 或是其他数据源的读与写。很多键值存储采用了“稍后写”或是队列写来实现对数据库的写操作。这个领域的典型代表是 Couchbase、Memcached、Infinispan 与 GemFire。

3. 图数据库

从推荐引擎到社交网络和地理分析,再到生物分析,图数据库都带来了极大的便利性。对于传统的 RDBMS 来说,朋友的朋友这种查询是非常低效的,即便利用最新的特性也没有太大的起色,这是因为其结构就不对。虽然图数据库已经出现了很多年,不过只是最近的数据爆发以及个性推荐等领域才使其变得更加流行。这个领域的典型代表是 Neo4j 与 Apache Giraph。

4. Google Drive/Apps

Google Apps 是个办公效率套件。我无法想象再回到原来的通过邮件发送附件的那种方式。最近,我们通过基于 JavaScript 的宏实现了越来越好的自动化。所有的一切都存储在云端,因此我们可以放心地睡觉。除此之外,可扩展性特性意味着只要我们能够访问云端,那么我们就可以将文档直接与其集成,反之亦然。

5. On-premises 搜索

我现在还是能看到有很多人在编写着大量的 and/or/like 等 SQL 查询,其实这么做不仅会导致严重的性能问题,还会产生不清晰的代码以及不易使用的接口。这时可以看看 Google 的服务,无论是数据库、文档还是各种文件系统都行。Apache Solr 值得你好好看看。

6. PaaS

无论是公有云还是自己的私有云,你都需要手工安装各种操作系统、应用服务器与应用,然后提前选择好将要部署的服务器与 VM 数量,这是十几年前的做法。PaaS 是未来的趋势,能够做到实时伸缩,自动完成重复性的任务。我们所广泛使用的平台有 CloudFoundry、CloudBees 与 OpenShift。

7. 云 IDE

前不久,我们全家在打扫壁橱,我 9 岁的孩子不认识壁橱里面的一个很大的金属盒子到底是什么,那是什么呢?我们在隔壁房间看着我们的孩子。“我不知道,好像是个 Dell 的什么东西”。我们发现他确实不知道塔式机箱到底是什么,因为自从他出生以来,我们就一直在使用着笔记本(不过他看到过一台 1U 服务器,因为我们用它做过 Hadoop 的测试)。我觉得云 IDE 可以做到一点,那就是让下一代不知道笔记本到底是什么。为何要在硬盘上安装 IDE 呢?为什么不打开浏览器,然后就开始编码呢?比如说 Codenvy 或是 Cloud9。

8. Hadoop

无论是使用 MapReduce 进行复杂的分析,抑或只是想做些日志分析和审计日志,Hadoop 都是这个行业中最为火热的一个选择。如果你尚未使用 Hadoop 做过一些试点项目,那么今年就要考虑做做了。如果已经使用过 Hadoop,那么我希望你能在今年对 Hadoop 有更好的了解与掌握。

9. 集群 / 分布式文件系统

从集群到 HDFS,可伸缩性存储是关键。今年,你要重新思考 SAN 了。至少,如果还没有尝试过可以先做个试水。我预测会有很多混合方式出现。

语言 & 开发架构