OpenStack培训的用户体验

尽管在云计算领域仍然有很大的争议,但是OpenStack事实上已经成为Iaas云平台的事实标准和首选的平台。从培训市场的火热也证明了这一点,现在的OpenStack培训有很多,讲的内容也不尽相同,那么哪一种培训才是用户最需要的呢?
这篇文章并不是要评价任何一个OpenStack培训,只是想从用户体验的角度分析一下,到底什么才是用户真正需要的。如果文章观点有任何不妥,还请各位前辈和大牛们多多海涵。

关于我

简单来说,我带过OpenStack产品的研发团队,谈过OpenStack的合作,做过OpenStack培训讲师,也卖过OpenStack的私有云产品,也和大量的用户聊过OpenStack,所以还算是对OpenStack这个行业整体上有个清晰认识。

OpenStack培训的目标群体

我做过的OpenStack培训大体上分为两类,内训和外训。

内训是面向公司内部,因为我曾经带过的两个团队都是以开发OpenStack私有云产品为主的,所以我的培训对象主要是研发、运维、售前和销售人员。

外训的对象很多,包括知名的国企、外企和民营企业以及学校,行业大部分以传统行业为主,涉及通讯、金融、系统集成等,面向的群体主要是研发、IT和售前,培训的内容以OpenStack的基础和研发为主。

所以我把OpenStack培训的目标群体定义为:研发人员、系统工程师和运维人员、售前、销售人员、学生。

针对不同的群体,到底需要哪些培训?

销售人员

现在做OpenStack生意的无外乎两种:产品和服务。无论是哪一种,对传统的销售人员都是一种极大的挑战。云平台并不像传统软件一样,能够一眼看明白他到底是做什么的,解决了用户的哪些痛点。并且在企业中,能够做决策的人往往并不全是技术出身,所以想和他们解释清楚OpenStack到底能做什么,又是难上艰难。

所以对于销售人员来讲,培训的重点应该有以下几点:

  • 使用培训:我觉得无论为哪一类群体培训,演示如何使用OpenStack,都是最有效的帮助人理解的方式。但是这里的演示,必须要设定场景,即传统的业务形态下我们的业务系统是什么样子的,迁移到云平台后该如何部署,从这种比较中,加深对OpenStack的理解。销售人员通过对OpenStack操作,加深对OpenStack或OpenStack产品的理解。毕竟图形是最高效的一种记忆方式。
  • 理解什么是开源软件:开源软件一定是未来的发展趋势,如果无法对开源软件有一个清晰的认识,也就无法理解清楚OpenStack这个项目出现的价值和意义。
  • 了解OpenStack的发展历史、OpenStack基金会以及OpenStack社区的运营方式:学习这些的目的是为了给用户讲故事,让用户了解为什么要选择OpenStack,为什么OpenStack项目有持续的生命力,让用户相信使用了OpenStack能够保证未来的基础架构灵活面对业务层面敏捷性的需求。
  • 案例学习:案例最大的价值就是教育用户,VMWare花了十几年的时间教育了用户,OpenStack不可能在短短的几年时间内就改变这样的局面,所以“学会用别人的案例来教育自己的用户”,是在销售人员OpenStack培训中非常重要的一课。

售前人员

售前人员不但要从技术层面让用户信服产品,而且还要结合用户的业务系统需求提供建设方案,外企中的很多售前工程师还要承担搭建POC环境的职责。售前人员沟通的主要对象是企业中有实际需求的业务部门,也是最有可能落地的部门,沟通的成败决定了是否能签单,所以需要更多的专业知识来满足和用户的沟通需要。 培训的重点应该是:

  • 使用培训:理由同上,但是我觉得售前人员还需要站在用户的角度来思考一下,我的用户到底会如何使用云平台?业务系统迁移到平台后,会有哪些问题?
  • 如何部署:部署培训向来是各大OpenStack培训必讲的内容,而且90%的内容都是围绕部署展开的,例如某知名企业的OpenStack授证培训。对于售前人员,我认为OpenStack部署训练还是很有必要的。一方面,能够帮助培训对象快速理解OpenStack的架构;另一方面,也能在未来的方案设计上提供参考和依据。由于云平台在使用上与企业传统的IT环境有较大的区别,所以售前人员在学习过程中,应该更多的了解OpenStack部署的特点,服务和服务之间的关系,云平台高可靠等和生产环境部署息息相关的问题。另外还要关注,用户的业务系统迁移到云平台后,可能带来的变化以及应对方式。例如:OpenStack里的网络分为fixed ip和floating ip,但是用户原有的业务系统只会有一个IP,这时候就需要考虑如何为用户选择适当的部署方案。
  • OpenStack架构:掌握OpenStack模块的基本工作原理和模块的详细作用。学习这些内容,是为了帮助售前人员在和用户后续交流中,帮助用户选择适当的模块解决用户的需求。
  • OpenStack的发展趋势:这部分内容就是能够引导客户未来的项目需求。例如在分布式存储,NFV和SDN方面。

系统工程师和运维人员

Iaas云平台不但是对传统的企业IT架构进行了变革,也从管理上对企业原有的流程形成了冲击。需要培训的用户往往集中在自用OpenStack云平台的企业。

  • 使用培训,不同于上面两种简单的使用,运维人员要求对OpenStack管理部分的使用也要有很深的理解,而且还需要掌握命令行方式的相关操作。
  • OpenStack架构,了解OpenStack内部的工作原理,有助于快速定位问题,对系统进行维护。这部分包含的内容比较多,从OpenStack自身的原理到虚拟机,存储,再到虚拟网络的实现都需要有一个系统的了解才可以。
  • 部署培训,要求详细掌握安装的过程,了解全部配置文件的功能及常用选项和参数。
  • 自动化部署培训,手动部署即耗费时间又不能保证准确,所以作为运维人员,必须要掌握至少一种自动化部署的方法。这方面的方案有很多,从TripleO、Fuel到Puppet,Salt,Ansible。个人还是推崇应该选择Salt或者Ansible的一种进行学习和掌握。
  • 运维培训,要求就是在云平台出现问题之后快速定位问题。
  • 自动化运维培训,DevOps作为未来运维的趋势,反复被提到。云平台自动化运维的内容很多,部署、监控、告警、自动巡检、健康检查等等,使用的工具无外乎上面提到的Salt或者Ansible这样的工具。自动化运维不仅仅是云平台未来培训的一大趋势,也是企业有需求的培训内容。

开发人员

开发人员对OpenStack培训的需求主要和未来的工作有关(除了是公司强制或者兴趣之外),从我的经验来看:一种是基于OpenStack API开发,一种是开发OpenStack。所以针对两种不同的需求,培训内容需要单独进行设计,总体来说后一种包含前一种培训。

与之前几种培训不同,我认为部署培训对开发人员并不是必须的,因为在实际工作中,开发人员很难有机会真正接触到安装过程,这部分工作往往由公司的IT人员去完成,并且其中涉及到大量的Linux基础命令,很多研发人员其实对这部分并不是十分熟悉,所以即使学习了安装内容,也还是一知半解。与其在安装上浪费时间,不如多了解一些架构方面的细节。

  • 使用培训,帮助开发人员快速了解OpenStack。
  • 了解社区的开发流程,OpenStack之所以发展到今天的程度,和社区的代码的管理流程密不可分,所以这部分是值得每一名开发人员学习的。
  • 搭建研发环境,既然要开发OpenStack就应该按照开发的方式搭建研发环境,这样屏蔽了很多安装上的细节,并且让开发人员有个快速能使用和开发的环境。
  • 基于OpenStack API开发,这部分应该是个重点,我通常会设定一个具体的用户需求,通过解决用户需求来了解API的使用。例如:作为一名用户,我想给我的虚拟机挂卷并自动分区,挂载到/mnt目录。这里的内容包含API文档的使用,通过浏览器REST Client插件详细了解OpenStack API的调用过程,学习使用OpenStack SDK。
  • OpenStack编排服务,将API开发中的场景,用编排服务加以实现,还可以包含Scaling和Auto Scaling的场景。这部分很可能是开发人员在未来开发中非常需要的一部分内容。
  • OpenStack发展方向,OpenStack的大帐篷展现了对未来的野心,所以了解OpenStack未来的发展方向是很有必要的。

针对于以后开发OpenStack的研发人员,还需要根据实际的开发内容增加以下的培训内容:

  • OpenStack通用技术,学习OpenStack的通用技术有助于理解OpenStack的所有模块,这部分内容主要包括:Eventlet,REST和WSGI,Taskflow,OSLO项目等诸多重要的类库。
  • 典型模块的架构及开发入门,这里面推荐的模块包含:Nova/Neutron/Horizon/Ceilometer,这几种模块几乎涵盖了OpenStack大部分模块的架构,所以重点理解这些模块的架构和工作原理,对于理解整个OpenStack项目都非常有帮助。直接将代码其实真的很困难,我习惯于使用场景的方式追踪代码的运行轨迹,从而整理出时序图的方式讲解。

学生

学生群体事实上是相当有潜力的市场,现在国内OpenStack人才紧缺,所以OpenStack一定要从大学抓起。学生对OpenStack的学习不能仅仅停留在OpenStack本身,与之相关的内容都要学习,但是又不建议完全理论化的学习,强调动手的能力是关键。例如:对Python的学习,虚拟化软件的学习,OpenStack的安装,OpenStack的开发进行循序渐进的学习。

总结

我认为培训中很重要的一环就是让学员动手,否则培训的效果不会很好。以上就是我对OpenStack培训的粗浅认识,还请各位多多指教。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
涉及的问题: 建索引时有一个字段是该词语出现的次数,这个字段是放在solr里的  而我用的是多线程来进行全量导入的,这里就涉及到了多线程问题 多个线程操作同一个变量时如何处理? 我是这样子做的 : 首先将变量本地话--分布式就放到大容器中,我这里仅仅使用了一个map来存 词和次数的关系映射 变量本地化后就是多线程的解决了--锁的设置-我仅仅是在操作时加了一个锁来解决这个问题 这样做后总体上应该能解决变量的问题了 最后还有一个线程顺序问题要解决下 当 最后一个提交索引时 获取的索引不一定是正确的索引 当两个

MapReduce实现二阶矩阵相乘 - 2016-03-29 14:03:00

二阶矩阵相乘公式 上例中的C 11 =A 11 *B 11 +A 12 *B 21 +A 13 *B 31 =1*3+0*2+2*1=5、 C 12 =A 11 *B 12 +A 12 *B 22 +A 13 *B 32 =1*1+0*1+2*0=1 分析  因为分布式计算的特点,需要找到相互独立的计算过程,以便能够在不同的节点上进行计算而不会彼此影响。根据矩 阵乘法的公式,C中各个元素的计算都是相互独立的,即各个cij在计算过程中彼此不影响。这样的话,在Map阶段可 以把计算所需要的元素都集中到同一个k

logistic回归 - 2016-03-29 14:03:30

逻辑斯谛回归模型 逻辑斯谛分布 首先介绍逻辑斯谛分布,该分布的定义是 设X是连续随机变量,X服从逻辑斯谛分布是指X服从如下分布函数和密度函数: 其中, 为位置参数, 0 为形状参数。 可以通过其图像观察: 右边的逻辑斯蒂分布函数以点 中心对称,即满足: 形状参数 越小,曲线在中心的增长速度越快。 二项逻辑斯蒂回归模型 这是一种由条件概率表示的模型,其条件概率模型如下: 其中,exp为以e为底的指数函数,x∈R n 是输入,y∈{0,1}输出,w,b是模型参数——w是权值向量,b称作偏置,w·x是向量内积。

线性回归 - 2016-03-29 14:03:40

1.线性回归模型 "回归"的由来 Francis Galton,英国生物学家,他研究了父母身高与子女身高之间关系后得出,若父母身高高于平均大众身高,则其子女身高倾向于倒退生长,即会比其父母身高矮一些而更接近于大众平均身高。若父母身高小于平均身高,则其子女身高倾向于向上生长,以更接近于大众平均身高。此现象,被Galton称之为回归现象,即regression. 什么是线性回归? 这里我讲几点: 1)统计回归分析的任务,就在于根据 和Y的观察值,去估计函数f,寻求变量之间近似的函数关系。 2)我们常用的是,假
最新一期《中国IT产业发展报告》在2016中国(深圳)IT领袖峰会上正式公布,数字中国联合会常务理事李颖称,中国IT产业完成了从要素驱动向效率驱动的过渡,目前正在由效率驱动向创新驱动发展。 //定义要序列化的类型 protected int[] splits;//int 数组 protected String[][] splitss;// 二维数组 protected int n1; //int public void cFPoints1(VectorText2 sample, int n) { Stri
分类问题(Classification Problem) 样本因变量 Y 被标记为种类,也就是说分类是要预测一个离散值的输出。对应的问题就是分为 Y 类的概率。 支持向量机支持无数多的属性 逻辑回归(Logistic Regression) 逻辑回归:根据自变量确定因变量的种类, h θ ( x ) ∈ [ 0 , 1 ] 但是在分类问题中 h θ ( x ) 可以 1 或者 0 . 逻辑回归通常使用的是二元,这类问题中 y ∈ { 0 , 1 } . 其中: 0: Negative Class1: Po
3、controller-manager模块 在controller manager模块中有几个重要的结构体,其中包括EndpointController、ReplicationManager、GCController、NodeController、ServiceController、RouteController、ResourceQuotaController,下面会进行介绍。在controller manager模块还有几个处于试验阶段的功能和结构体,这里不会进行介绍。 3.1、EndpointCon
Jenkins  是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变得可能。现在软件开发追求的是效率以及质量,Jenkins使得自动化成为可能! 亮点 采用shell自定义脚本,控制集成部署环境更加方便灵活 精简war包中的lib包,常驻tomcat里,减少war包传输时间 Jenkins 用户权限管理,不让淘气鬼乱动 构建失败发邮件通知相关人员解决 自动按天备份war包,Jenkins配置备份以及版本控制化 环境 Ubuntu 14.10 (GNU/Linux 3.16.0-33-g

搭建6个节点的Hadoop集群 - 2016-03-27 17:03:15

搭建6个节点的Hadoop集群 节点 在实验室192.168.100.20:8006,用户名:root,密码: ** ,申请了6个节点,分别是: 192.168 . 101.44 #主节点 192.168 . 101.45 #节点1 192.168 . 101.46 #节点2 192.168 . 101.47 #节点3 192.168 . 101.48 #节点4 192.168 . 101.49 #节点4 网络基本配置 255.255 . 254.0 #子网掩码 192.168 . 100.1 #网关 2

keystone WSGI流程 - 2016-03-27 17:03:04

作为OpenStack两种主要的通信方式(RESTful API与消息总线)之一,理解RESTful API的设计思路和执行过程,有助于我们对OpenStack有更好的理解。RESTful只是设计风格而不是标准,Web服务中通常使用基于HTTP的符合RESTful风格的API。而WSGI(Web ServerGateway Interface)则是python语言中所定义的Web服务器和Web应用程序或框架之间的通用接口标准。 在OpenStack中随处可见基于WSGI的通信,如nova-api,keys