写点什么

从一个 OpenStack 的失败案例看 Ironic 和 Neutron 组件的现状

2015 年 1 月 20 日

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 版本提枪上战场了。四个月的努力让他们收获了如下经验:

  • Nova、Ironic 驱动、Neutron 是他们最需要关心的三个组件。Ironic 是为了实现裸金属管理,而 Neutron 则是为了避开 2 层网络和 VLAN,让每台主机直接连接 3 层网络。
  • 大部分文档是过时的或者错误的,于是 David 不得不用大量时间 debug 以验证哪个文档是正确的。
  • OpenStack 社区的确很大,人很多,但几乎没人有 Ironic 组件的生产使用经验,就连项目的核心开发者有时候也解答不了他们的部署问题。
  • 一个人同时搞透 Ironic 和 Neutron 是一件几乎不可能完成的任务。David 决定自己去研究 Ironic,让另一位同事去研究 Neutron。
  • 阅读了每一篇Ironic 的文档和讨论后,David 的结论是,OpenStack 从整体设计上就是为虚拟机准备的。你一旦用 Ironic,就只能用 openvswitch 和 linuxbridge。
  • Neutron 能够支持的厂商交换机有限,而且能够支持的网络模型也有限。
  • RackSpace 能跑起来是因为他们做了超级多的定制。而他们定制的很多重要补丁是不公开的,你得自己写。而你要能写出来这样的补丁,必须非常非常懂 OpenStack 的核心代码!

发展到这个阶段,David 开始觉得自己掉进了一个大坑。花了大量的时间,但项目进展缓慢。不过,他还是决定要把 Neutron 再仔细了解一下。为何?

“在物理交换机和物理服务器的体系下,安装系统不难。但是要做到可靠,这就超级难了。自动化是无止尽的持续投入,而最容易出问题的地方就是网络的自动化。”

而 Neutron 宣称自己是:

“一套服务库,可提供按需使用、可扩展、支持多种技术的网络抽象”。

这样一套东西当然不可不看。但是看了之后,以下是 David 学到的东西:

  • Neutron 的大部分功能是针对虚拟机,而非物理交换机的。
  • 他们用的是 Juniper 的交换机,而 Juniper 交换机的 Neutron 驱动已经老掉牙了,对 Juno 版也没提供多少新的支持。
  • Neutron 的 IP 管理体系自己做得很原始,又无法跟外部的 IP 资产管理体系对接。

最终,他们在圣诞前夕决定扔掉了 OpenStack,然后用了三个星期开发了一套自己的 IP 管理系统。至于 OpenStack,并不是不好,而是不合适他们的场景。之后他们还会继续关注 OpenStack 项目,并发布他们的一个 Neutron 驱动。

2015 年 1 月 20 日 19:205038

评论

发布
暂无评论
  • 日本雅虎如何在 OpenStack 上大规模构建和运行 Kubernetes

    今天的帖子是由日本雅虎的基础设施工程团队撰写,内容是他们如何在 Kubernetes 上运行 OpenStack。

  • 梁胜:用户是 Docker 最大的筹码

  • Apache 云计算平台: CloudStack 4.4.0 发布

    近日,Apache CloudStack 4.4.0 发布,此版本新增了许多功能,并做了多方面的改进,还修复了大量bug。

  • 争论:基础软件是终将消失,还是成功转型?

    前不久,Mirantis的联合创始人兼CMO,Boris Renski发布了一篇Mirantis的官方博客《基础软件已死》,称基础软件已经进入死局,那些以基础软件为核心业务、以售卖许可证创收的企业需要及时止步并脱身;该文随即引发了业界的一些热烈讨论。 为什么Boris会有基础软件已死的观点?业界中对此作出何种评价?基础软件的命运将会怎样?InfoQ将相关文章资料信息整理如下。

  • Using webpack to make Apps fast at Microsoft

    演讲嘉宾Sean Larkin 【廖肖恩 】is a Program Manager at Microsoft working on Edge DevTools, expert on Web Performance, and maintainer of webpack. Outside of work, he works with Fortune 500 companies helping them change their culture for Web Performance practices, Open Source, and embracing emerging technologies. In his free time he loves spending time with his family, hiking, woodworking, cooking, gardening, Orchid cultivating, playing video games, hacking on IoT, and Streaming his open source work!Sean Larkin【廖肖恩】是Microsoft的研发经理,负责Edge DevTools;他还是Web性能专家和webpack维护者。在工作之余,他与财富500强公司合作,帮助他们改变他们的文化,以实现Web性能实践、开源和采用新兴技术。在他的空闲时间里,他喜欢和家人共度时光,远足、木工、烹饪、园艺、兰花培养、玩视频游戏、黑客攻击物联网,以及打磨自己的开源作品!内容介绍Did you know that the average website takes over 16 seconds to load on a mobile device? Did you know that on average the amount JavaScript and CSS that goes wasted is over 60%! If JavaScript and CSS are our most expensive resources to load, why are we hurting our load times by shipping stuff we don’t ever use? How do we get rid of this unused code? How can we profile our web applications load times?Join me as I teach you about the performance constrains of the modern Web, and how to write rich applications within these boundaries using household tools like webpack.We’ll learn about how webpack solves these performance problems through a concept called code-splitting. We will walk through examples of code-splitting together, the many ways you can leverage it in your web application, and how webpack enhances this feature using magic comments, service workers, and prefetch and preload!By the end of this talk you know: Where the most costly resources in your we application How to profile and analyze a web application load-times Understand what is “unused code” and how to get rid of it with code-splitting and webpack Learn the many types of code splitting in webpack, and other performance related features like service worker and how to integrate them with webpack Learn how frameworks adopt code-splitting and the route, component, and library level How to implement this in your own codebase 你是否知道,网站在移动设备上的平均加载时间超过16秒? 你是否知道,加载的JavaScript和CSS资源平均浪费超过60%? 如果JavaScript和CSS是我们要加载的最昂贵的资源,那为什么要浪费时间去加载一些根本用不着的东西? 我们如何去掉未使用的代码?我们应该如何剖析Web应用的加载时间?本次演讲将介绍现代Web的性能约束,并讲解如何使用像webpack这样的工具在约束之下编写内容丰富的应用。我们将学习webpack如何通过一个叫代码分离(code-splitting)的概念来解决这些性能问题。我们将通过一些例子来学习,这里演示的方法都可以直接用在自己的Web应用中。我还将分享webpack如何使用魔法注释(magic comment)、service worker、预取(prefetch)和预加载(preload)等特性来增强代码分离。你将学到: 如何定位Web应用中最昂贵的资源 如何分析Web应用的加载时间 理解哪些是未使用代码,以及如何通过代码分离与webpack去掉它们 学习webpack中不同类型的代码分离,了解像service worker等其他性能相关的特性,以及如何将其与webpack集成

    2019 年 7 月 24 日

  • 使用 Mirantis 提供的免费开发版学习 OpenStack

    Mirantis发布了Mirantis OpenStack Express的开发版及教程。

  • 容器和 Kubernetes 解决了 OpenStack 生命周期管理的痛点

    OpenStack 已经投入 Docker 容器的怀抱,助力简化自身的生命周期管理,同时它也在寻找自己运行容器的办法。

  • HPE 的 OpenSwitch 项目得到 Linux 基金会支持

    Linux基金会最近纳入了一个基于OpenSwitch的全新开源网络项目。

  • Rackspace 新闻:SDK for .NET、PowerClient 和移动

    最新的Rackspace开发套件新增了.NET SDK、PowerClient(一个基于PowerShell的管理工具)和一个PHP移动后端。

  • 话费系统、加油站、Qumranet 与红帽:一个 oVirt 开发者的编程人生

    一位来自以色列的程序员,在1998年加入IT行业,先后在Amdocs、XOR、Qumranet和红帽供职,做过手机计费系统、汽车加油自动扣费系统、内网安全管理系统、虚拟化系统等多种项目。他叫Doron Fediuck,现在在红帽的一个虚拟化项目中任团队经理。在下面的采访中,Doron会介绍他加入这个项目的过程,以及他对oVirt和其他虚拟化项目的一些看法。

  • 红帽收购 Qumranet 加强虚拟化地位

    红帽宣布以1.07亿美金收购了Qumranet,Qumranet提供虚拟桌面架构(VDI)平台以及SolidICE桌面虚拟化解决方案,业界领先的独立计算环境简单协议(SPICE),更为重要的是,Qumranet领导着KVM项目,这一自2006年就被纳入Linux内核的新兴的下一代虚拟化技术。

  • Hypernetes 实现多租户 CaaS,且无需客户操作系统

    Hypernetes是Kubernetes的一个分支,它使用多个开源项目在虚拟机内的最小Linux内核上运行容器,消除了运行完整客户操作系统的开销。

  • Hortonworks 牵手红帽,东软结盟阿里云 - OpenStack 社区周报

    本期周报内容:Hortonworks和Red Hat建立战略合作伙伴关系,风河成为OpenStack赞助商,SUSE Cloud 3发布,东软集团与阿里云结盟,阿朗在CloudBand中选择了Red Hat Enterprise Linux OpenStack Platform作为云平台实现NFV,CloudScaling宣布其私有云解决方案OCS支持GCE API。

  • 搭建私有 Serverless(二):基于 K8s 的 Serverless

    这节课继续学习如何搭建私有的Serverless环境。

    2020 年 5 月 6 日

  • 技术决策(1):技术管理者做什么,团队效率才最高?

    技术决策的正确与否、质量高低决定执行效率,方向错了什么都是空的,不单影响业务,还会影响团队成员的成长……

    2020 年 10 月 9 日

  • 经验:Serverless 架构应该如何选型?

    这节课讲解如何让本地的Knative应用打破云服务商的锁定,部署上云。

    2020 年 5 月 8 日

  • 在 Docker 容器中运行 Elasticsearch Kibana 和 Cerebro

    2019 年 6 月 24 日

  • 那些常见的流媒体服务器,你该选择谁?

    SFU已经有很多开源的实现了,比如Licode、Janus-gateway、MediaSoup、Medooze等。

    2019 年 9 月 10 日

发现更多内容

一次压缩引发堆外内存过高的教训

AI乔治

Java kafka JVM

在线游戏,如何把握住1个亿以上的DAU?

BonreeAPM

运维 监控 AIOPS 系统 用户体验

LeetCode题解:622. 设计循环队列,使用数组,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

活着

GongTeng95

血的教训!千万别在生产使用这些 redis 指令

云流

redis 学习 编程 程序员

大数据下单集群如何做到2万+规模?

华为云开发者社区

大数据 集群

关于手机里的IP地址,你不得不知道的“秘密”

脑极体

网上赌博输了怎么办?上岸戒赌是唯一的选择

南昌体检代检

网上赌博输了怎么办 网上赌博玩快三输了怎办 网上玩快三输了怎么回血 网赌输了怎么戒赌

高速路二维码报警定位系统开发,二维码报警定位功能

13530558032

CentOS 7 安装 Python 3.7

wong

Python

2020年8月北京BGP机房网络质量评测报告

BonreeAPM

测试 机房 评测 排行榜 IDC

Spring Cloud 微服务实践(2) - Gateway重试机制

xiaoboey

maven Spring Cloud Gateway modules 重试

Python基础知识(二)

Python基础

一次旅途

GongTeng95

Spring Cloud 微服务实践(1) - 用Initializr初始化

xiaoboey

Spring Cloud Eureka Gateway Hoxton

为什么很多人不买iPhone?

北柯

危与机并存 保险业如何走好线上线下业务并举转型之路?

BonreeAPM

运维 监控 保险 AIOPS 系统

架构师训练营结业作业

superman

Electronjs

Neil

Java Electron 前端框架 前端教程 客户端开发

算法大赛评委亲授通关秘籍,报名倒计时!

易观大数据

2020年7月云主机性能评测报告

BonreeAPM

云计算 测试 公有云 评测 排行榜

不想搞Java了,4年经验去面试10分钟结束,现在Java面试为何这么难

Java架构师迁哥

如何进步神速

Sean

学习 个人成长

字节高级工程师告诉我,想越过开发5年的“分水岭”这样做最适合

周老师

Java 编程 程序员 架构 面试

架构师训练营大作业

叮叮董董

python——自定义序列类

菜鸟小sailor 🐕

UML练习1-食堂就餐卡系统设计

博古通今小虾米

UML

Spring Cloud 微服务实践(0) - 开篇闲话

xiaoboey

微服务 Spring Cloud Spring Boot Spring Framework

Java 基础语法

InfoQ_34a83d636158

直播倒计时|30分钟带你解锁“技术写作”新技能

小红豆

技术 写作 直播 技术创作 RTC征文大赛

实践案例丨云连接CC实现跨区域多VPC与线下IDC Server互联

华为云开发者社区

云服务 IDC

OCR技术的未来发展与演进

OCR技术的未来发展与演进

从一个OpenStack的失败案例看Ironic和Neutron组件的现状-InfoQ