技术开发 频道

基于ITIL方法设计私有云的软件研发服务

  【IT168 技术】随着计算机单机性能的提升和IT行业竞争日益激烈,云计算走进入了我们的视野中。历史在不断的重演,但是每次却有不同之处。

  云计算也是一样,在20世纪60-80年代计算机的价格和维护成本只有一些大型企业和政府机构才能负担得起。为了满足很多用户使用的需求,每一个用户通过单独的终端接入同一台大型机。进入80年代以后,客户机/服务器(client/server)技术的飞速发展,数据由单一的大型机分散到了很多服务器中,原来没有计算能力的接入终端变成了个人计算机。进入90年代后期,随着经济全球化和企业规模的扩大,信息分散管理的弊端越来越明显,运营成本迅速增加。信息集中化成了一种不可阻挡的趋势。云计算让我们又回到了新的历史起点。

  本文介绍基于私有云计算架构的软件开发生命周期管理服务,涵盖了虚拟化的IT基础设施服务管理,中间件应用优管理和开发软件代码托管服务。如何通过对这三方面的管理策略提升服务水平是本文的核心内容。

  云计算带来的软件生态环境的改变

  云计算带动了很多行业的发展也产生了很多新的行业领域。比如虚拟化技术,数据存储技术和大数据(Big data)。这些变化带来了很多机会,同时也对目前的企业提出了严峻的考验。这要求企业的IT基础架构具有更大的弹性,并保证具有高可用性。

  从外部环境来看,软件研发从早期的后台计算模式,客户机/服务器模式到,浏览器/服务器模式再到云计算时代。从面对百万客户机模式到数十亿移动设备。

  从企业内部环境来看,从僵硬的基础架构到一个弹性云基础架构;结构化数据到大量非机构化数据;静态应用程序要动态服务;从被动安全策略到智能主动保护等。

  云计算基础架构特点

  IT架构高可管理性 资源池化,弹性服务;自由迁移,按需服务;

  在传统的非云计算场景下,物理服务器通常只被单一租户的单一业务使用,所以单台服务器的利用率会比较低。随着业务的扩展,需要不断增加服务器的数量,这样会使得数据中心的规模越来越庞大。相反资源利用率低下造成资源重复购买和现有资源的浪费。在云计算的场景下,由于数据中心为大量而不是单一的业务单元或用户提供服务,所以业务量会极其庞大。靠不停地增加物理服务器对于成本和网络规模来说都难以接受。虚拟化技术使得一台物理服务器可以被虚拟成多台服务器来使用,从而利用了原本闲置的资源,提高了服务器的使用率,所以使用相对较少的物理服务器就能满足大量的业务需求。通常对于多核CPU的服务器来说,可以虚拟成每个CPU一个虚拟机来使用。当然虚拟化还要受到硬盘的每秒I/O数和内存的限制。

  除了提高使用率外,虚拟化还使得服务器自由迁移变成可能。在传统的数据中心,进行服务器的迁移是一项非常浩大的工程。必须事先进行规划,需要谨慎计划割接时间,做好备份。服务器需要进行断线断电,搬移,重新上电上线,通常业务会中断,所以搬迁服务器是极少发生的。而使用了虚拟化技术以后,虚拟机的迁移不再涉及到物理上的搬迁。并且可以使用各种技术,例如渐进式内存复制等方法使得迁移平滑进行,保证了迁移时用户不感知,相关业务不中断,不受影响。

  提升业务连续性虚拟化容灾备份降低维护成本

  自由迁移为数据中心的容灾备份,节能环保,为网络优化提供了不可替代的便利。

  云集算软件研发小故事

  云计算带来了诸多便利,但是同时对于普通人来说又非常难理解,我们来讲一个云计算实际应用中的故事来让大家对云计算有一个形象的了解。

  某公司的小王刚刚晋升为项目经理,负责一个新产品的开发工作。项目处于初始阶段,对于刚刚组建的团队的小王,如何建立一套新的软件产品研发环境感到很无助。不过当小王看到了一封公司内部云计算代码托管服务的推广邮件时眼前一亮。邮件的主要内容是只要简单的为项目成员申请对应权限的帐号,建立一个项目就可以开始开发工作了。

  于是小王访问了邮件中的统一用户服务网站并提交一个建立项目和注册项目成员的请求,有趣的是当选择建立新项目请求类型时,在请求说明中显示出建立新项目的收费模式,以及服务的质量说明信息。

  过了十几分钟小王和他的团队成员收到了RTC项目添加新成员的邀请函。内容是新项目的访问地址和用户认证信息。RTC 服务默认包括了需求管理系统,任务管理系统,代码管理工具,和测试用例管理系统。小王的团队很快就开始了开发工作。

  过了一个月代发开发的比较顺利但是总是在集成的过程中出现错误,于是小王就把这个问题提交到了统一用户平服务网站中,很快得到了服务管理员的回复,并建议小王使用持续构建服务。在服务管理员的帮助下把构建过程输入到了Build Forge服务器中。并设定了定时构建的周期。之后再出现构建失败的情况就可以查看构建服务器提供的版本比较功能定位哪些文件的改动导致了构建失败了。

  过来三个月,小王的产品作出了原型系统,销售反馈市场反映很好,但是有很多需要改进的部分。于是小王的团队开始快速扩张,新招聘的人员对RTC的开发环境很不熟悉。小王又找到服务管理员,这次小王对得到的答复同样很满意。原来针对开发平台有一个知识库系统,只要搜索“用户手册”就可以得到关于如何上传代码如何做构建的帮助。并且还有定期的培训活动。

  过了半年,小王的团队人员从原来的十几个人扩充到100人,而且还有国外的同事加入。这时小王从每月一次的服务反馈报告中看到随着团队人员数量增加,性能下降的警告。小王心想近期又有一个重要的版本需要发布,如果升级开发环境会停机影响开发进度可就麻烦了。小王找到了服务管理员询问服务升级的影响。当得知服务架构是模块化的简单操作就可以实现服务升级,并不影响用户使用时小王很高兴。

  又过了一年,在这一年中服务平台从未停机维护这也为小王的团队节省了不少时间。小王负责的产品顺利进入到了维护期,开发人员的数量逐渐减少,在小王收到的服务反馈报告中提到目前开发员数量不断下降,导致性能过剩,可以释放部分资源节省成本。小王回想起以前项目购买硬件自己搭建开发环境是多么艰难,可这一切随着云计算的到来一去不复返了。小王也自信的开始准备另外一个新产品的研发工作了。

  通过上面的小故事,看起来云计算是那么的简单易用和按需配置,但是在云计算的背后有很多不被用户了解的知识和技术。如果想了解云计算是如何做到上面故事中讲到的种种便利,需要在软件服务,中间件管理和硬件架构中去寻找答案。

  软件开发代码托管服务的业务驱动模式和需求

  由上面的小故事引出了软件研发生命周期中针对代码托管服务的业务驱动模式。

  针对业务需求把ITIL中的服务原型实例化,从而得出以下类型服务。

基于ITIL方法设计私有云的软件研发服务
▲图 1-1 服务分类

  服务的可视化如图 3-4 所示。这种可视化方法有助于服务管理职能和流程之间更好的沟通和协调,它有助于服务提供商更准确地定义服务。

  服务原型U1获取服务:释放,获得许可,提供

  服务实例:快速建立开发环境,为用户建立对应的账户和访问许可,并以邮件形式通知客户。

  服务原型U2服务管理:管理,运作,维护

  服务实例:使用统一用户服务网站收集用户需求,对服务进行管理和维护。

  服务原型U3服务治疗:修复,复原

  服务实例:使用云计算架构和应用层冗余自动的修复服务,使服务达到24*7服务标准。

  服务原型U4服务保管:存储,保护,监控

  服务实例:对云计算基础架构,中间件和软件中的业务信息进行监控,获取服务的运行数据。

  服务原型U5服务运作:运行,完成,记录

  服务实例:在统一用户服务网站中,对每一个用户请求的运行和完成结果进行记录。

  服务原型U6服务评估:分析,评估,审核

  服务实例:使用监控信息对服务的运行进行分析和评估,对平台的安全性定期审核。

  服务原型U7服务更改:修改,改变,传送

  服务实例:通过云计算平台的按需分配特性修改使用使用的硬件和网络资源。中间件WAS集群动态配置负载能力。

  服务原型U8创新服务:设计,开发,加工

  服务实例:推出定制化客户开发工具集服务。

  服务原型U9沟通服务:连接,集成

  服务实例:在开发环境中为客户集成持续集成工具Build Forge和UrbanCode 产品uDeploy用以实现DevOps

5
相关文章