Flynn:让服务器部署就像下载个App那样简单

试想下你在手机上安装一个应用的过程:下载一个软件包、安装、打开软件。那么你再试想下Google旗下的大型应用,比如Gmail和Google Search,这两个应用需要运转在Google全世界范围内的数据中心,这些数据不在单一的机器中运行,而是通过数台计算机节点间传输数据。Google需要确保应用的每一项功能,保持独立且稳定的服务。而背后的应用功能的部署,则需要很大的工作量。

现在,Google能做到把应用的部署控制,变得像安装一个应用那么简单,甚至能快速将一个密码,分配到数万台机器中。但问题时,不是所有的公司,都具备Google一样的实力。Google的基础设施非常昂贵,且拥有非常特定的需求。它们数据的连接扩展非常复杂艰难,对于其他公司而言,没必要再把这一过程走一遍。Flynn的创始人Daniel Siders 认为,这样的技术应该与其他创业公司共享,于是他启动了Flynn项目。

据Wired的报道,Flynn是一项开源的模块化PaaS系统,它能帮助开发者在多台服务器建立和部署应用——无论这些服务器是亚马逊的AWS,还是自家的物理数据中心。

就像许多开源项目一样,Flynn最开始源于开发者自身的一个需求。那段时间,Sider还是在Cupcake的一个开发者,该公司提供的计算基础设施以及通信工具Tent.io。其中,设置服务器工作比他想得要更费力。Spiders甚至抱怨道,“大量的时间花在服务器部署上,甚至比写应用程序更费时间 ”。于是,他提出这个需求,包括CenturyLink、Nebula、 Shopify 在内的科技公司都资助了他们。

Flynn的设计主要基于两款工具。第一个是Google的Omega。这个系统让Google的开发者处理数千台服务器时,就像在单台服务器上的操作一样简单。更特别的是,这些应用服务会被细分成更小的碎片,在不同的机器间执行,从而保证资源没有被浪费。Google的Omega系统不是开源的,但Google在一篇论文阐释了系统的工作原理,这给Flynn的设计带来了参考。

另一个工具是开源的Docker。Docker能把那些应用打包成独立的单位,成为“containers”(容器)。这就能让数据很方便地在服务器之间流动,而每个单位拥有应用运行所具备的全部必要的元素。它不像其他的虚拟机,需要重建整个操作系统,Docker containers能直接利用主机服务的操作系统与其他软件,甚至能使每个Container都区隔开来运行。

不过,开源的Flynn还面临来自其他类似工具的竞争。比如 Pivotal公司的Cloud Foundry 、Red Hat公司的OpenShift。相比于这个领域的老玩家,Flynn是一个更轻量级对手,开源也被更多开放者认为是未来。

Flynn的预览版很快就要发布,感兴趣的读者可以在Github上的Flynn专区查看项目进度。