大数据和AI如何在开发者工具链中发挥作用
今天的开发者拥有各种各样的工具和技术,他们用这些工具和技术来构建我们周围的数字世界。然而,DevOps和CICD工具链中的大量选择带来了巨大的复杂性,这导致了多重低效。现在,一种名为开发人员生产力工程(DPE)的新学科正在兴起,以解决这一问题,而高级分析和人工智能发挥着重要作用。
Gradle首席执行官汉斯·多克特(Hans Docker)表示,尽管DevOps和持续集成、持续部署(CICD)方法的出现在许多方面使开发人员的生活更加简单,但它们也释放了阻碍开发人员生产力的新力量。
对于初学者来说,测试对于确保软件无bug且不会带来安全风险至关重要。得益于Gradle、ApacheMaven和Bazel等构建工具,开发人员不再需要手动执行将新功能或bug修复程序推向生产所需的各种复杂步骤。Gradle构建工具通过其开源社区维护了3000多个集成,可以消除大部分繁重的工作。
但对于一些大型企业或Web应用程序,可能需要运行10000个测试才能将代码升级到生产环境中。这意味着,即使是最小的代码更改,也可能需要24小时来运行所有的检查。1000名开发人员大约需要几倍的时间,你很快就会陷入开发泥潭。
Docker说:“我们有很多公司,每天等待工具链的时间加起来相当长,长达几个小时。”。
大约20%的时间,测试将返回并提醒开发人员代码中的问题。这是一件好事,Docker说。毕竟,您不想部署错误代码。但采取下一步并不总是显而易见或简单的。
他说:“对于业内的大多数工程师来说,很难找出根本原因。”。“他们缺乏数据来理解,我是否应对这个问题负责?我的同事是否对此负责?”
Docker说,第三个问题是整个工具链没有可观测性。当公司想要了解他们的开发人员的日常情况,例如他们将多少代码投入生产时,他们通常被迫求助于手动方法,例如开发人员调查。
“因此,开发人员日复一日使用的所有机器都给他们带来了很多问题,这是完全无法观察到的,”Docker说。“这个行业让所有其他行业都如此引人注目,但它在自己的机器方面却没有可观察性——这几乎是讽刺。”
Gradle专注于开发者体验(图片由Gradle提供)
讽刺意味着糟糕的商业模式。但是,利用互联数据和机器学习来揭示软件开发行业的效率低下,有可能为公司节省数十亿美元,因此可能是一个非常有利可图的行业。
这是Gradle Enterprise(该公司的商业发行)以及整个DPE规程背后的基本前提。Gradle于10月在旧金山主办了第一届年度开发者生产力工程峰会,Docker报告称出席人数超出预期。许多处于软件开发前沿的公司,包括Netflix和LinkedIn,都参加了DPE峰会。
在Docker看来,DPE有潜力通过引入基于数据的严谨性、工程性和再现性元素来改变软件开发,正如其他行业已经做的那样。
他说:“如果你看看其他行业,比如化工厂,他们有化学过程工程的学科。化学有自动化工程。你可以在这些学科上攻读博士学位。”。
同样,汽车制造商可能比其软件供应链更能掌握其零部件供应链,即使两者对生存至关重要。Docker说:“如果我去你们的一家工厂,有人问我需要多长时间才能把A部分从B部分拿到C部分,那是绝对不能接受的。”。
Docker认为大数据和人工智能在DPE的未来扮演着重要角色。该公司成立了一个数据科学团队,推出了第一款基于人工智能的产品。预测测试选择使用机器学习来预测代码库的哪些部分对变化敏感,哪些测试可以安全地从DevOps生命周期中排除。
Docker说:“我们可以告诉你,哦,你改变了软件的那一部分。在10000个测试中,有9000个你不需要运行,因为我们从数据中知道,这些测试对代码的这些区域完全不敏感。”。“只有1000个测试对这一领域敏感,所以我们只运行10000个测试中的1000个。”
Docker表示,高级分析和人工智能对于理解可观测性数据至关重要,Gradle将拥有