自从 NASA 的“好奇号”火星探测车于 2012 年 8 月 6 日(世界标准时间)在火星着陆(太平洋时间 8 月 5 日晚上)以来,我一直在关注源源不断传回的令人难以置信的大量图像。 我对这些图像的广度和美丽感到震惊。
在我看来,“好奇号”传回海量数据的技术挑战尚未得到充分认识。 从NASA 的报告中,我们了解到“好奇号”最初传回的是“低分辨率”数据(1,200 x 1,200 像素),直到它经历了软件“大脑移植”,现在提供更加详细和可修改的数据。
这是如何高效完成并有效分发的呢?
最近的一篇文章强调了“好奇号”探索的“随时随地”可用性,它可以处理“每秒数百千兆比特的流量,供数十万并发查看者使用”。 事实上,正如云提供商 Amazon Web Services (AWS) 的博客文章 指出:“最终架构由 NASA/JPL 和 Amazon Web Services 共同开发和审查,让 NASA 确信部署模型可以经济高效地扩展、执行,并提供令人难以置信的登陆另一个星球的体验。 为了实现将数据发布给公众的坚定目标,NASA/JPL 准备为每秒数百千兆比特的流量提供服务,供数十万并发查看者使用。”
这无疑证明了云在实时、可靠可用性方面发挥着越来越重要的作用。
但是,深入了解这个故事的内幕——以及包含的图表——你就会看到另一个故事。 一个指出开源软件在使这项非凡的任务成功运行并将结果如此快速地提供给如此多的人的关键作用的故事。
这是我提到的图表
如果你查看技术堆栈,你会看到在每个层面上,开源都是实现 NASA 任务目标的关键。 让我们逐一 살펴一下
Nginx
Nginx(发音为 engine-x)是一个免费、开源、高性能的 HTTP 服务器和反向代理,以及 IMAP/POP3 代理服务器。 作为一个项目,它已经存在大约十年了。 根据其网站,Nginx 现在托管了所有域名中 近 12.18% (2220 万) 的活跃站点。 Nginx 通常被认为是快速交付内容的首要 Web 服务器,因为它“具有高性能、稳定性、丰富的功能集、简单的配置和低资源消耗”。 与传统服务器不同,Nginx 不依赖线程来处理请求。 相反,它使用更具可扩展性的事件驱动(异步)架构。 这种架构在负载下使用少量但更重要的是可预测的内存量。
根据 Nginx 网站,由 Nginx 提供支持的知名高可见性站点包括:Netflix、Hulu、Pinterest、CloudFlare、Airbnb、WordPress.com、GitHub、SoundCloud、Zynga、Eventbrite、Zappos、Media Temple、Heroku、RightScale、Engine Yard 和 NetDNA。
基于 Railo 的 CMS
Railo 是一个开源开发者框架,它实现了通用的 CFML 服务器端 脚本语言,该语言由 ColdFusion 首创。 如果你熟悉 Zend (PHP)、Django (Python) 或 Ruby on Rails,那么 Railo 就是它们的等价物,只是使用了 CFML。 它最近已被 Jboss.org 接受为一部分,并在 Java 虚拟机 (JVM) 上运行。 它通常用于创建动态网站、Web 应用程序和 内联网 系统。(在此感谢社区指出,我们在撰写这篇文章时所依赖的图表在使用术语“Railo CMS”时有点令人困惑。 这似乎是一种简写,因为 NASA 已经利用基于 Railo 的 CMS 来满足其内容服务需求。)
GlusterFS
也许是这种高需求配置中最重要的部分,GlusterFS 是一个开源的分布式文件系统,能够扩展到数 PB 级(实际上是 72 泽字节!),并处理数千个客户端。 GlusterFS 通过 InfiniBand RDMA 或 TCP/IP 互连将存储构建块集群在一起,聚合磁盘和内存资源,并在单个全局命名空间中管理数据。 GlusterFS 基于可堆叠的用户空间设计,可以为不同的工作负载提供卓越的性能。 它尤其擅长跨多个平台复制大数据,允许用户通过自己的分析工具分析数据。 这项技术用于支持个性化电台服务 Pandora 和云内容服务公司 Brightcove,以及 NTTPC 的云存储业务。(2011 年,Red Hat 收购了开源软件公司 Gluster,该公司支持 GlusterFS 上游社区;该产品现在被称为 Red Hat Storage Server。)
我怀疑,和我自己一样,这次独特探索带来的视觉图像瀑布般涌来,再次激发了又一代人对我们星球之外的生命奥秘和巨大挑战的兴趣。 这与 43 年前这个夏天(至少对于那些有幸记得它的人来说!)首次登月时颗粒状的电视传输相比,真是天壤之别! 即使在 20 年前,可以分析的数据的延迟、质量低下和带宽狭窄,也与现在和未来几年从这项任务中交付的数据形成了鲜明对比。
总而言之,云计算和开源的结合使“好奇号”任务能够实时提供这些结果,而不是延迟数月; 质量高,而不是“足够好”的质量。 考虑到部署时间短和不断变化的需求,传统的专有方法不可能如此成功,因为这些需求需要最终的敏捷性和灵活性。 NASA/JPL 值得称赞。 尽管涉及到一个云产品,但正如本文开头引用的故事所指出的那样,“它实际上可以使用任何数量的其他解决方案来推出。”
随着政策制定者和技术战略家继续关注“大数据”,好奇号的任务将提供一些重要的教训。 一个关键的收获是:开源是这项任务取得成功的关键,并使其成果在如此短的时间内尽可能广泛地传播。
非常感谢 Red Hat 的 Gluster 社区负责人 John Mark Walker 在准备这篇文章时提供的帮助和见解。
10 条评论