目录

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培训的粗浅认识,还请各位多多指教。