不可否认,OpenStack确实是目前最为成功的开源项目,并且牢牢占据了云计算基础设施领域事实上的标准的地位,然而,OpenStack在升级方面的表现,实际上可以用“灾难性”来形容,看看OpenStack官方论坛里对OpenStack升级的关注,您就一目了然了。



如果这样的证明还来得不够直接,不够有说服力的话,那从2017 OpenStack用户调查(https://www.openstack.org/assets/survey/April2017SurveyReport.pdf)中,我们也许能够得到更直接更有说服力的证据——只有27%的OpenStack用户在运行最新版本。

那么,究竟是什么阻碍这些用户使用新版本OpenStack呢?答案就是——所谓的“Stuck Stack”(字面意思是“卡住的OpenStack”)。

Stuck Stack是指无法将OpenStack升级到更新版本的问题,导致企业用户不得不继续使用比较旧的、不受支持的版本,而这些版本存在已知的安全漏洞和问题;被卡住的时间越长,就需要越专业的技能才能维护其运行。

OpenStack升级究竟难在哪儿?

实际上,“纯净的”OpenStack (即未经过定制化修改的原版OpenStack)并不难升级,因为每个OpenStack版本都是为无缝滚动更新(rollover)设计的,并经受大量的社区测试,确保升级过程尽可能顺畅无阻。但是,企业平常所部署的OpenStack版本并不是纯净的、没有经过修改和优化的OpenStack。

这是因为OpenStack具有一个最显著的特点或者说最大的优点之一就是其灵活的可定制性。OpenStack完全可以按照企业的需要来构建,以适应企业内部现有的流程和技术。正是这种灵活性,让许多企业的IT团队摩拳擦掌、跃跃欲试,因为基于这个特性,企业的IT团队能够通过对OpenStack的定制,自行构建满足自身要求的云,同时这也是OpenStack能够吸引如此众多的IT技术人员趋之若鹜的重要原因。

然而,凡事都有利有弊,也正是OpenStack的这个特点引发了数量惊人的Stuck Stack:因为企业竭力想要构建适合自己现有基础设施的私有云,所以他们不断对OpenStack进行定制化改造,不断添加功能和组件,几个月、甚至几年下来,由于大量的定制功能和规范,最终整个OpenStack系统变成了一个基于OpenStack但已经面目全非的庞然大物。

因此,当新版本出现时,企业想要获得平滑的升级,已经非常困难,需要事先做大量的准备工作,而OpenStack的更新、迭代、升级又是如此之快,每次更新、升级都近一步增加了企业IT团队升级OpenStack所需要的工作量。累积下来,平滑升级几乎变成了“Mission Impossible”。

传统的升级方案

虽然是“Mission Impossible”,但在IT界我们也有自己的“伊森·亨特”们,他们用自己超凡的技术和经验,找到了一条OpenStack的升级之路。

升级意味着升级到一个新的OpenStack稳定版本。一个OpenStack云由相互协作的若干分发式软件组件构成,以交付满足需求的云服务。初步来看,这些组件,包括操作系统依赖项,必须同时进行升级,这将使得升级任务变得更加复杂。好在OpenStack社区旨在保持组件APIs的兼容性,所以旧的API版本往往也会被保留和支持一段时间。然而,旧API总会被标记为不推荐的并会在之后的版本中移除。

原则上,执行OpenStack升级的首选方法是使用命令行界面(CLI),这种方法对于单个服务器是很好的,但对于大型节点集群则显得效率低下。对于大型集群执行更新来说,出现错误和升级失败的几率则会显著提高,因此采用工具升级是一个不错的选择。

在理想的OpenStack升级中,IT人员需要事先做大量的准备工作,应对所有节点进行检查,打补丁、准备一个升级失败的回滚计划、准备一个至少带有配置文件和数据库的备份的数据备份计划。然后才是重新启动整个配置——但这种方法会导致大量的停机时间。在实施具体更新之前仔细分析更新内容可以提供一种替代解决方案。寻找那些不对其他模块有依赖性且不会实质性改变存储数据结构的模块。

如果OpenStack升级影响了跨模块的交互,那么IT团队就需要一起更新这两个模块。但是,难题在于任何节点都可能与其他任何节点进行交互。最安全的打补丁方法就是关闭所有节点。但是,如果跨模块更新涉及了可以关闭的功能,那么就可以安全地重新启动系统。然后,当集群更新时,可再次打开功能。一般来说,最好是一次更新一个OpenStack模块,然后确定集群是否稳定和无错误。当错误修复出错时,区域化方法可实现更为简便的调试。

同时,企业IT技术团队务必需要始终从已知和安全的来源获取更新代码包。这一原则也同样适用于实例与容器镜像、实例与容器中的应用程序和数据,以及OpenStack代码等。当OpenStack集群扩展规模并链接至公共云时,识别和恢复可能是非常耗时的。

最后,升级后还要对系统进行详细的测试和检查,以确保升级正确无误。而实际上,前期准备和后期检查才是耗费时间和人力最多的部分,升级部分其实是很快的。

有没有更好的方法?

虽然有这样的升级方案,但纵观整个升级过程,对于企业IT技术团队的技术能力显然提出了很高的要求,因此,对很多IT技术团队能力不足的企业用户来说,其实是望梅止渴。那么,有没有一种更好的方法可以帮助用户更加容易和简单的平滑升级OpenStack呢?答案是肯定的。

Platform9可实现OpenStack升级的自动化, Stratoscale、NephoScale 和 Mirantis也是可以考虑的升级方案。但它们都还不够完美,因为跨模块的依赖性仍然会是这些解决方案无法跨越的障碍。

不过,在刚刚结束的OpenInfraDays China大会上,易捷行云EasyStack产品总监郑晨在主论坛演讲环节进行的5分钟新一代云平台的现场演示,则有望为用户提供一种“无感”的OpenStack平滑升级解决方案。

通过采用全平台微服务架构,EasyStack新一代云平台实现的不仅仅是单一服务、单一组件的可持续升级,而是整体平台级的平滑无感演进,产品基于的是可持续演进的开源内核和稳定的开源模块,客户将不用关心到底是哪个OpenStack版本,因为稳定、持续更新、开放兼容可以通过平滑升级保证。

这里的核心技术点——全平台微服务化,涵盖计算、网络、存储模块,应用中心、事件网格,从数据库到消息队列,从日志到监控等服务组件的微服务化。通过全新设计的易捷行云EasyStack自动化中心,新一代云平台可以完成微服务粒度的升级操作,在升级过程中,系统会通过分布式高可靠的架构设计保证了云平台服务的生产级高可用。在Demo 中,完全通过自动化中心用户控制台,用户就可以实现自助式上传升级包,完成云平台的升级操作,升级过程对于正在操作的界面和运行的云主机业务没有任何影响。

看到这,被OpenStack升级搞的焦头烂额的你,是不是躲在被窝里偷偷的笑呢?

Stuck Stack成过去时,OpenStack升级还可以这样玩?!相关推荐

  1. 华为将升级鸿蒙,华为将弃用安卓?Mate40将成为首款可升级鸿蒙OS的手机

    原标题:华为将弃用安卓?Mate40将成为首款可升级鸿蒙OS的手机 早在本月初,华为消费者业务软件部总裁王成录曾透露,鸿蒙OS 2.0的适配工作进展顺利,预计会在12月如约发布,11月24日,万众期待 ...

  2. 微信还可以这样玩|ItChat

    概述 Part I 使用须知: 以下教程只适合2018年之前注册且支持登录网页版微信的用户使用.不符合条件的用户无法发起请求,即下述教程及代码无效! 也许你不知道微信还可以这样玩:由于微信给用户开放了 ...

  3. 计算机打印机软驱,用软驱、硬盘、打印机组合成乐器?外国人真会玩!

    原标题:用软驱.硬盘.打印机组合成乐器?外国人真会玩! 讲了这么多期中国的民间乐器,今天咱们也换换口味,看看外国的民间大神们带来的"硬核"乐器 近几年短视频流行起来后,大家对那些用 ...

  4. 图像还可以这样玩!如何用波的算法处理图像

    我对图像处理一直很感兴趣,曾经写过好几篇博客. 前几天读到一篇文章,它提到图像其实是一种波,可以用波的算法处理图像.我顿时有一种醍醐灌顶的感觉,从没想到这两个领域是相关的,图像还可以这样玩!下面我就来 ...

  5. 神奇的streamlit (哇 原来深度学习还可以这样玩)

    神奇的streamlit (原来深度学习还可以这样玩) 文章目录 神奇的streamlit (原来深度学习还可以这样玩) Streamlit 简介 Streamlit带来的改变 Streamlit的简 ...

  6. python美元汇率兑换程序代码_还可以这样玩?用Python完成一个在线汇率转换小程序...

    原标题:还可以这样玩?用Python完成一个在线汇率转换小程序 大家好,小数在这里给大家拜个早年啦 今天给大家分享的是用Python完成一个在线汇率转换小程序,是基于一个持续更新的汇率网站实现的,让我 ...

  7. 王者争雄服务器维护,王者争雄新手攻略大全 王者争雄优先升级及玩法技巧分享...

    王者争雄是一款优秀的三国塔防游戏,那么新手游戏时有什么技巧呢?下面小编就给大家带来了王者争雄优先升级及玩法技巧,一起来看看吧. 新手攻略大全 新手优先升级大本营和资源仓库到十二级这样主公侍卫坐骑神兵才 ...

  8. 我的世界java营火如何合成_我的世界如果有了篝火会怎么样? 原来MC还可以这样玩...

    众所周知<我的世界>JAVA版1.14,PE版1.10都加入了全新的方块"篝火".对于这个方块,我们充满了期待!若在这样的版本里玩MC,会发生什么呢? 这次" ...

  9. 怎么用计算机玩绝地求生,电脑怎么升级可以玩绝地求生?

    网友提问: 电脑怎么升级可以玩绝地求生? 优质回答: 这个平台是要升级了,换3大件吧,整到ddr4平台,会有质的飞跃,推荐英特尔,没办法,省电省心,处理器6,7代都可以,i5 6500吧,或者i3也可 ...

  10. 囧,还可以这样玩,通过GPS实现定位手机号所在位置的系统

    囧,还可以这样玩,通过GPS实现定位手机号所在位置的系统 http://e.qu365.COM/?P551232

最新文章

  1. 简单工厂模式与工厂方法模式
  2. Coursera课程Python for everyone:Quiz: Many-to-Many Relationships and Python
  3. c++ list 修改_C/C++编程笔记:数据结构系列——顺序表的实现,内含源码
  4. Sybase资料下载(参考手册,功能讲解很全)
  5. C#委托、事件学习之(三)——热水器烧水案例
  6. MS SQL-Server快捷键
  7. C++持有Object-C对象时容易内存泄露
  8. __attribute__((visibility()))
  9. 【Spring-IOC】Spring中的数据校验
  10. 高斯-勒让德积分学习
  11. 输入法android2.0,搜狗手机输入法forAndroid2.0版七大革命性升级
  12. linux设置开机自启动网络,linux设置开机自启动
  13. 微信小程序使用本地背景图无法渲染的解决办法
  14. 青岛理工大学转专业到计算机难不难,2021年青岛理工大学大一新生转专业及入学考试相关规定...
  15. 为什么单页面的seo不友好?如何解决这一问题?
  16. htc hd2刷android,一代神机HTC HD2成功刷入Android 6.
  17. 优秀团队建设--美国式团队(ppt)
  18. Java实训——创建一个窗体程序,实现简单的数学加、减法测试。
  19. 优秀员工会频频跳槽吗?
  20. 20款超炫的Jquery插件

热门文章

  1. 计算机网络实验 网络命令的使用,计算机网络常用网络命令 实验报告.doc
  2. Linux笔记:Ubuntu18.04有线网络和无线网络的优先级设置
  3. 利用TextRank算法制作一个可以提取聊天关键词的QQ群机器人
  4. 基于web的仿Steam游戏网
  5. Hi3559a sdk环境搭建
  6. C# 嵌入式数据库LiteDB
  7. 公式法求主合取范式和主析取范式的一种思路
  8. meanshift算法图解
  9. 发票识别OCR和发票扫描仪
  10. 麒麟3.2安装微软雅黑字体