控制技术声纳是Thoughtworks每季度正式发布一次的控制技术态势报告,由 Thoughtworks 的 21 名高级控制技术专家组成的控制咨询服务委员会(TAB)编写。TAB 透过定期讨论全球控制技术战略以及对金融行业有重大影响的控制技术态势,创建了控制技术声纳。他们致力于支持优良应用软件并推动 IT 革新,Thoughtworks控制技术声纳就是为了完成这一历史使命。
经过半年的跟踪与结晶,TAB 根据他们在多个金融行业中的实践事例,为控制技术从业者们工业生产了第28期控制技术声纳。下期文本对数十个控制技术词条进行分析,阐释它们目前的适用性,并提供更多了相应的控制技术THF1提议。
一、下期主轴1.新颖人工睿智的急速崛起别多想,这篇主轴文章并非由 ChatGPT 编写。人工睿智早已在专业领域默默地筹划了几十年,像 GitHub Copilot 这种的辅助工具在几年前就早已存有(并逐渐被采用)了。然而,在过去两个月里,类似 ChatGPT 这种的辅助工具早已抹杀了现代人对人工智能的认识,并使得这类辅助工具开始被广泛采用。下期控制技术声纳中有两个词条涉及到了 AI 在项目上的实际应用,不仅仅是关于代码提议的专业领域:基于AI辅助的试验由亚姆合作开发、采用AI帮助构筑Kaysersberg等。近似于电子表格能让注册会计师停止用打印机全自动重新计算复杂表单,新一代的AI会承担起代替须要知识(而不是睿智)的无趣任务,来解放控制技术专业人士包括合作开发者。
不过,他们告诫不要过度或失当采用人工睿智。时至今日,AI模型能聚合一个良好的草稿。但聚合的文本始终须要由人类监测、校正、审核和负责任地采用。如果忽略那些预警系统,机构和使用者可能将面临脸面和安全风险。甚至有些产品示例 也告诫使用者,“AI聚合的文本可能将存有错误。在采用前请确保它的精确性和必要性”。
2.功能强大的无线网络结构设计多年来,无线网络结构设计一直是组织倚重的因素。最近,他们着重于展示了他们的项目组在辅助工具和控制技术各方面实战经验的增长,那些实战经验使合作开发具备了更好的无线网络结构设计。他们两个地区的项目组透过宣传活动增强了对那些控制技术的知觉。他们在持续应用软件系统电路板合作开发、结构设计中的无线网络注释、智能引导无线网络试验、ax-lineter 和 IBM Equal Access Accessibility Checker 各方面,提出了与无线网络结构设计相关的词条。他们很愿意看到现代人越来越倚重这个主轴,为更多的人提供更多改进后的功能访问方式,那些控制技术众所周知是优秀的。
3.Lambda 圈套无服务器函数 AWS Lambdas 越来越频繁地出现在架构师和合作开发者的辅助工具箱中,并被用于实现各种基于于云基础架构的任务。然而,就像许多有用的东西一样,有时候解决方案开始时简洁新颖,但随着不断成功、持续演进,最终违反范式中规定的约束、变得沉重不堪,终遭弃用。在看到许多无服务器风格解决方案成功应用的同时,他们也从项目中听到了许多警示性的故事,比如 Lambda 弹球反模式。虽然出现了很多解决那些问题的辅助工具,但是那些辅助工具极易被误用。例如,帮助 Lambda 之间共享代码或协调复杂互动的辅助工具,它可能将可以解决一个简单常见的问题,但随着新的构筑模块的加入就会面临出现低劣架构模式的风险。如果您须要一个辅助工具来管理跨无服务器函数集合的代码共享和独立部署,那么也许是时候重新思考该方法的适用性了。像所有的控制技术解决方案一样,无服务器有其适宜的应用场景,但它的许多功能在采用时都须要权衡利弊,这种情况随着解决方案的演进会更加突出。
4.数据分析和人工睿智中的工程严谨性他们始终认为 “质量内建” 是合作开发可靠的数据分析与机器学习模型的重要因素。试验驱动的数据转化,数据健全试验和数据模型试验使数据电路板可以更有力的支持分析系统。机器学习系统须要模型校正和质量控制来确保结果符合伦理,平等无偏见。透过整合那些实践,企业能更好地利用人工睿智和机器学习,基于各自的使用者群体打造负责任、数据驱动的解决方案。相关的辅助工具生态也在不断演进,日趋成熟。例如,Soda Core 是一个在接收数据伊始就开始校正并自动监测异常的数据质量辅助工具,Deepchecks 结合了持续应用软件系统和模型检查,将好的工程实践融入分析系统。Giskard 对 AI 模型进行质量控制,可以检查模型的偏
5.声明,还是编程?每次控制技术声纳讨论时都会发生的,好像永无止境的话题在这次会议变得格外激烈——对于给定的任务,应该采用 JSON、YAML 或者像 HCL 这种的领域特定语言来编写声明性规范,还是应该在通用编程中编写代码语言?例如,我们讨论了 Terraform Cloud Operator 与 Crossplane 的区别,在其他情况下对部署电路板进行编程时,是否采用 AWS CDK 或 Dagger。声明性规范虽然通常更易于阅读和编写,但其有限的抽象会导致重复代码的产生。适当的编程语言可以采用抽象来避免重复,但那些抽象会让代码变得更难理解,特别是当抽象经过多年的变化而分层时。根据他们的实战经验,上述问题没有标准答案。这两种方
二、部分象限亮点抢先看 将 CI/CD 基础设施作为一种服务采纳将 CI/CD 基础设施作为一种服务早已是很多元化以及成熟的方案,以至于须要自己管理整个 CI 基础设施的情况变得非常少见。采用 GitHub Actions、Azure DevOps 或 Gitlab CI/CD 等管理服务,具有托管云服务的所有常见优势(和权衡)。您不须要花时间、精力和硬件成本来维护和运营这个通常很复杂的基础设施。对于自己托管 CI 设施的公司,虽然项目组可以受益于弹性和自助服务,然而往往在配置更多合适的代理或获得新的插件或功能时遇到瓶颈。即使是须要在自己的硬件上运行构筑和校正的示例,现在也大多可以用自我托管的运行器来满足需求(他们早已写过一些关于 GitHub Actions 的文章,actions-runner-controller 和 Philips 的自我托管 GitHub 运行器)。然而,请注意,采用托管服务并不意味着您可以轻易获得安全保障;虽然成熟的服务提供更多了所须要的所有安全功能,但仍然须要实施对 CI/CD 基础架构的零信任安全。
结构设计中的无线网络注释试验在应用软件交付中越早考虑无线网络,就能越简单、更低成本的保证交付物对尽可能将多的人可用。结构设计中的无线网络注释辅助工具能促进沟通,帮助项目组从工作的开始就考虑到文档结构、语义化的 HTML 和替代文本等重要的元素。这使得项目组确保使用者界面符合国际无线网络标准,并解决那些实际上很容易避免的常见无线网络问题。Figma 提供更多了一系列的无线网络性注释插件:The A11y Annotation Kit, Twitter 的 Accessibility Annotation Library 和 Axe 的辅助工具集 Axe for Designers。
Soda Core试验Soda Core是一个开源数据质量与可观测性辅助工具。他们的项目组早已采用它来校正数据在到达系统之前和之后的转换,并设置自动化监测检查以检测异常情况。他们对 Soda Core 中用于编写数据检查的 DSL —— SodaCL非常满意. SodaCL 能帮助除了数据工程师以外的其他项目组成员来编写质量检查。总的来说,他们在解决大规模数据问题时采用 Soda Core 的体验非常好。
ChatGPT评估ChatGPT是一个有趣的辅助工具,它具有在应用软件合作开发的各个各方面发挥作用的潜力。作为一个早已”阅读”了数十亿个网页的大型语言模型(LLM),ChatGPT 可以提供额外的视角,协助完成不同的任务,包括聚合创意和需求、创建代码和试验等。它是一种多功能的辅助工具,能跨越应用软件生命周期的多个阶段,提高合作开发效率并减少错误。GPT-4,作为驱动 ChatGPT 的 LLM,现在也具备与外部辅助工具应用软件系统的能力,如知识管理库、沙盒式编码环境以及网络搜索。目前,他们认为 ChatGPT 更适合作为流程的输入,如帮助完成使用者故事的草稿或编码任务的模板,而不是一个能工业生产”完美周全”结果的辅助工具。
采用那些人工睿智辅助工具可能将会存有知识产权和数据隐私各方面的担忧,包括一些尚未解决的法律问题,因此他们提议企业在采用前征求其法律项目组的意见。他们的一些客户早已开始在应用软件生命周期的各个阶段尝试采用 ChatGPT,他们鼓励其他人探索这个辅助工具并评估其潜在的作用。他们预计,像 GitHub Copilot 一样,ChatGPT 很快就会有一个”商业版”的产品,这可能将会缓解知识产权各方面的顾虑。
Immuta评估Immuta是一个数据安全平台,它允许你安全地访问数据,自动发现敏感数据并审计数据在组织中的采用情况。在过去,当他们考虑安全风险时,他们早已谈到了自动化、工程实践和将安全策略代码化的重要性。数据安全也不例外。他们的项目组一直在探索 Immuta,它能将数据访问策略作为代码来管理,以实现精细化的访问控制,这超出了基于角色的访问控制(RBAC)所能提供更多的范围。基于版本控制的策略可以被试验,然后配置为 CI/CD 管道的一部分。在一个去中心化的数据生态系统中,比如由数据网格促成的生态系统,拥有特定领域的角色会导致身份认证系统中的角色或使用者组扩散。Immuta 的基于属性的访问控制(ABAC)的特性将访问授权简化为一个数学方程式,即把使用者的 “属性 “与数据源的 “标签 “相匹配。这个平台虽然很新,但在满足数据安全需求各方面绝对值得考虑。
Passkeys评估“密码的终结”可能将终于要到来了。在 FIDO 联盟的指导和苹果、谷歌、微软的支持下,passkeys的可用性正在接近其他主流身份校正方式。当用 passkeys 注册新的登录信息时,它会产生一对密钥:网站收到公钥而使用者保留私钥。它采用非对称加密处理登录。使用者须要证明他们拥有私钥,但与密码不同,私钥不会被发送到网站上。在使用者的设备上,会采用生物识别控制技术或 PIN 码来保护对 passkeys 的访问。
Passkeys 可以在各大应用软件生态中存储和同步,例如苹果的 iCloud 钥匙链、谷歌的密码管理器或微软的 Windows Hello。在大多数情况下,该功能只适用于最新的操作系统和浏览器版本。值得注意的是,Windows 10 并不支持在 Windows Hello 中存储密码。不过幸运的是,客户端到认证器协议 (CTAP) 让 passkeys 可以被保存有创建密钥或须要密钥登录的设备之外的不同设备上。例如,一个使用者在 We 生态设备上登录到该网站。Passkeys 也可以存储在硬件安全密钥上,在 iOS 和 Android 上也提供更多了对原生应用的支持。
尽管仍有一些可用性问题——例如,登录时须要设备支持并开启蓝牙,因为
PyTorch采纳PyTorch一直是他们选择的机器学习(ML)框架。相比于 TensorFlow,大多数项目组更喜欢 PyTorch,因为它暴露了 TensorFlow 隐藏的 ML 内部工作原理,使其更易于调试。动态计算图使得模型优化比其他任何 ML 框架都更容易。State-of-the-Art (SOTA) 模型 的广泛可用性以及实现研究论文的便利性使 PyTorch 脱颖而出。在图 ML 领域,PyTorch Geometric 是一个更成熟的生态系统,他们的项目组在采用中获得了良好的体验。PyTorch 在模型部署和扩展各方面也逐渐弥合了缺失,例如,他们的项目组已成功地在生产中采用 TorchServe 服务预训练模型。随着许多项目组默认采用 PyTorch 来满足其端到端的深度学习需求,他们很高兴地提议采纳 PyTorch。
LangChain评估LangChain是一个用于构筑基于大型语言模型(LLMs)应用的框架。那些模型早已引起了一场聚合式人工智能在各种场景下的竞赛。但是,单独采用那些 LLMs 可能将是不够的——你必须将其与差异化的资产相结合去构筑有影响力的产品。LangChain 提供更多了一些方便的功能去填补了模型和应用之间的裂痕,那些功能包括提示管理,组件链式连接,聚合增强数据及丰富的用于确定执行动作和顺序的代理 。他们期待基于 LLMs 演变出更多的辅助工具和框架, 并且他们推荐对 LangChain 进行评估。
以上是他们在最新一期技术声纳中随机摘取的两个词条