Enable javascript in your browser for better experience. Need to know to enable it? Go here.
第30期 | 四月2024

平台

平台

采纳 ?

  • 事件是事件驱动架构或无服务器应用中的常见机制。然而,生产者或云提供商对它们的支持形式却存在很大差异,这阻碍了跨平台和基础设施的互操作性。CloudEvents 是一种规范,用于以通用格式描述事件数据,以实现跨服务、平台和系统的互操作性。它提供了多种语言的 SDK,因此你可以将该规范嵌入到你的应用程序或工具链中。我们的团队不仅将其用于跨云平台,还用于领域事件规范以及其他场景。CloudEvents 由云原生计算基金会 (CNCF) 托管,现已成为一个毕业项目。我们的团队默认使用 CloudEvents 构建事件驱动架构,因此我们正将其移入采纳状态。

试验 ?

  • 近年来,由于与传统基于 x86 的实例相比更具有成本和能源效率优势,云上的 Arm 计算实例变得越来越受欢迎。许多云服务提供商现在都提供基于 Arm 的实例,包括AWSAzureGCP云上 Arm 的成本优势对于运行大型工作负载或需要扩展的企业特别有利。我们看到许多团队将工作负载(如 JVM 服务甚至数据库(包括 RDS))迁移到 Arm 实例,无需更改代码,构建脚本的更改也很小。新的基于云的应用程序和系统越来越默认使用云中的 Arm。根据我们的经验,我们建议所有工作负载使用 Arm 计算实例,除非存在特定于架构的依赖。支持多架构的工具,如多架构 Docker 镜像,也简化了构建和部署工作流。

  • Azure Container Apps 是一个托管的 Kubernetes 应用平台,能够简化容器化工作负载的部署。与 Azure Kubernetes Service (AKS) 相比,运行容器化应用程序的操作和管理负担相对较少,但这是以牺牲一些灵活性和控制权为代价的,也是团队需要权衡的。这个领域的另一个产品,Azure Container Instances,通常不能满足生产环境的需求。我们的团队去年开始使用 Azure Container Apps,当时它还处于公开预览阶段,但那时它已经能在运行大容器时取得良好的结果。现在它已经普遍可用,我们正在考虑将其应用于更多用例。DaprKEDA Autoscaler 都是在其支持范围。

  • Azure OpenAI Service 通过 REST API、Python SDK 和基于 Web 的界面提供对 OpenAI 的 GPT-4、GPT-3.5-Turbo、Embeddings、DALL-E 模型等的访问。这些模型可以适用于内容生成、提取摘要、语义搜索和将自然语言转换为代码等任务。通过小样本学习(few-shot learning)和自定义超参数(hyperparameters),还可以进行微调。与 OpenAI 自己的 API 相比,Azure OpenAI 服务受益于 Azure 的企业级安全性和合规性功能,可在更多地区使用(尽管在更多地理区域可用性有限),并支持私有网络、内容过滤和手动模型版本控制。基于上述特性以及我们在具体使用中的积极体验,我们推荐已经使用 Azure 的企业考虑使用 Azure OpenAI Service,而不是 OpenAI API。

  • 在使用 数据产品思维 构建产品时,数据血缘、数据可发现性、数据治理非常重要。我们的团队发现DataHub 在这些方面能提供非常有效的支持。DataHub 的早期版本在需要更新元数据模型时,要求用户手动复制管理来自主产品的同步。近期的更新引入了通过插件实现的元数据模型定制。DataHub 的另一个有用功能是从源头到处理再到消费的强大端到端数据脉络。DataHub 既支持基于推送的集成,也支持基于拉动的数据血缘提取,可自动抓取跨数据源、调度器、协调器(通过扫描 Airflow DAG)、处理管道任务和仪表板等元数据。作为完整数据目录的一个开源选项,DataHub 逐渐成为我们团队的默认选择。

  • 组织内部的基础设施编排代码库频繁地成为维护和排查故障的时间黑洞。 基础设施编排平台 应运而生,试图将基础设施代码交付和部署工作流的各个方面变得标准化和产品化。其中包括构建一些工具,例如TerragruntTerraspace;以及 IaC 工具供应商的服务,如Terraform CloudPulumi Cloud,以及与工具无关的平台和服务,如env0Spacelift。Terraform 特定的编排工具和服务有一个丰富的生态系统,通常被称为TACOS(Terraform Automation and Collaboration Software),包括AtlantisDiggerScalrTerramateTerrateam。每个平台支持不同的工作流程,包括GitOps持续交付和代码合规性。我们很期待看到这一领域涌现出更多解决方案。我们建议基础设施和平台工程团队探索如何使用这些解决方案,从而减少他们开发和维护基础设施所需的差异不大的自定义代码量。基础设施代码的结构化、共享、交付和部署的标准化也能够为测试、度量和监控基础设施的兼容工具生态系统的出现创造机会。

  • 在基础设施即代码领域,工具仍在不断进化,我们很高兴地看到 Pulumi也不例外。该平台最近新增了对 Java 和 YAML 的支持,用于管理大规模基础设施,以及支持众多云配置和集成,使得该平台更加引人注目。对于我们的团队来说,它仍然是 Terraform 的主要替代品,用于开发多个云平台的代码。

  • Docker Desktop 许可证的变更迫使我们寻找相关替代方案,以便开发时能够在本地笔记本电脑上运行一系列容器。最近我们在使用 Rancher Desktop 上取得了不错的成效。这款免费且开源的应用程序容易下载并能够安装在苹果、Windows 或 Linux 机器上,便捷地提供了一个带有图形界面配置和监控的本地 Kubernetes 集群。虽然 Colima 已成为我们 Docker Desktop 的首选替代品,但它主要是一个 CLI 工具。相比之下,Rancher Desktop 对那些不想放弃 Docker Desktop 提供的图形界面的用户很有吸引力。像 Colima 一样,Rancher Desktop 允许你选择 dockerd 或 containerd 作为底层容器运行时。选择直接使用 containerd 可以让你摆脱对 DockerCLI 的依赖,但 dockerd 选项也提供了与其他工具的兼容性,这样可以与运行时守护进程进行通信。

  • Weights & Biases 是一个机器学习(ML)平台,它通过实验跟踪、数据集版本控制、模型性能可视化和模型管理来帮助更快地构建模型。它可以集成到现有的 ML 代码中,以便将实时指标、终端日志和系统统计数据实时传输到仪表板进行进一步分析。近期,Weights & Biases 扩展到了与大语言模型可观测性相关的 Traces。Traces 可视化了提示链的执行流程以及中间的输入/输出,并提供了关于链执行的元数据(例如使用的 token 和开始与结束时间)。我们的团队发现它对于调试和更深入了解链式架构非常有用。

评估 ?

  • Bun 是一个新的 JavaScript 运行时,类似于 Node.jsDeno。然而,与 Node.js 或 Deno 不同,Bun 是使用 WebKit 的 JavaScriptCore 而不是 Chrome 的 V8 引擎构建的。作为 Node.js 的替代品设计,Bun 是一个单一的二进制文件(用 Zig 编写),充当 JavaScript 和 TypeScript 应用程序的打包器、转译器和包管理器。自上一期技术雷达发布以来,Bun 已经从测试版发展到稳定的 1.0 版本。Bun 从头开始构建,并进行了几项优化——包括快速启动、改进的服务器端渲染和一个更快的替代包管理器——我们鼓励你评估它作为你的 JavaScript 运行时引擎。

  • 在管理分布式架构时,考虑排序、索引和访问数据的成本与可观测性同样重要。Chronosphere 使用了独特的方法来管理成本、跟踪可观测数据的使用情况,以便组织可以考虑并权衡各种指标的成本价值。借助 Metrics Usage Analyzer,作为 Chronosphere Control Plane 的一部分,团队可以识别并排除他们很少(或从未)使用的指标,进而通过减少组织必须梳理的数据量来节省大量成本。考虑到这些优势,以及 Chronosphere 与其他云托管解决方案的可观测性工具匹配的能力,我们认为它非常值得投入使用。

  • 随着越多越多人开始使用data mesh,我们的团队一直在寻找将数据产品作为最高优先级对待的数据平台。DataOS 就是这样一款产品。它提供了从设计、构建、部署到演进数据产品的端到端生命周期管理。它提供标准化的声明式规范(用 YAML 编写),抽象了底层基础设施设置的复杂性,允许开发人员通过 CLI/API 轻松定义数据产品。它支持访问控制策略ABAC以及数据策略用于过滤和脱敏数据。另一个值得注意的特性是它将数据联邦化到多种数据源的能力,这减少了数据重复和数据向中心地点的转移。DataOS 最适合于绿地场景,因为它提供了数据治理、数据可发现性、基础设施资源管理和可观测性的开箱即用解决方案。对于棕地场景,在 DataOS 外部编排资源(例如,像 Databricks 这样的数据堆栈)的能力还处于起步阶段,并且仍在不断发展中。如果你的生态系统能够接纳数据工具,DataOS 是加快你构建、部署和以端到端方式使用数据产品的不错选择。

  • Dify 是一个 UI 驱动的用于开发大语言模型应用程序的平台,它使原型设计更加容易访问。它支持用户使用提示词模板开发聊天和文本生成应用。此外,Dify 支持使用导入数据集的检索增强生成(RAG),并且能够与多个模型协同工作。我们对这类应用很感兴趣。不过,从我们的使用经验来看,Dify 还没有完全准备好投入大范围使用,因为某些功能目前仍然存在缺陷或并不成熟。但目前,我们还没有发现更好的竞品。

  • 尽管向量数据库因 检索增强生成(RAG) 使用案例而日益流行,但研究经验报告表明,将传统的全文搜索与向量搜索相结合(成为混合搜索)可以生成更完善的结果。可以借助 Elasticsearch Relevance Engine(ESRE),成熟的全文搜索平台 Elasticsearch 支持了内置和自定义嵌入模型、向量搜索以及具有如倒数排序融合(Reciprocal Rank Fusion)等排名机制的混合搜索。尽管这个领域仍在发展中,但根据我们的经验,使用 ESRE 的这些功能以及 Elasticsearch 自带的传统过滤、排序和排名功能已经取得不错的结果,这表明支持语义搜索的搜索平台不应被忽视。

  • 云和 SaaS 计费数据可能非常复杂,不同供应商之间存在许多不一致。 FinOps Open Cost and Usage Specification (FOCUS) 旨在通过提供包含一组专业术语的规范(和 FinOps framework对齐)、一个模式和一组最低要求的计费数据来减少此类问题。规范旨在支持各类 FinOps 从业者常见的用例。即便它目前仍然处于早期开发和采用阶段,也是值得关注的。随着行业采用的增长,FOCUS 将使平台和终端用户更容易、更全面地了解在云和 SaaS 供应商那里的长尾支出情况

  • Google 的 Gemini 是一系列基础性大语言模型,用于在从数据中心到手机等各种硬件上运行。其团队已经对 Gemini Nano 做了特别对优化和简化,以便在移动芯片加速器上运行。它可以实现高质量的文本摘要、上下文智能回复和高级语法纠正等功能。例如,Gemini Nano 的语言理解能力使得 Pixel 8 Pro 能够在录音机应用中总结内容。在设备上运行消除了许多来自云的系统相关的延迟和隐私问题,并且能够在没有网络连接的情况下工作。Android AICore 简化了将模型集成到 Android 应用中的过程,但在撰写本文时只支持少数设备。

  • HyperDX 是一个开源的可观测性平台,整合了可观测性的三大支柱:日志、指标和追踪。在它的帮助下,可以实现端到端的关联,并且只需几次点击就能从浏览器会话回放跳转到日志和追踪信息。该平台使用 ClickHouse 作为所有遥感数据的中心数据存储,能够扩展以聚合日志模式,并将数十亿事件压缩成独特的集群。虽然这并不是唯一可选的可观测性平台,但我们在这里想特别强调 HyperDX 统一的开发者体验。

  • IcePanel 通过使用 C4 模型,促进了协作式的架构建模和图表绘制,使技术和业务利益相关者能够根据需要深入到所需的技术细节级别。它支持建模架构对象,这些对象的元数据和连接可以在多个图表中重用,并且能够将这些对象之间的交互 可视化出来。版本控制和标签使协作者能够模拟不同的架构状态(例如,现状与未来),并跟踪架构各部分的用户定义分类。我们正在关注 IcePanel,因为它有潜力改善架构协作,特别是对于拥有复杂架构的组织。如果你正在寻找更好的支持图表即代码的替代产品,请查看 Structurizr

  • Langfuse 是一个用于观察、测试和监控大语言模型应用的工程平台。其 SDK 支持 Python、JavaScript 和 TypeScript,以及其他语言框架,如 OpenAI、LangChainLiteLLM。用户可以自行托管开源版本,也可以将其用作付费云服务。我们的团队在使用它调试复杂的 LLM 链、分析完成情况以及跨用户、会话、地理、功能和模型版本监控关键指标(如成本和延迟)方面体验良好。如果你希望构建基于数据驱动的大语言模型应用程序,Langfuse 是一个值得考虑的好选择。

  • Qdrant 是一个使用Rust 实现的开源向量数据库。 在 2023 年 9 月的数据雷达中, 我们提到过pgvector, 一个基于 PostgreSQL 的插件,可用于向量搜索。 然而,如果你需要在多个节点之间横向扩展向量数据库,我们建议考虑一下 Qdrant。 它内置的单指令/多数据 (SIMD)加速支持可提升搜索表现,它还能帮助你将 JSON 格式的负载(payload)与向量关联起来。

  • 随着 Arm 架构继续扩大其影响力 — 我们在本期雷达更新了对云上 Arm的评估 — 对更新但不那么成熟的 RISC-V 架构的兴趣也在增长。RISC-V 并没有在性能或效率方面带来突破 — 实际上,它的每瓦性能与 Arm 相似,且在绝对性能上无法与之竞争 — 但它是开源的、模块化的,且不依赖于单一公司。这使得它成为嵌入式系统中的一个有吸引力的选择,因为在这些系统中,架构的许可专有成本是一个重要的考虑因素。这也是为什么 RISC-V 用于嵌入式 领域日臻成熟,以及包括 SiFiveespressif 在内的几家公司正在为广泛的应用提供开发板和 SoCs。如今,能够运行 Linux 内核的微控制器和微处理器以及相应的软件栈和工具链都已可用。我们正在关注这一领域,并预计在未来几年内看到更多的采用。

  • Tigerbeetle 是一个用于财务会计的开源分布式数据库 。与其他数据库不同的是,它被设计成特定领域的状态机,以确保安全性和性能。集群中一个节点的状态通过 Viewstamped Replication 共识协议,以确定性顺序复制到其他节点。我们非常喜欢 Tigerbeetle 背后的 设计决策 ,使其实现具有严格可序列化保证的复式记账。

  • WebTransport 是一种建立在 HTTP/3 之上的协议,提供了服务器与应用之间的双向通信。与其前身 WebSocket 相比,WebTransport 具有很多优势,包括更快的连接、更低的延迟,以及能够处理可靠且有序的数据流以及无序数据流(例如 UDP)。它可以在同一连接中处理多个流,而不会造成队头阻塞(head-of-line blocking),进而实现在复杂应用中更高效地通信。总体来说,WebTransport 适用于广泛的用例,包括实时网络应用、流媒体和物联网数据通信。尽管 WebTransport 还处于早期阶段——各浏览器的支持正逐渐成熟,流行的库如 socket.io 也增加了对 WebTransport 的支持——我们的团队目前正在评估其在实时物联网应用中的潜力。

  • Zarf是一个用于离线和半连接Kubernetes环境的声明式软件包管理器。使用 Zarf,可以在连接到互联网时构建和配置应用程序;一旦创建完成,可以将其打包并发送到断开连接的环境以进行部署。作为一个独立的工具,Zarf 提供了几个有用的功能,包括自动生成软件物料清单(SBOM)、内置的Docker注册表,Gitea 和 K9s 仪表板,可从终端管理集群。云原生应用程序的网闸软件交付面临着挑战,Zarf 解决了其中大部分的问题。

  • ZITADEL 是一个开源的用户身份管理工具,也是 Keycloak 的替代品之一。它非常轻量级(用 Golang 编写),拥有灵活的部署选项,并且易于配置和管理。它还是多租户的,能够提供全面的功能以构建安全且可扩展的认证系统,特别是对于 B2B 应用程序,并且具有内置的安全功能,如多因素认证和审计追踪。通过使用 ZITADEL,开发者可以减少开发时间,增强应用程序的安全性,并为不断增长的用户基础进行扩容。如果你正在寻找一个用户友好、安全且开源的用户管理工具,ZITADEL 是一个不错的选择。

暂缓 ?

 
  • platforms quadrant with radar rings 采纳 试验 评估 暂缓 采纳 试验 评估 暂缓
  • 新的
  • 移进/移出
  • 没有变化

无法找到需要的信息?

 

每期技术雷达中的条目都在试图反映我们在过去六个月中的技术洞见,或许你所搜索的内容已经在前几期中出现过。由于我们有太多想要谈论的内容,有时候不得不剔除一些长期没有发生变化的条目。技术雷达来自于我们的主观经验,而非全面的市场分析,所以你可能会找不到自己最在意的技术条目。

无法找到需要的信息?

 

每期技术雷达中的条目都在试图反映我们在过去六个月中的技术洞见,或许你所搜索的内容已经在前几期中出现过。由于我们有太多想要谈论的内容,有时候不得不剔除一些长期没有发生变化的条目。技术雷达来自于我们的主观经验,而非全面的市场分析,所以你可能会找不到自己最在意的技术条目。

下载 PDF 

 

 

 

English | Español | Português | 中文

订阅技术雷达简报

 

 

立即订阅

查看存档并阅读往期内容