作为 OpenStack 的核心教程,我们已经到了最后总结的部分。
OpenStack 目前已经有好几十个模块,本教程讨论的是最最重要的核心模块:Keystone,Nova,Glance,Cinder 和 Neutron。请大家看下图:
此图截自 https://www.openstack.org/software/project-navigator/,这是 OpenStack 官方定义的 6 个 Core Service。每个模块都会从三个维度来衡量:
ADOPTION - 采用度
MATURITY - 成熟度
AGE - 年龄
ADOPTION 和 MATURITY 是最关键的两个指标。
我们先来看 ADOPTION。模块的 ADOPTION 如果能达到 90%,基本上可以说只要使用 OpenStack 就会部署此模块。
MATURITY 8 为满分,如果是 7、8 分的 MATURITY,那么这个模块的架构就非常稳定,功能也很完善了,应该说达到了上生产的水平。
其实 CloudMan 在考虑教程覆盖的技术范围时也是参考了这张图,采用度和成熟度都高的模块才是我们应该重点研究的技术。大家可能已经注意到,在 6 个 Core Service 中,Swift 没有被纳入到此教程。Swift 是对象存储,成熟度很高,在互联网行业中应用非常广泛,但在传统应用领域使用还不多。OpenStack 目前主要还是用于私有云,所以 ADOPTION 方面受到了限制,还不到 50%。这也是 CloudMan 暂时没有将它放到本教程的主要原因。
我们所处是一个知识更新迭代非常快的行业,如果两三年不学习可能就会有被淘汰的危险。学习新技术是 IT 从业者日常工作的一部分,既然选择做这行就必须要面对这个的现实。
对于如何学习新技术,CloudMan 有一些个人的建议,借这个机会跟大家交流一下。
哪些技术应该优先学习?
我们的时间和精力都是有限的,而新技术新知识是很多的,这时候就必须考虑一个效能问题:用最少的时间掌握最有价值的技能。
哪些技能最有价值呢?
我的 第一个判断标准是:选择那些未来必将流行和大规模使用技能。比如 OpenStack,目前已经是 IaaS 事实上的标准,社区活跃,又有大厂商积极参与,更重要的是越来越多重量级企业开始部署和实践 OpenStack,发展势头强劲。另一方面 OpenStack 的技术人才缺口很大,稀缺性决定了价值,所以我们看到了人才市场对 OpenStack 的青睐。
好,假设我们都同意 OpenStack 是应该学习的技能了(不然你也不会看这个文章了 :-),那么接下来的问题是 OpenStack 模块这么多,我要怎样学呢?是都学吗?按什么顺序学呢?这就是我的 第二个判断标准:学那些 ADOPTION 和 MATURITY 都高的技能。
ADOPTION 高意味着市场有需求,学了就能用。MATURITY 高意味着技术架构已经成熟和稳定,学了之后的在相当长时间内都有效,不过时。下面找两个模块具体分析一下。
先来看 Swift,前面说了,这个技术互联网企业用得多但传统企业目前应用有限,如果你就职于传统企业,花时间学习 Swift 肯定不是一件划算的投资。当然,如果你已经明确知道自己公司会用对象存储,那则是另外一回事了。
另一个模块是 Ceilometer,它属于 OpenStack optional service。请先看下图:
Ceilometer 的主要作用是收集 OpenStack 的性能数据和事件,对于运维还是非常重要的,所以我们看到它的 ADOPTION 还可以,62 %。不过成熟度太低。事实也是如此,几乎 OpenStack 的每个版本 Ceilometer 架构和代码都有很多变化,虽然是一个很有前景的模块,但我们如果花太多时间去研究,可能半年之后又得花大力气重新学习一遍,因为可能已经过时了。对于 OpenStack 的大部分技术人员,CloudMan 并不建议花太多精力在 Ceilometer 上。当然如果你的职责是要实现 OpenStack 的性能监控或者计量计费,Ceilometer 应该是绕不过去的坎。
在 optional service 有一个 ADOPTION 和 MATURITY 都还可以的模块 - Heat。这个模块是用来做编排的,其实很有价值,比如可以实现虚拟机的 auto scaling。CloudMan 如果要更新教程,Heat 肯定不会错过。
如何学习?
简单的说就是:理论联系实际。
要掌握 IT 技术说难吧,确实,像 OpenStack 这种体系结构大而复杂的,是有难度。但从另一方面看,如果轻松就能学会,我们技术人员的价值也就不大了。我没有看到哪个公司愿意花大价钱雇一个 VMware 管理员。
对于 IT 技术,最好的学习方法是边学边实践。刚开始搞不太清楚原理和底层细节没关系,先装上跑起来,能运行一个最小案例,先建立起感性认识和正反馈很重要。然后再根据文档从架构到细节,从原理到实现一步一步探索。这也是 CloudMan 在教程中尽量遵循的方法。每一章都设计了大量的实践操作环节,通过截图和日志帮助大家理解各个技术要点。在教程的编写过程为了其中一个实验我会尝试不同的场景和边界条件,最后呈现给大家的是最典型的场景。非常鼓励大家跟着做实验,说实话,仅仅看一遍教程我不觉得会有多大收获,当然如果你的目的只是了解 OpenStack 能干些什么则另当别论。
如何使用这个教程?
本教程对读者应该会有两个作用:
初学者可以按照章节顺序系统地学习 OpenStack,并通过教程中的实验掌握 OpenStack 的理论知识和实操技能。
有经验的运维人员可以将本教程当做参考材料,在实际工作中有针对性地查看相关知识点。
继续学习的建议
如果大家想更深入地学习 OpenStack,我的建议是:首先确保掌握本教程的知识点,因为这是基础。掌握的含义是理论能够联系实践。能部署,会操作,能看日志,会排查问题。之后嘛?我相信当你做到前面这点后就已经具备了自学其他模块或者更深入学习某个 core service 的能力了。
对新教程的想法
OpenStack 这个教程暂时告一段落了,之所以是“暂时”,是因为目前还没有别的模块满足我们前面的那两个选择条件。当有新模块满足条件后,CloudMan 会继续更新这个教程,目前看,比较有希望的是 Heat 和 Swift。再次说明,这并不是说其他模块就不值得学习,只是作为教程内容不适合,因为教程是面向大多数人的。如果你自己有工作或兴趣上的需求,当然可以自学。就拿 CloudMan 来说,有的客户需要计费功能,我也花了不少时间去研究 Cloudkitty 模块。
另外,核心模块中如果有一些新的有价值特性,我也会择机更新教程。
除此之外,还有什么技术满足那两个选择条件呢?如果你足够敏锐,相信会给出这个答案 - 容器。
容器是云计算的另一大趋势,而且围绕 Docker 建立的容器生态越来越成熟,所以 CloudMan 下一个教程就叫 《每天5分钟玩转容器技术》。在这个教程中会涉及容器生态系统中最核心的几个方面:容器、镜像、网络、存储、编排引擎、管理平台和基于容器的 PaaS。
不过在开始这个新教程之前,CloudMan 还想跟大家分享一些个人这几年在 OpenStack 项目实践中总结和积累的实用技能和经验,作为对教程的补充。这个部分会有 10 篇左右,每篇一个技能或案例。
公众号还是每周 1、3、5 更新,感谢大家过去一年的陪伴,2017 我们继续携手前行。
学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)的更多相关文章
-
搭建 OpenStack 实验环境 - 每天5分钟玩转 OpenStack(16)
在学习 OpenStack 各服务之前,让我们先搭建起一个实验环境. 毋庸置疑,一个看得到摸得着而且允许我们随便折腾的 OpenStack 能够提高我们的学习效率. 因为是我们自己学习用的实验环境,C ...
-
制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)
这是 OpenStack 实施经验分享系列的第 1 篇. OpenStack 的 instance 是通过 Glance 镜像部署的,所以准备镜像是必须要做的工作.本节介绍 Linux 镜像的制作方法 ...
-
制作 OpenStack Windows 镜像 - 每天5分钟玩转 OpenStack(152)
这是 OpenStack 实施经验分享系列的第 2 篇. OpenStack 通过 Glance 镜像部署 instance,上一节我们介绍了 linux 镜像制作方法,windows 镜像与 lin ...
-
如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)
这是 OpenStack 实施经验分享系列的第 11 篇. 本节教大家更新 OpenStack 组件的方法.请注意,是更新(Update)而不是升级(Upgrade).更新是给组件打补丁,版本不变:而 ...
-
每天5分钟 玩转OpenStack 目录列表
最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题 ...
-
写在最前面 - 每天5分钟玩转 OpenStack(1)
<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重 ...
-
cloud-init 典型应用 - 每天5分钟玩转 OpenStack(174)
本节介绍几个 cloud-init 的典型应用:设置 hostanme,设置用户初始密码,安装软件. 设置 hostname cloud-init 默认会将 instance 的名字设置为 hostn ...
-
理解 Nova 架构 - 每天5分钟玩转 OpenStack(23)
Compute Service Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源. OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nov ...
-
Launch和Shut Off操作详解 - 每天5分钟玩转 OpenStack(30)
本节详细分析 instance launch 和 shut off 操作,以及如何在日志中快速定位有用信息的技巧. Launch Launch instance 应该算 Nova 最重要的操作. 仔细 ...
随机推荐
-
Android开发过程遇到的问题小计
1.在真机上正常运行,而模拟器会报出一些so文件找不到 unexpected e_machine: 40. 解决方法:采用x86的NDK进行编译,问题解决.
-
Codeforces Round #378 (Div. 2) D. Kostya the Sculptor map+pair
D. Kostya the Sculptor time limit per test 3 seconds memory limit per test 256 megabytes input stand ...
-
字符集编码Unicode ,gb2312 cp936
这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级.整理这篇文章的动机是两个问题: 问题一:使用Windows记事本的“另存为” ...
-
导入Android工程源码出现乱码问题的解决方法
可以尝试着从以下三个方法进行调试,一般情况下会完美解决的: 1.windows->Preferences->General->Content Types->Text->J ...
-
flash 中无法导出swf文件的解决方法
近一个星期,我的flash cs6一直导不出swf文件,郁闷了好长时间,今天终于在网上找到了解决办法:总结了一下,如下: 一.是把文字打散,变成形状. 二.是把汉字的字体设成fla ...
-
spring boot 中实现兼容不同的请求类型的方法。
比如一个接口,既想实现请求参数是application/json,又想实现form提交,改怎么做呢?用postman去测试,发现不可能做到两全其美. 我有一个方法,就是不用requestbody,也可 ...
-
BZOJ_1598_[Usaco2008 Mar]牛跑步_A*
BZOJ_1598_[Usaco2008 Mar]牛跑步_A* Description BESSIE准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘, 然后走回牛棚. B ...
- UML(聚合、组合、依赖、继承、接口、类)
-
《DSP using MATLAB》Problem 6.17
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
-
读书--编写高质量代码 改善C#程序的157个建议
最近读了陆敏技写的一本书<<编写高质量代码 改善C#程序的157个建议>>书写的很好.我还看了他的博客http://www.cnblogs.com/luminji . 前面部 ...