为什么您的开发/测试环境和生产环境同等重要





5.00/5 (1投票)
阿里云的优势并不仅仅局限于一两个功能。它贯穿于阿里云的各种产品,为您的开发人员提供支持,从阿里云弹性计算服务(ECS)本身,到数据库、存储、大数据和多媒体服务。
阿里云提供了一套全面的全球云计算服务,助力您的业务发展。 立即创建账户,即可获得 300 美元新用户免费积分。
您的软件交付链中的每一个环节都很重要。您对此心知肚明。
然而,就像几乎所有涉及人类、机器或两者结合的事物一样,我们有时很容易认为系统中或流程中最可见的元素也是最重要的。同样,我们也容易认为流程中不太可见的元素根本不重要。
在典型的 DevOps 持续交付链中,生产环境通常是高度可见的。毕竟,那是“实战”之地,是您的应用程序或服务与客户接触的点,任何功能性或性能问题很可能在此显现,并导致需要立即修复的问题。
但事实是,生产环境只是交付周期的最后阶段。没有开发和测试,就不会有太多东西可以交付。
没有开发,就没有生产
考虑以下场景
您拥有一个出色的交付链(至少在生产环节),以及一个现有的应用程序。它可能是一个您打算部署到云环境中的遗留应用程序,也可能是您在运营之外开发的应用程序(例如通过外包)。
您的生产团队可以交付应用程序,并在基础设施层面进行维护。但是,您没有开发团队,没有测试团队,因此也就没有代码层面的持续支持的保障。
没有任何应用程序是独立存在的。基础设施由离散的元素组成(操作系统、支持应用程序和服务、API、运行时库以及云本身),所有这些元素都会随着时间的推移而发生变化,几乎可以肯定会如此。这意味着随着时间的推移,应用程序的代码将越来越无法与它必须运行的基础设施兼容。
维护遗留条件的成本
当然,理论上,您的生产团队可以通过不断调整基础设施来维护应用程序,以保持应用程序必须运行的遗留条件。然而,这最终会增加越来越多的功能开销,这可能会表现为应用程序响应变慢、内存、存储和其他资源使用量增加、应用程序故障更频繁且更严重,以及修复时间更长。
在某个时候,如果代码层面没有重大修改,应用程序可能会变得无法工作,或者显得过时,以至于失去很大一部分市场份额。
这是没有开发和没有测试的功能成本。但对于任何在竞争激烈的在线软件和服务领域运行的应用程序,或者几乎任何网站来说,这个成本仅仅是您因忽略持续开发和测试而付出的代价的一小部分。
过时(和显得过时)的成本
在现实世界中,应用程序和网站需要做的远不止是保持功能正常。您的应用程序需要看起来新颖,需要能够执行至少一系列最新的功能(即使它们不增强核心功能),并且需要不断提供新服务和现有服务的可见改进。否则,即使在功能层面没有重大问题,其市场份额也会不断被侵蚀。
开发价值
但如果您参与软件生产和交付的管理,您对此已经了然于心。您知道必须保持代码正常运行,也知道必须保持产品、网站和服务的视觉新颖和及时更新。您知道您的开发和测试团队对您的运营绝对不可或缺。
然而,很容易想当然地认为开发和测试环境本身是理所当然的,认为您的开发人员和测试人员能够自我维护,并且他们默认可用的资源就足够了。但是,环境和资源确实能带来改变,有时是巨大的改变。
当然,关于开发环境的组织方面已经有很多讨论,主要开发管理理论和流派所解决的问题也很重要。但现在,我们先来考虑一下构成开发和测试环境的工具和其他功能资源的问题。
工具的差异
开发和测试工具并不光鲜。它们通常不花哨,不直接使用它们的人们可能觉得没什么令人兴奋的。但如果您是软件开发人员或质量保证技术人员,您几乎肯定会非常清楚您所使用的工具的优点和缺点。这对于软件和硬件、基础设施和特定应用程序都适用。
- 库和其他资源是否已完全且灵活地集成到开发环境中?所有这些资源是否都是最新的?
- 您可用的开发工具是否适合您的工作风格,还是您发现它们经常碍事并减慢您的速度?
- 开发环境是否要求您在多个窗口之间切换,或使用菜单选择和对话框来执行常见、重复性任务,还是您可以轻松地自动化这些过程,并完全避免图形用户界面?
- 您的开发环境是否已成为一个补丁和变通方法的集合,随着时间的推移而增量添加,以一种试图让日益过时的工具集“再坚持一小会儿”的方式使其保持功能正常?
资源利用的极限
开发人员非常有创造力,而且通常很擅长让现有工具发挥作用。如果他们知道或怀疑他们请求最新的开发工具不会在管理层得到积极回应,他们可能会找到方法,让旧工具的使用寿命远远超过它们应该被替换的时间。
人们倾向于将这种创造力视为一种高度积极的特质,在很多方面确实如此。但是,通过变通方法来延长过时或不充分的工具的使用寿命,最终可能导致质量下降和开发时间增加。
最终,如果现有的开发工具变得过于陈旧,补丁和变通方法将不再足够,您的开发人员可能无法利用最新功能,或者更糟糕的是,在基础设施、操作系统和运行时库发生变化的情况下,无法使您的软件保持运行。
快乐的开发者意味着更高的生产力
另一方面,如果您为开发人员提供他们所需的新工具和更新工具,并确保他们的工作环境支持他们的工作风格,从而让他们保持快乐,那么您更有可能看到持续的高生产力水平和快速的周转。
测试不是事后想法
对您的测试团队和测试环境也是如此。如果开发人员常常被理所当然地对待,那么将测试视为事后想法,甚至完全忽略它就更容易了。为了提供充分的结果,您的软件测试环境和相关工具应准确反映实际的部署环境。
这意味着它们必须保持更新。如果您正在云中的虚拟化环境中部署软件,则您的测试系统应该是自动化的、虚拟化的,并且基于云的。不幸的是,如果您不重视您的测试过程,您可能会发现自己因为默认设置而依赖过时的测试系统(例如,一个手动且基于硬件的系统)。
平台很重要
是的,基于平台的工具也有区别。例如,阿里云新推出的弹性 GPU 服务提供极快的 GPU 计算能力,具有强大的并发和浮点能力,非常适合计算密集型应用,包括深度学习、科学计算、工程计算、金融计算以及媒体渲染和编码。
这些能力为您的开发团队(从设计到实施)带来的优势显而易见;它们可能决定了您是否能够实现应用程序所需的所有功能,还是只能依赖低性能的变通方法。
免费试用阿里云
但阿里云的优势并不仅仅局限于一两个功能。它贯穿于阿里云的各种产品,为您的开发人员提供支持,从阿里云弹性计算服务(ECS)本身,到数据库、存储、大数据和多媒体服务。
但您不必只听我们说:试试阿里云的免费试用优惠(https://www.alibabacloud.com/campaign/free-trial#free-products,附带 300.00 美元积分),您将有机会亲眼看看阿里云的许多功能和服务能为您带来什么。