2015年1月12日, Packet公司 平台部门VP David Laube在公司官方博客上发布了一篇名为《 谈谈我们把四个月的工作量扔进垃圾堆的经验,或者应该说这是OpenStack的失败案例 》的文章,介绍他们在尝试OpenStack中遇到的一些挫折。
Packet公司提供裸金属基础架构服务(也就是以前叫做物理机托管的服务),跟Softlayer和RackSpace做的生意差不多,但是做的时间短,是一家创业公司,大约在2014年上半年正式启动,本文作者David就是在去年夏天应邀加入的这家公司。Packet的创始人Zachary Smith在创立Packet之前做过Voxel这家公司,也是做服务器托管服务,后来在2011年卖给了Internap,成为Internap的服务器托管业务的一部分。
David一直以来的经验是在托管行业做系统运维,有十多年的运维经验(前九年都在HostRocket.Com)。2011年的时候他加入Voxel/Internap,成为Zachary的下属。按照David的自述,2014年夏初Zachary去邀请他加入Packet的时候,他一开始觉得当时市场上的IaaS服务已经很多,没有必要再做一个。但是聊着聊着他就觉着市场上的IaaS的确不够好用,再加上他当时已经玩了一段时间的Docker,非常看好在裸金属基础架构上做一套基于容器技术的部署系统的价值,所以就觉得值得做。
Voxel的部署管理系统完全是自己编写的。在Voxel合并入Internap的那一年(2012年),他们遇到的无数网络问题、大量硬件变更和系统变更给这套系统带来了很大压力,这些问题最终体现在了服务稳定性变差,当时在 WHT 上有用户表达了强烈的不满。
现在有机会重新搭建一套自动化安装管理系统,而且最好在几个月内就能在生产系统上给客户用,David开始考察OpenStack。在David看来,如果OpenStack在网络自动化、IP管理、安装流程、硬件生命周期管理这几个方面的基础足够扎实,那完全可以依赖这套基础快速搭建起他想要的东西。
David做了大量调研,读了当时大部分的IRC讨论,自己也尝试用DevStack做过安装,觉得不错。让他真正做出决定的是来自RackSpace的一篇博客,该博客讲述了 RackSpace是如何用Ironic组件实现他们的裸金属云服务管理体系的 。
于是他们拿着最新的Juno版本提枪上战场了。四个月的努力让他们收获了如下经验:
发展到这个阶段,David开始觉得自己掉进了一个大坑。花了大量的时间,但项目进展缓慢。不过,他还是决定要把Neutron再仔细了解一下。为何?
“在物理交换机和物理服务器的体系下,安装系统不难。但是要做到可靠,这就超级难了。自动化是无止尽的持续投入,而最容易出问题的地方就是网络的自动化。”
而Neutron宣称自己是:
“一套服务库,可提供按需使用、可扩展、支持多种技术的网络抽象”。
这样一套东西当然不可不看。但是看了之后,以下是David学到的东西:
最终,他们在圣诞前夕决定扔掉了OpenStack,然后用了三个星期开发了一套自己的IP管理系统。至于OpenStack,并不是不好,而是不合适他们的场景。之后他们还会继续关注OpenStack项目,并发布他们的一个Neutron驱动。