【VMware虚拟化解决方案】VMware vSphere+CloudStack搭建自助式的开发环境

问题背景:

公司开发人员几十号人,不多也不少吧。人多就会乱,需要好的管理制度进行约束,以保证开发项目的顺利进行。也就是项目管理中的一个难点,对于我目前遇到的情况就是,项目开发的代码的更新、调试和上线发布的完整流程的问题,这也应该是每个公司都会遇到的问题。

在我来到公司之前,完全未采用虚拟化,全部使用老旧的二手服务器,数量众多,各种配置基本是现有管理人员手工进行的,每个项目使用一台物理服务器。工作简单工作量巨大,经常要手工改很多软件配置。

而且因数量众多的物理服务器共同工作。导致机房在夏天的时候耗电量特别大,尽管有两台空调吹也不能很好的降温,经常导致服务器温度过高导致失去响应而需要手动重启。

由于在上一个工作单位使用过VMware vSphere做过测试,其特有的功能和特性,很适合改造现有的环境,配合vCenterServer来进行管理,得心应手的开展各项部署工作,大大提高了工作效率。

但是对于刚刚来到公司不久的我不是很了解开发这边的具体流程,所以基本上是按照开发人员自己的想法来配合搭建基础环境的。

开始一阶段的开发环境是使用VMwarevSphere,部署单机使用,配置好一个功能齐全的虚拟机模板,然后复制一定数量的虚拟机,做开发测试环境:

1.branch开发应用的各个分支,每个人开发完成后自检无误后提交到SVN,合并到trunk

2.trunk   SVN更新代码后,由测试人员进行应用的流程测试,通过后,提交svn代码上线。

这是一个大体的流程,这其中的问题多到你无法想象且需要数量众多的虚拟机进行基础环境的搭建,还有一个主要的问题就是新上岗的员工要在开始很快的部署开发环境。以便及时融入到开发的进程中来,这里面的开发环境的部署就是一个很重要的问题了。最开始是新员工在即按照文档进行熟悉,然后在自己的开发机器上进行部署。光员工自己行按照文档进行部署,这些基础工作就可能要花去他们至少一周的时间。因为太多的API和配置项需要变更。新入职的员工可能不太适应,也造成了人员的浪费,时间成本很高。

解决方案:

开发的主管找到运维组,寻求更好的解决方法。我们经过仔细的研究讨论各种可能的方案。在讨论的过程中了解到开发这边针对基础开发环境的搭建自行开发了一套自动部署环境的工具。只要有新的员工入职,只要执行一个简单的命令即可将各个相关的代码部署到申请的虚拟机上。可以快速的熟悉环境,进行项目的开发工作。效率是不是很高呢?但是这样会增加运维组的工作量,工作重心就会向开发技术支持倾斜了。运维最重要的任务是保证线上的业务稳定性。对开发的技术支持在与次要地位。你可能要说了,可以招一个任专职管理嘛,如果你是老板你会这样做嘛?你回答是,那好,你很有钱也很仁慈。但是国内的情况相信大家经历过的都是一个人要当做两个甚至三个人来用的。对!这就是打杂的嘛!

我们要用尽我们的智慧来给自己创造足够的空间才是硬道理!

废话不用多说了,这里我的方案是将vSphere的虚拟化和CloudStack云计算平台进行结合使用。

VMware vSphpere ESXI5.0 的虚拟化是行业里的领导者,有成熟的技术和架构。我们经常使用到的功能比如:物理主机的HA集群,虚机的克隆,主机之间的迁移,模板生成,快照生成,备份,还原等技术。

Apache基金会下顶级开源项目――云基础设施管理平台CloudStack提供基础和高级的网路环境将虚拟机进行组网、进行虚拟机的增加删除等等配置操等操作。其核心功能的网络模块结合虚拟机管理软件进行虚拟机的管理备份快照功能,进行不同虚拟机平台的整合。给用户自助管理的权限。通过将两者的优势结合,以满足开发部门的现有问题。

下面是一个具体的流程,来帮助读者理解这个架构方案:

1. 安装配置好的VMwarevSphpere ESXI5.0主机N台,在其中一台上安装Windows2003 Server版本的虚拟机,并在此虚拟机上安装vCenterServer集中管理中心。

2. VMwarevSphpere ESXI5.0主机添加到vCenterServer中以便于实现虚拟机的跨主机的迁移、克隆等操作。

wKiom1M9Bt7RaLcJAAKXYenrfW8185.jpg

3. 安装配置好CloudStack,由于开发环境都在一个小的局域网内进行,不需要复杂的网络架构,所以选择安装基本的网络环境同时选择的虚拟机管理程序为VMware即可满足需求。

4. 创建好模板虚拟机,安装必要的基础环境软件等,并集成开发好的自动部署工具。

制作好的VMware模板计算方案:

wKioL1M9CIKh56j5AAH9QJsb604155.jpg

5. CloudStack中创建开发部门的员工账号。

6. 邮件通知新入职的员工所需要的各种信息,当然了CloudStack的账号也会一并给他。收到了这些信息按照入职指导文档进行自己工作环境的熟悉。

wKioL1M9BkqARczAAAKV65Nhkno432.jpg

7. 员工了解到关于开发环境部署的方法,通过WEB登陆个人管理地址,进行虚拟机的自助式管理,按照已经有的模板进行创建,或者按照自己的意思进行上传已有的镜像系统定制自己的系统,然后按照说明说进行开发环境的部署工作。

用户自定义项目:

wKiom1M9BX2zbqa8AANvVP3KBkg664.jpg

整个流程走下来基本上新员工不会在基础环境上花费超过2小时,不需要维护人员的干预,除非有某些不可预知的问题。

wKioL1M9BerTVoK0AAUih334-bY774.jpg

最后每位相关代码编写的负责人员,在自己的虚拟机上调试好以后就可以提交到svn上,然后同时在trunk所在的虚拟化环境中,通过脚本进行代码更新。

测试部门的同事在trunk上测试没有问题后,进行代码上线发布。

方案总结:

这样一整个开发的周期就走完了,可以看到VMware在这个架构中的基础环境作用是非常重要的,配合CloudStack让用户自行管理。这样做其实就像银行开通更多的ATM和网银等是用户进行自助式的办事一样的模式。

整体开发的基础环境比较顺利的获得,开发人员就可以将大部分精力放在开发的工作上了,工欲善其事,必先利其器。现在整个开发部门的整体工作效率较以前有比较有了很大的改善。同时也因减少了物理机的数量,机房的耗电大大的降低,使公司的硬件等资源成本减少投入,响应了国家提倡的节能环保口号。

你可能感兴趣的:(虚拟机,项目开发,项目管理,管理制度,开发项目)