聊聊学习openstack的感受


dg-publish: true
dg-permalink: “聊聊学习openstack的感受”
dg-created: 2021-01-09

🧏‍♀️从云桌面开始


从事openstack工作前,我从事的是云桌面相关的工作,是基于kvm+libvirt+qemu这一套,在此之前,我对云计算可以说还是一无所知的。随着一步步的深入,我知道,云计算的核心,是虚拟化。不管是重量级的虚拟机,还是轻量级的docker。

我使用过中兴的云桌面系统,当时公司用的这个进行办公,不过后来迁移到了我们自研的云桌面了。也接触过深信服的云桌面等。当时的老东家,自研的云桌面,不得不说,这套产品还是很好的。

后来在公司也使用过阿里云,华为云,金山云这些公有云。他们底层的实现,依旧是虚拟化。可以说,没有虚拟化,就没有所谓的云计算。虚拟化相关的,就不多说了。

云桌面不像其他云服务商,侧重于服务端,事实上,它更侧重于客户端。我们需要关注多个模块,比如不同操作系统的虚拟机,比如不同的终端,比如服务端各个模块,主机代理,比如底层的kvm+libvirt+虚拟化,总之,在我接触openstack之前,我需要关注的东西很多,也很杂。当时在那一家公司,也做了很多事情,也很杂。这个后面专门介绍。

🔊接触openstack


接触openstack,是因为公司接了的项目,基于openstack开发的云管理平台,我提前熟悉了搭建,原理,当然一开始也是花了很大力气才搭建起来。对openstack还不是很熟悉,还自告奋勇的参与了云平台的研发,这个系统基于fastapi框架。那时,我钟情于python,觉得openstack是如此高大上,而困难的东西。我尝试着自己搭建环境,第一次是用devstack进行搭建,遇到各种报错。

然而没多久,我因为不得已的原因,离职了,在老板的极力劝说下,我去了合作公司,还是这个项目,还是同一批人进行合作。这才真正的对openstack有了进一步的了解。

于是,我的工作重点,移到了服务端,而不在像之前,需要关注的东西那么多那么杂。openstack虽然把我的研究范围缩小了,可越深入,我发现,里面涉及的东西也不少且难。在此之前,我也有了解过其他基于openstack进行二开而产生的云平台,与我上一家公司的云平台进行了对比,大体功能上是差不多的。甚至连页面布局都是类似。当然,现在很多的系统都是这种布局方式。

😀我在openstack中学到了什么


环境搭建

这可以说是我足够引以为傲的事情了,我使用过packstack搭建过标准的openstack环境,也使用packstack搭建过基于龙芯架构和x86架构的混合环境,但更多的是,基于centos8+kolla-ansible 容器化部署openstack victoria版本。

俗话说,百炼成钢,我在使用centos8+kolla-ansible 容器化部署openstack victoria版本时,真的是搭建过不少于100次了!所以说,为什么我能够那么快速的把环境搭建好,我一步步的试错,一步步的找问题,找原因,环境搭建好了,测试,摧毁,再继续搭建!这样反反复复多次,也写了相关的自动化脚本,从单节点到多节点,可以说,这套搭建已经相对规范和成熟了。也是我学到了最多的东西之一。在线搭建的脚本和步骤已经开源出来了。后面有时间的话会补充一份文档。我的github上已经写的比较详细了。

online-deploy ~这是我的开源出来的在线部署脚本。

在这套系统熟练了以后,再搭建其他任何环境,真的是小儿科了,一通百通。这一点我深有体会,这么难的都会了,再去搞k8s,搞其他的,不是手到擒来吗。不要那么妄自菲薄!

镜像制作

搭建熟练以后,就涉及到虚拟机镜像制作了。qcow2,raw,以及vmdk转qocw2和raw,需要制作标准的镜像,里面注意点很多。

比如,要不要压缩?最终保留什么格式的?
比如,windows类系统,各种驱动的问题,
比如,标准镜像,要安装cloudinit,以及qga等,方便修改密码
比如,vmdk转raw和qcow2,里面的注意点,windows和linux又是不一樣的
比如,使用virt-manager制作镜像的注意点
比如,国产操作系统,龙芯,UOS,优麒麟等等镜像的制作注意点
比如,镜像磁盘自动扩容的问题

这些,经过反反复复的测试和操作,我也已经形成了一套规范的标准的制作流程了。里面的细节太多太多,我就不在这里多说了。我在 这里 记录了大概63篇我工作遇到的问题。

openstack的使用

在正式接触openstack之前,我对这个平台还是不是很了解的。在此之前,我主要在老东家接触的是云桌面,这一套也是比较复杂的。涉及的模块很多。而openstack和所谓的各种云,金山云,华为云,京东云,阿里云等等,主要侧重点在服务端。在这之前虽然我使用并且维护过这些云服务器,当我真正使用openstack这个开源项目后,接触到的是不一样的世界!

问题排查能力的提升

在环境搭建以及使用openstack过程中,会遇到各种问题,比如镜像上传等等,为什么速度慢,要经历哪些过程?这些不同模块,不同节点的日志的定位就很重要了。需要很精准的定位能力。

而openstack的模块和日志之多超乎我的想象了。在后面的学习Go后,才接触过有很多日志平台,可以帮助我们定位问题,这种平台在openstack里还并未引入。我需要一个一个节点去打开各个模块的日志去定位和分析问题出现在了哪里。

很多问题都是相通的,学会了openstack的搭建,问题的定位。再去看其他系统,就会觉得很简单!甚至一看就明白!我在后来去看南京全球软件大会的时候,有一个复旦大学的学生现场演示了一个demo,那个是基于华为的一个开源项目,和openHarmony系统做的一个系统,我以前没有接触过这个东西,但是我听的时候,一看就看明白是怎么回事了,这真的得益于我在平时工作中的各种环境的搭建和问题定位,一通百通

🤓后悔学了openstack吗?


虽然现在由于各种原因,放弃了openstack这个方向。更倾向于更加轻量级的容器级别的虚拟化等。单纯就学习和工作接触到openstack,我并不后悔在上面花费了时间和精力。因为这是一个不一样的世界,至少,我知道,我做过,甚至,我还对其中的很多操作很熟悉。尤其是底层的虚拟化的东西又加深了理解。这些只有在工作中不断去实践才能学到的,openstack毕竟是需要大量服务器资源才可以学习和实践的东西,而个人是很难有这个条件的。

💭我为什么放弃?


  • 一个是因为做openstack的公司太少,基本倾向于大公司多一些,而小公司很难做的起来。我了解的小公司,也基本放弃了,甚至转型到zstack等。更多的是使用k8s+docker这样的轻量级虚拟化。出于我实际就业的原因,我放弃了这一条路,至于学习过,放弃过,我并不后悔我的选择。甚至对它产生了感情。毕竟我花了那么多时间和精力去学这个东西。
  • 另外,是因为openstack系统过于庞大,过于重量级了。不管是从搭建,维护,使用,还是进行二次开发,它这个系统涉及的东西太多太多,运维也罢,开发也罢。很难对它有很全的了解。最多只是了解其中某个模块和组件。它涉及的东西过于庞大,系统也过于复杂。这并不符合我的理念,当然,涉及云这一块,可能就没有简单的。
  • 关于openstack的工作,大都以运维为主,可能需要出差;研发方面的工作机会极少。而我自从学了go后,如果是做比较大规模的系统,还是习惯go的设计理念和工程化的思想。py去做这种系统,有点庞大和复杂,会很绕。无形间增加了难度。我更倾向于把py当成脚本用,很好用。
  • 另外,openstack开源社区庞大,但是很乱。一直没有一个统一的标准。

出于上面主要原因,我止步研究openstack,我对它的了解,止步在了几百次的部署研究,各种镜像的转换和研究,还有平台的使用和各种问题定位,和简单的调用API进行开发等等(这里面内容真的太多太多,我无法全部将我掌握的详细列出来,可以看我下面的笔记大致了解我掌握的程度,当然,笔记不涉及机密以及自研的系统,全部基于开源的)。把战场转向了我感兴趣的方面,也打开了另外的一扇门。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/425196.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络(三)——协议是什么???

文章目录 协议的概念结构化数据网络计算机服务端定制协议客户端代码 协议的概念 计算机之间的传输媒介是光信号和电信号。通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。 结构化数据 我们知道TCP是面向…

pgrouting实战应用

1)下载地区地区数据(下载数据是XYZM 四位数据) 2)下载裁剪行政区数据 3)使用arcgis pro添加路网数据和行政区数据 4)裁剪数据,仅历下行政区路网 5)arcgis pro要素转线&#xff0…

TalkSphere项目介绍

TalkSphere项目介绍 文章目录 TalkSphere项目介绍一、前言二、技术栈及开发环境三、主要功能(一)用户登录与注册(二)用户历史消息展示(三)在线用户实时聊天 四、结语 一、前言 在线聊天室作为一个虚拟社交…

springboot3.X版本集成mybatis遇到的问题

由于我本地springboot为3.x版本,如下图所示,最新版本 当我参照如下搜索的内容去集成mybatis的时候,会出现各种各样的报错 最根本的原因是搜出来的配置是参照springboot2.X版本,当我们使用springboot3.x版本之后,需要配…

图论篇--代码随想录算法训练营第五十八天打卡|拓扑排序,dijkstra(朴素版),dijkstra(堆优化版)精讲

拓扑排序 题目链接:117. 软件构建 题目描述: 某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件依赖于其他文件的内容,这意味着如果文件 A 依赖于文件 B&#xff0…

分布式中间件-分布式代理框架Codis和Twemproxy

文章目录 Codis框架架构图 Twemproxy框架Codis和Twemproxy对比设计目标功能特性使用场景结论 Codis框架 Codis是一个开源的分布式内存键值存储系统,它基于Redis并且提供了一个分布式的解决方案来扩展单一Redis实例的能力。Codis项目由豌豆荚团队开发,并…

【webpack4系列】webpack构建速度和体积优化策略(五)

文章目录 速度分析:使用 speed-measure-webpack-plugin体积分析:使用webpack-bundle-analyzer使用高版本的 webpack 和 Node.js多进程/多实例构建资源并行解析可选方案使用 HappyPack 解析资源使用 thread-loader 解析资源 多进程并行压缩代码方法一&…

基于C#+Mysql实现(界面)企业的设备管理系统

管理信息系统课程设计说明书 1 引言 企业的设备管理在企业的生产制造和管理过程之中意义比较重大,明确企业的设备的产权和维护成本对于企业的成本控制和财务管理之中起到了重要的作用。随着市场竞争的加剧,现代企业所处的市场环境发生了深刻的变革&…

【Mac】系统环境配置

常用工具 Navicat PJ版本:this Host切换器 SwitchHosts termius 一款好用的Linux服务器连接工具: termius 小飞机 dddd:🪜 Git mac安装git有好多种方式,自带的xcode或者通过Homebrew来安装,本文的…

Java——类型转换

一、类型转换 1、介绍 类型转换分为自动类型转换和强制类型转换。 2、自动类型转换 自动类型转换是指在表达式中,当两种不同的数据类型组合在一起时,较小的数据类型会自动转换为较大的数据类型,这个过程是自动的,无需编程者手…

清华大佬自曝:接到了省烟草局的offer,我就拒掉了华为!结果华为立马给我申请了特殊涨薪,总包70w是烟草的2倍,这可如何是好?

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

C:字符串函数(续)-学习笔记

穗 一些闲话: 最近玩了这款饿殍-明末千里行,不知大家是否有听过这款游戏,颇有感触!!! 游戏中最让我难以忘怀的便是饿殍穗线的故事,生在如今时代的我之前无法理解杜甫在目睹人间悲剧时的心情&…

【网络原理】❤️Tcp 连接管理机制❤️ “三次握手” “四次挥手”的深度理解, 面试最热门的话题,没有之一, 保姆式教学 !!!

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

华为 HCIP 认证费用和报名资格

在当今竞争激烈的信息技术领域,华为 HCIP认证备受关注。它不仅能提升个人的技术实力与职业竞争力,也为企业选拔优秀人才提供了重要依据。以下将详细介绍华为 HCIP 认证的费用和报名资格。 一、HCIP 认证费用 华为HCIP认证的费用主要由考试费和培训费构成…

电气自动化入门01:电工基础

视频链接:1.1 电工知识:电工基础_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1PJ41117PW?p2&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.电能和电力系统 2.电工常用物理量及其应用 2.1电阻: 2.2电流: 2.3电压&…

【C++】入门基础(下)

Hi!很高兴见到你~ 目录 7、引用 7.3 引用的使用(实例) 7.4 const引用 【第一分点】 【第二分点1】 【第二分点2】 7.5 指针和引用的关系(面试点) 8、inline 9、nullptr Relaxing Time! ———…

系统 IO

"裸奔"层次:不带操作系统的编程 APP(应用程序) -------------------------------- Hardware(硬件) 特点:简单,应用程序直接操作硬件(寄存器) 缺点: 1. 搞应用开发的必须要了解硬件的实现细节,能够看懂原理图…

MyBatis 增删改查【后端 17】

MyBatis 增删改查 引言 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs (…

yolo训练出现Could not load library libcudnn_cnn_train.so.8问题及解决方法

问题场景: 训练yolov5或者yolov8时候会报错: Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-12.1/lib64/libcudnn_cnn_train.so.8: uined symbol: _ZN5cudnn3cnn34layerNormFwd_execute_internal_implERKNS_7backend11Vari…

java技术栈介绍

Java技术栈是一个庞大而丰富的生态系统,它包含了从基础语言特性到高级框架、库和工具的整个集合。这个技术栈为开发者提供了构建各种类型应用(包括企业级应用、Web应用、移动应用、大数据应用等)所需的全部组件。以下是对Java技术栈的一个更详…