【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

10 大准则令完美的开发 / 测试实验室成为可能

  • 2014-03-04
  • 本文字数:2604 字

    阅读完需:约 9 分钟

你是否拥有一些实现超敏捷软件开发所必备的特质?创业公司 Ravello Systems 探讨了通过将云规范化,来构建梦寐以求的开发 / 测试实验室的关键准则。

在这样一个竞争优势与业务敏捷度近乎画上等号的世界中,现实情况是,企业往往需要非常多的时间投入,来开发和测试驱动业务的种种软件。

在软件开发中,超敏捷要求基础设施和自动化不仅与开发进程保持一致,而且还要对加速循环和改进整体质量产生实质性帮助。在开发 / 测试工作负荷具有猝发性和短暂性本质的大前提下,要想打造一套理想的完全部署在本地的实验室,可以说在经济上是不可行的。然而现在借助将云规范化的新技术,对大多数企业来说,与超敏捷开发和测试之间的距离正在被不断缩短。

这里给出的 10 项准则,它们将有助于推动开发 / 测试实验室涅槃重生。尽管时至今日,依旧几乎不可能实现在打造这个“梦寐以求的实验室”的同时又不至于投入许多花费,然而借助各种最新的技术,很容易构建这个理想的实验室:它不止能够提升软件质量、加快投放市场的步伐,还能够减少整体成本。

1. 敏捷开发 / 测试具有猝发模式的特点,并且实际上要求无限的基础设施资源池

典型的软件开发和测试现在都得到了自动化处理,但是由于资源方面的制约因素,并不是所有的测试都能够并行进行。对任何企业来说,让开发 /QA 团队等待测试结果,需要付出极其高昂的代价——这不仅仅是一种低效行为,还会使得企业在业务竞争中输给更加敏捷的对手。在理想场景下,开发者应该无须等待,就能够访问资源池,而且该资源池在他的角度看来是无穷无尽的——不论是公有、私有还是混合云,因此任意数量的测试都可以立即且并行地进行。

2. 开发者应该享有基础设施的自服务渠道

要想完全利用潜在的近乎无穷尽的资源,工程师需要能够:通过预先定义的许可,以按需、自服务的方式访问资源池,而不是等待 IT 为每个请求逐一配置资源并授权访问。

3. 使用产品复制品进行测试的能力

从 Ravello 针对开发 / 测试工程师、IT 管理员、自动化工程师和 DevOps 进行的调查来看,多达75% 的架构师和IT 管理员都意识到了:创建开发/ 测试环境过于复杂且耗时,而且这些环境并不能代表产品。尽管每个人都能够认识到对速度的要求,但同时我们也不要忘记,软件质量是另一个同等重要的方面。特别是在非常灵动地环境中,要想确保最终结果始终具有高质量,测试产品的复制品固然颇具挑战,但却是至关重要的事情。例如,如果我们拥有一个本地VMware 环境,并且想要在亚马逊AWS 云服务上测试这些应用,那么两种类型的环境之间应该是完全无缝的。

4. 基础设施应该在应用层面进行自动化

基于单独的快照和副本,手动复制复杂的多虚拟机应用,是一件繁琐且容易出错的工作,而且当涉及到复杂的网络配置时更是如此。在理想情境中,应该能够通过简单的一次点击,就完整复制多虚拟机应用及其网络。

5. 持续集成——从应用到基础设施

通过持续集成,开发者在提交代码时,应该能够拥有应用的多个实例(产品复制品),并且在同一时间里运行一系列完整的集成测试。开发者需要即刻获得反馈,以了解测试的功能在类生产环境(production like environment)中工作良好,或是出现了问题并需要修订。作为支持持续集成的绝佳工具,Jenkins 得到了广泛运用。然而要想成功使用,需要将它与底层基础设施设置紧密地整合,以用于无缝的端到端自动化——从代码到硬件。

6. 身处各地的开发和测试团队能够便捷地协作

设想一下,一位 QA 找出了某个 Bug,他不需要打断或推迟其他正在进行的测试工作,就能够邀请开发者检查或调试相同的应用实例——不论二者身在何方。这种快速访问和分享将加速开发 / 测试循环,并提高团队协作。

7. 重现 Bug 的能力

在复杂的多虚拟机应用中,跨应用元素的依赖和交互,使得重现 Bug 是一件非常困难的事情。在理想的配置中,整个复杂应用可用被打包成一套环境,从而能够简单地重现 Bug,例如识别出某个 Bug 时,就可以执行测试系统的一份复制品。

8. 快速制作原型

使用标准的预定义积木式部件(例如,标准的数据库集群)来快速制作应用原型,将显著加快开发 / 测试循环的速度。然而,理想中的积木式部件,应该不仅仅是使用标准应用组件的全新或现成的实例,而是对实际应用中存在的相同元素进行复制,从而更加贴近生产环境。

9. 监控资源使用的能力

考虑到开发 / 测试实验室在本质上来说非常不稳定——虚拟机被频繁的创建和销毁——因此,要想确保资源有效利用和未使用生产能力的恢复,监控开发 / 测试资源使用情况的能力至关重要

10. 成本效益

最后,但显然很重要的一点是,提供所有这些能力,都应该以业务能够承受的成本为前提条件。在之前提到的这份调查中,80% 的开发团队遇到了开发 / 测试基础设施短缺的问题,而 92% 的开发团队则拥有购买更多硬件设备以用于开发 / 测试项目的需求——然而增大采购并不总是一个划算的方法。特别是对于突发性的工作负荷——例如开发 / 测试——几乎不可能针对峰值容量预先设计好数据中心,因为那意味着在大部分时间里,让昂贵的基础设施资源闲置。在完美的实验室中,应该能够很容易地管理开发 / 测试实例,我们只要在用到的时候“打开”实例即可,而不是让所有实例保持 7*24 运行——只需要为了消耗的资源按使用付费。

11. 额外要点:极限测试

实验室还应该具有这样的能力:通过简单 API 调用,来检查网络失败情景或是测试高可用性环境。这在概念上与Chaos Monkey 有点类似,但是却有着更广泛的功能,并使得执行检查失败情景的复杂测试时,不再需要手动拉线或是停止Tomcat。

软件正在“蚕食”这个世界,但是企业中开发和测试基础设施的状态,却阻碍了企业开发者们真正拥抱敏捷的进程。DevOps 的兴起正是面对该差距的一种尝试。上面介绍的这些准则,在弥合开发者和基础设施管理员之间的鸿沟,以及为企业创建梦想中的实验室方面,还有很长的路要走。

关于作者

Rami Tamir在管理多类型软件开发方面,拥有长达十五年的经验, 2011 年,Tamir 与他人一起创建了 Ravello Systems 并担任 CEO 的职位。在创办 Ravello Systems 前,Red Hat 收购 Qumranet(开发了 KVM 管理程序的公司,现在该技术已成为 Linux 中的标准虚拟化技术)时,Tamir 作为 Qumranet 的联合创始人和总裁出任了 Red Hat 的工程副总裁。再早些时候,Tamir 与他人创办了 Pentacom 并执掌软件部分,并随着被 Cisco 收购就任后者提供的高级秘钥管理职位。

查看英文原文: The Perfect Dev/Test Lab: 10 Principles that make it Possible

2014-03-04 10:102303
用户头像

发布了 256 篇内容, 共 68.6 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

云ERP系统究竟是什么?

低代码小观

流程管理 ERP 业务流程管理 业务流程自动化

Veritas:2022年数据安全及合规领域行业预测

WorkPlus

一周信创舆情观察(11.29~12.5)

统小信uos

你以为Vue3封装一个弹框组件很简单?

CRMEB

FPGA大发展!现在或许是从事FPGA行业的最好时代

科技新消息

斟茶兵——远程进程管理

白粥

进程管理 运维开发 系统维护 离职交接 日常工作

EMQ 映云科技走进高校,与浙大城市学院联合促进物联网人才培养

EMQ映云科技

物联网 mqtt

探索圈外的世界 | GTLC 全球技术领导力峰会·厦门站圆满收官

TGO鲲鹏会

区块链 方法论 技术管理 GTLC

想给用户天涯若比邻的体验?业务全球化面临的三重挑战

声网

网络

缓存数据的淘汰之路(下)

卢卡多多

缓存 28天写作 签约计划第二季 12月日更

普华基础软件加入龙蜥并成为理事单位,共创开源操作系统新生态

OpenAnolis小助手

龙蜥社区

从实习到秋招成为一名安全工程师,我经历了什么

网络安全学海

面试 网络安全 信息安全 渗透测试 WEB安全

如何验证你的产品创意?

石云升

产品思维 28天写作 12月日更

Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)

不脱发的程序猿

Python qt GUI设计 Qt Creator 菜单栏、工具栏、状态栏

缓存数据的淘汰之路(上)

卢卡多多

28天写作 签约计划第二季 12月日更

博睿数据携手火山引擎,共建新云新未来

博睿数据

使用 HTML、CSS 和 JavaScript 制作的随机密码生成器

海拥(haiyong.site)

JavaScript 密码 28天写作 签约计划第二季 12月日更

Gartner预测全球人工智能软件市场将在2022年达到620亿美元规模

WorkPlus

2021年11月云主机性能评测报告

博睿数据

云主机 博睿数据 数据链DNA

基于云的技术架构设计实践-第5篇

hackstoic

数据分析 云原生 数据可视化 业务分析 签约计划第二季

Cypress 基础 - 元素的定位

Jerry Wang

CSS html Cypress 28天写作 12月日更

构建信创基础软硬件共同体,DataPipeline与中科曙光完成产品兼容互认证

DataPipeline数见科技

大数据 中间件 服务器 数据融合

2600亿!全球最大中文单体模型鹏城-百度·文心发布

百度大脑

人工智能

PackML从会到不会——状态、管理标签(5)

陈的错题集

标准化 PackML

缓存数据的淘汰之路(中)

卢卡多多

缓存 28天写作 签约计划第二季 12月日更

百万级 QPS 业务新宠,金山办公携手 Apache APISIX 打造网关实践新体验

API7.ai 技术团队

云原生 API网关 wps API Gateway Apache APISIX

架构实战营模块一学习总结

Evan

架构实战营

Python代码阅读(第69篇):首字母大小写变换

Felix

Python Code 字符串 阅读代码 Python初学者

架构实战营模块一作业

Evan

架构实战营

ONES X 蓝城兄弟|有机的研发管理改进是最健康的颠覆

万事ONES

项目管理 ONES 项目管理工具

自定义View:如何实现点击图标旋转的动画效果

Changing Lin

12月日更

10大准则令完美的开发/测试实验室成为可能_DevOps & 平台工程_Rami Tamir_InfoQ精选文章