概述
应用生命周期管理(ALM)涉及从应用构思到结束使用为止管理应用的整个生命周期的人员、工具和流程。
ALM 由多个领域构成,如项目管理、需求管理、软件开发、测试与质检、部署以及维护等,在瀑布式开发方法等传统开发流程中,这些领域通常是相互独立的。
应用生命周期管理支持敏捷和 DevOps 开发方法,将这些领域整合到一起,让组织内的团队以更高的效率协同工作。
采用 ALM 后,还可以通过频繁发布来实现持续交付软件和更新,有时甚至可达一天几次,不再只是数月或一年发布一次新的版本。
应用生命周期管理可以提供软件开发框架,同时也能帮助您进行软件的长期管理。采用 ALM 实践时,需要依据预定的计划和要求将概念转变为应用。
利用 ALM 进行软件开发时,您需要考虑应用的整个生命周期。维护和未来更新也应纳入考虑范围,包括应用应在何时被淘汰和取代。
通过化零为整,ALM 可加快部署速度,改善工作流可见性,并且提升产品质量和开发人员满意度。
ALM 阶段
ALM 帮助您轻松洞察整个开发流程。由于各个流程整合到了一起,因此您可以方便地查看目前进入了哪个阶段、还需完成哪些步骤、耗费多久时间,以及进行了哪些测试等等。
应用监管
监管会明确针对应用所作的决策。在启动创建新应用的流程时,您首先要对应用有个初步想法,还要思考它与您的业务需求和目标的关系。
这些内容就是对新应用的要求,需要在监管阶段中定义并达成一致。
应用监管还包括资源管理、数据与安全以及用户访问权限。
标准化这些流程,就可以实现自动化监管。自动化监管流程能够加快应用交付。
应用开发
概括并商定了应用或更新的要求后,我们即可开始开发工作。采用敏捷开发方法的团队可能会频繁进行开发与部署,频率可达每天一次或多次。
设计、构建、测试和部署应用都可以视为开发阶段的一部分。
软件测试
新应用开发完毕后,需要进行测试并修复其中的错误,然后才能投放到生产环境中。
对于敏捷开发团队和 DevOps 团队,测试应与开发同时进行。反馈应当持续传回开发团队。
开发过程中应进行持续集成,从而避免这些频繁的更新彼此发生冲突。
测试阶段的目标是确保监管阶段设定的要求得以满足,并且应用的运行符合预期,然后才能发布给用户。
运维和维护
完成测试并修复错误后,应用就可以部署给用户。
运维和维护阶段是 ALM 在应用的整个生命周期中的重点。应用部署完毕并不宣告运维结束。还需要考虑定期进行维护和更新。
应用或服务的退役也应作为维护的一部分来考虑。团队应当确定在什么时间节点不再支持应用或不再提供更新的版本。
ALM 与SDLC 的区别
ALM 有时会与软件开发生命周期(SDLC)混淆,因为两者均涉及软件开发流程。二者的主要区别在于,SDLC 侧重于开发阶段,而 ALM 关注于应用的整个生命周期——从概念到维护,一直到最终停运,在应用开发完毕后依然延续。
SDLC 可被视为应用生命周期管理的一个部分,主要在开发、测试和部署阶段。ALM 可能包含一个特定应用的多个开发生命周期。
红帽资源
应用生命周期管理工具
ALM 工具可以发挥项目管理工具的作用,来协助您整合人力和流程。这样的工具通常包括版本控制、团队实时通信功能、需求管理功能、估算与项目规划、源代码管理和测试管理。
您也许能在 1 个工具中找到需要的所有功能,也可能需要与其他工具集成,例如开发人员专用的工具。选用的 ALM 工具也应支持您的开发流程,不论是敏捷式、瀑布式、DevOps,还是其他的开发方法。
ALM 工具示例:
- Atlassian Jira
- IBM ALM 解决方案
- CA Agile Central
- Microsoft Azure DevOps Server
- Tuleap
- Basecamp
支持 ALM 的企业级技术
ALM 支持与 Linux® 容器相辅相成的 DevOps 方法。容器给予团队云原生开发所需的底层技术,也支持通过一个统一环境来进行开发、交付、集成和自动化。
而 Kubernetes 是实现 Linux 容器操作自动化的现代方法。Kubernetes 可帮助您轻松高效地管理在公共云、私有云或混合云中运行 Linux 容器的集群。
红帽® OpenShift® 是企业就绪型 Kubernetes 平台,可为开发和运维团队提供一个通用平台和一组工具,便于您在任意基础架构上构建、部署和管理容器化应用,从而实现 ALM 目标。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。