【51CTO.com原创稿件】大家好,截至上期,我们有关IT项目生命周期的管理讨论,算是迈过了“雄关漫道真如铁”的阶段,那么后面是否就是一马平川了呢?非也,我们即将进入“是骡子是马,拉出来遛遛”的阶段。下面,让我们趁热打铁一起来讨论测试、部署与发布三个重要环节。
为了确保新的或变更的产品与服务,能够满足既定的要求,我们需要在开发完成后(如果采用的是瀑布式开发),或是开发过程中(如果采用的是敏捷开发),通过服务验证和测试,来确保产品服务的质量。
在开展测试之前,我们应当先进行服务验证。也就是说,为了确保后续的测试活动能够及时、有效地开展,项目组需要与需求方共协商,明确如下关键要点:
可见,服务验证环节,主要是通过建立产品服务,在功能上和效果上的相关标准,以圈定出各项测试活动的重点。
如果说服务验证主要关注和设定的是最低要求的话,那么我们在服务测试环节则会更加全面。总的说来,测试应当主要关注待测产品和服务的如下三个方面:
在测试方法上,我们既可以采取传统的手动测试,也可以运用时下流行的自动化测试方法。两者之间的不同在于:
根据实际需求方和后续服务验收的相关要求,我们可以按需开展功能性和非功能性测试。其中:
显然,测试环节离不开测试用例。为了保证测试的覆盖率, 我们可以根据不同的需求场景,设计出如下不同类型的测试用例:
测试结果应当能够发现被测服务与实际需求之间的差距。针对测试中出现的错误、问题和缺陷,我们可以采取如下通用流程进行处置:
上图中的每一个节点所对应的解释如下:
当然,在测试与整改完成之后,我们应当及时、且彻底地清理系统中残留的测试数据、各类警告信息、以及历史日志等,以便系统或产品能够顺利地流转到后续部署或发布环节。
只有完成了上文提到的验证与测试,项目组才能着手将正确的、已授权的、以及有质量保障的软/硬件版本,部署到真实的生产与运营环境。而为了保持“建转运”过程中的产品一致性,我们需要将待部署的组件保存在一到多个安全位置(即,权威媒体库definitive media library)。
从概念上说,产品与服务的部署过程,实际上就是指将新的或变更的软/硬件、文档、流程或任何其他组件,移置生产环境中,实现“服务转换”的过程。常言道“没有规矩,不成方圆。”为了顺利实现部署的目标,我们需要实施如下规范化的管理。
有了上述基础,我们便可以运用如下三种方法,来开展实际的部署工作。
在真实的部署过程中,我们通常采取自动与手动互补的方法。毕竟,自动分发新的或更新的服务,不但保持了整体的一致性,而且能够突破时间和空间的限制,减轻了实施人员的重复工作量。不过,对于一些发生在自动部署过程中的错误,人工勘查、判断、以及手动部署的优势就非常明显。因此“自动在先,手动攻坚”的互补模式,可以有效地消除部署覆盖面上的盲点。
如今,各种敏捷管道与工具,让部署更加快速、更加可靠的同时,也让其成为了一个持续的过程,而非一项任务或事件。因此,我们需要通过监控生产环境中的各个组件、恪守实施步骤,以确保每个环节都能够得到平稳的推进。其中,我们可以重点关注如下方面:
最后,值得一提的是,就云服务的部署而言,如果是IaaS,企业项目组的部署管理会更加灵活自主;而如果是PaaS和SaaS,则通常需要协同云供应商来共同计划与实施部署。
从IT项目的发展周期来看,我们只有在技术上完成了测试与部署,在流程上完成了回滚设计,以及在管理上完成了变更申请和批准,方可通过正式发布的形式,告知相关需求方与用户。具体待发布的内容既可以包括各种基础架构、应用组件、更新流程与工具,也可以包括文档与培训。
既然要发布给用户,我们就需要用清晰、规范的版本号,让使用者一目了然,而且能够获取正确的服务版本。在此,我们可以借助业界普遍使用的软件版本控制规则--“主版本号+子版本号+阶段版本号+日期_希腊字母”,来实施管理。其中:
与前面讨论的部署环节类似,如果我们需要对现有服务,特别是云端业务进行发布或调整,则可以选用业界常用的“灰度发布”模式。也就是说,在保留一部分用户继续沿用旧版本的同时,让另一部分用户开始使用新的版本或服务。在并行使用期间,我们能够及时地发现问题,限制影响,按需回滚与调整。待用户对于新版本的体验反馈良好时,再逐步扩大发布范围,并最终让所有用户使用新的版本。
当然,我们的发布目的除了是为了告知用户,也需要映射到日常配置与IT资产管理系统中。此处涉及到对于CMDB进行相关配置项(CI)的签出(check out)和签入(check in)等操作。即:
该过程不但可以有效地保证应用系统及其服务的可靠性,而且能够为后续的配置管理提供最新的可参考依据。这就是业界常说的“及时更新基线”。
最后值得一提的是,为了简化和统一管理,许多团队会将测试、部署和发布,合并为如下一整套完备的流程予以实施:
至此,我们的IT项目实施进程算是告一段落了。不过,这并非意味着项目的结束。我们将在下期和您继续讨论项目的验收、监控与改进等阶段,及其相关管理实践。
不可否认,本人在IT项目管理方面的各种思考难免挂一漏万,因此我真诚期待您的留言与斧正。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】
在疫情的影响下,人们的工作和生活方式在过去的一年发生了前所未有的变化。为了...
2020年11月26日深圳潮数科技于石家庄成功召开数据安全 新时代新基建信息应用之基...
人头马君度(Rmy Cointreau)的历史非常重要,这家酒业公司以将最好的酒陈化100年...
根据TrendForce的最新调查,自2020年初以来,COVID-19流感大流行加速了世界各地...
根据调查,随着用户对计算能力、存储和网络容量的需求增长,服务器需求比经济不...
本文中的五个步骤有助于您掌握转型的总体需求,并有助于您处理一些真正重要的事...
时间真快呀!转眼又至周一。让我们卯足干劲继续前行,先来看看上周有哪些不容错...
【51CTO.com快译】数字化转型使应用程序领导人必须找到有效的方法来更新改造遗留...
在VMworld 2020,VMware宣布与NVIDIA进行全面合作,共同推出新一代的混合云架构...
2020年以来,由疫情停工减产所导致的缺芯困局影响着全球汽车发展,而本以为2021...