技术开发 频道

架起开发和运行之间的桥梁

【IT168 技术文章】

    软件应用程序的开发和部署变得日益复杂,步伐越来越快,并且对于业务成功也更加关键。公司现在需要在维护24×7运行的同时构建、测试和部署新应用程序的频率越来越快。通过将软件配置管理(SCM)与用于管理分布式部署的自动化解决方案集成,公司可以更有效地生产出新版本,并且降低了成本和风险,同时加快了实现价值的时间。

    本文探讨了很多机构今天面临的部署挑战,并讨论了如何在软件构建和部署之间架起一座桥梁。它还解释了使用 IBM Rational ClearCase?变更管理软件和 IBM Tivoli Configuration Manager 分布式软件能如何帮助自动化、流水化和加速软件的构建/部署过程。

    目前面临的部署挑战

    目前的IT部门要管理更多的系统,支持更多的位置,构建、部署和维护更多的任务关键应用程序。有些机构现在发现它们每周必须在跨多平台的全局网上重新构建和重新部署数十甚至数百的新版本软件。然而,消除与软件更新相关的业务停工的需要极为重要。这些不断增长的需要使应用程序构建/部署过程成为在竞争中获得成功的关键途径。

    在很多机构中,用于将应用程序从构建阶段迁移到部署阶段的过程部分或完全是手动的,因此不但耗时还容易出错。这些低效率的过程由于业务停工和软件质量下降的原因不可避免地导致了收益的损失。手动的构建/部署过程还使得遵守规章和其他要求变得极具挑战性,主要是因为很难识别哪些应用版本运行在哪些服务器上,以及哪些软件配置被用于构建给定的已部署应用程序。

    当构建/部署过程没有自动化时,必须将用于各种目标的可执行代码从构建环境中手动地复制到部署区域中,然后再手动分发。必须通过登录到每台服务器,对服务器供应和配置进行手动检查。通常使用电子数据表来跟踪哪些版本用于哪些服务器。经过防火墙的数据传输可能需要更多的手动干涉,从而损害了安全性,因为服务器端口是长时间内开放的,以便将可执行工件移动到服务器。

    在手动构建/部署过程中,可能出现以下几种问题:

    很难复制和修复缺陷,从而延迟了应用程序的交付并降低了质量。
    很难回滚到一个应用程序的前一个版本,从而浪费了时间和开发资源。
    重新开发失败,从而浪费了时间和资源,并且负面影响了客户的满意度。
    部署过程未归档,从而降低了个体的生产力,并增加了多余任务。

    即使在管理软件部署时有自动化的解决方案,其中的很多问题仍然存在,尤其是与缺陷修复和回滚相关的问题。这些问题仍然存在是因为已部署应用程序的管理和用于构建它们的软件配置的管理之间没有自动链接。结果就是阻碍、延迟或者损害了应用程序的部署,并且需要更多的时间来诊断和解决。

    在构建和部署之间架起一座桥梁

    连续地交付软件更新是一个多步骤、迭代的过程。该过程中的第一步是构建和测试应用程序。接着,该应用程序必须被打包,以便它能够轻易地分发给运行服务器,这通常需要经过公司防火墙。然后服务器需要更新,应用程序需要投入生产。

    如果检测到错误,运行在运行服务器上的应用就必须回滚到前一个可用版本。缺陷信息需要返回给开发小组,开发小组必须能够查看正确的应用和文件版本。在他们修复和重新构建它之后,该应用就被重新打包,并传输到运行服务器上;并且服务器被更新,以运行新版本的应用。完成这一切的同时还需要保证服务器24×7的运行。图 1 显示了该过程的步骤。

图 1 软件更新周期


    优化软件构建/部署生命周期的关键是一个可靠、自动化的过程,该过程能够根据在所涉及的任意平台上失败的应用的精确版本复制、诊断和修复问题。这使得对于成功极其关键的其他自动化功能成为可能,比如:

    在出现问题时平稳地回滚到应用前一版本而无需手动干涉的能力。
    规定了哪些可执行工件被部署以及部署在哪里的审计痕迹。
    通过只构建和部署对于"修补"缺陷或实现增强所必需的东西而不是重新构建和部署整个应用,最大程度地利用了时间和资源。
    软件配置管理是软件更新周期的基础,因为它有助于正确标识失败软件版本和更新版本之间的所有区别。

    然而,在软件配置和生产应用之间提供可跟踪性的价值微乎其微,除非这些资产被很好地管理。首先,在开发阶段必须有软件配置管理(SCM)解决方案。SCM 是软件更新周期的基础,因为软件配置管理是软件更新周期的基础,因为它有助于正确标识失败软件版本和更新版本之间的所有区别。

    用于更新具有新版本应用的多平台、分布式服务器环境的有效、安全和完全受控的部署管理解决方案同样重要。这种程度的自动化对于减少上述手动或特殊过程中固有的错误和生产力损失是必需的。

    在必需有效的变更管理和分发工具的同时,还需要一个能够在构建阶段和部署阶段架起一座桥梁的解决方案,以加速构建/部署过程,从而简化和流水化了操作,并减少了时间、成本和风险。

0
相关文章