菜单

工具

采纳?

  • Cypress 在我们的团队中备受青睐,作为健康的测试金字塔的一部分,我们的端到端测试一直是由开发人员自行管理。我们之所以决定在本期技术雷达中再次提起它,是因为 Cypress 最近的版本增加了对 Firefox 的支持 ,我们强烈建议在多种浏览器上进行测试。Chrome 和基于 Chromium 的浏览器所处的主导地位,已经产生了一个令人担忧的趋势,即团队似乎只使用 Chrome 进行测试,而这可能会导致一些糟糕的意外

    历史信息
  • 不论是对设计师,还是多角色团队而言,Figma 都已被证明是协作设计的首选工具。它允许开发人员和其他角色通过浏览器查看和评论设计,而无需使用桌面版本。和它的竞争对手(如Invision 或 Sketch)相比,Figma 将版本控制、协作设计和设计分享这些功能都集中到一个工具上,这使得我们的团队更容易一起想出新点子。我们的团队发现 Figma 十分有用,特别是在开启和促进远程分布式设计工作方面。 除了实时设计和协作功能外,Figma 还提供了一个 API 以帮助改善 DesignOps 流程 。

    历史信息

试验?

  • 几年前,Docker(通常是跟容器一起)彻底改变了我们对于打包、部署和运行应用程序的看法。尽管在生产环境中情况有所改善,但是开发人员依然需要花费大量时间去设置开发环境,并且经常遇到“但它在我的机器上是好的”这类问题。Dojo 旨在通过 Docker 镜像的版本化和发布来创建标准的开发环境,并以此来解决这个问题。我们的几个团队已经借助 Dojo 来简化从本地开发到生产流水线中的开发、测试和构建过程。

    历史信息
  • 在2018年,我们在可重复分析的版本化数据中提到了 DVC。时至今日,它已成为机器学习(ML)项目中管理实验的热门工具。由于 DVC 是基于 Git 的,因此对于软件开发人员来说,DVC 无疑是一个备感熟悉的环境,他们可以很容易地将以往的工程实践应用于 ML 实践中。由于 DVC 实现了对处理数据的代码以及数据本身的版本管理,而且还实现了对流水线的各个阶段的追踪,因此能在建立建模活动秩序的同时可以不扰乱分析师的工作流程。

    历史信息
  • 机器学习的日常工作通常可以归结为一系列的实验,包括选择建模方法和网络拓扑,训练数据以及优化调整模型。 数据科学家必须利用经验和直觉来做出一些假设,然后去评估这些假设对模型的整体性能的影响。 随着这种实践的成熟,我们的团队发现对“用于机器学习的实验跟踪工具”的需求日益增长。 这些工具可以用于帮助研究人员跟踪实验, 从而使这些实验变得更加的有条不紊。 尽管这个领域还没有出现明确的赢家,但是已经出现了MLflow这类的工具以及诸如CometNeptune这样的平台,它们使得整个机器学习的工作流程变得更加的严谨和可重复。

    历史信息
  • Goss 是一个供应测试工具,往期的技术雷达在介绍TDD开发容器脚本 时曾提到过它。与 Serverspec 相比,Goss 的功能还不够完备,因此还不足以作为 Serverspec 的替代方案。可是如果它的功能恰好能满足需求,考虑一下它也未尝不可,更何况它非常小巧,开箱即用,不像 Serverspec 一样还需要专门的 Ruby 运行环境。使用 Goss 这种工具的一个常见的反模式就是分开维护代码和测试,这样在实际的基础设施即代码文件发生变化的时候,也必须相应地修改测试断言。这种测试的维护工作量非常大,而且因为代码和测试之间的严格一致性,当工程师更新了一个而忘记更新另外一个的时候往往会导致测试失败。而且这些测试很少能发现真正的问题。

    历史信息
  • Jaeger 是一个开源的分布式追踪系统。类似于 Zipkin,它的灵感来自于谷歌的 Dapper 论文,并且遵循 OpenTelemetry 规范。我们在 Kubernetes 上成功的将 IstioEnvoy 与 Jaeger 集成,并且很喜欢 Jaeger 的 UI。Jaeger 暴露了 Prometheus 格式的追踪指标,以便其他工具使用它。然而,新一代的工具,如Honeycomb,将追踪和度量集成到单个可观测性流中以支持更简单的聚合分析。Jaeger 在2017年加入了CNCF,并且最近被提升到 CNCF 的最高成熟度级别,这表明它已被广泛部署到生产系统中。

    历史信息
  • 我们仍然是基础设施即代码的热心拥护者,并且我们始终坚信,一个健壮的监控解决方案是运营好一个分布式应用的前提。有时候,一个类似 AWS Web 控制台这样的交互式工具是很好的补充。这类工具使我们能够即兴地浏览各种资源,而无需记住每一个似是而非的命令。但是,使用交互式工具频繁地进行手动修改仍然是一个值得商榷的实践。 对于 Kubernetes,我们现在有了k9s,它为 kubectl 的所有功能都提供了一个交互界面。 此外,它并不是一个 Web 应用程序,而是运行在终端窗口中的,它的操作界面会唤起我们中的某些人关于Midnight Commander的美好回忆。

    历史信息
  • kind 是一个用于在 Docker 容器节点中运行本地 Kubernetes 集群的工具。通过与 kubetest 集成,kind 使 Kubernetes 中的端到端测试变得很简单。我们已经借助 kind 创建临时性的 Kubernetes 集群,在持续集成 (Continuous Integration,CI) 管道里测试 Kubernetes 中的资源,例如控制器和自定义资源(Custom Resource Definitions,CRDs)。

    历史信息
  • mkcert 是一个用于创建本地信任的开发证书的便捷工具。在本地开发环境中使用真实的CA(Certificate Authority,证书颁发机构)签发的证书,是非常困难的,特别是对于像 example.net、localhost 或者 127.0.0.1 这样的主机来说,使用真实的CA签发的证书是不可能的。在这样的情况下,自签发的证书可能是唯一的选择。mkcert 可以生成自签发的证书,并把本地 CA 安装到系统根证书库中。对于本地开发和测试以外的所有情况,我们强烈建议使用真实的 CA 签发的证书以避免信任问题。

    历史信息
  • MURAL 自诩为“视觉协作的数字工作空间”,并允许团队在基于白板和便利贴构建的共享工作空间内进行交互。它的功能包括投票、评论、注释和“跟随演讲者”。我们特别喜欢它的模板特性,它允许主持人设计并与团队重用引导会话。所有主流的办公协作软件在这个领域都有工具可以使用(例如,谷歌 Jamboard微软白板),这些都是值得研究的,但我们发现 MURAL 使用起来非常顺畅、方便和灵活。

    历史信息
  • 在我们为客户构建的许多分布式云原生解决方案中,Open Policy Agent (OPA) 已经迅速地展现了它的价值。OPA 提供了一套统一的框架和语言,用于声明,实施和控制云原生解决方案中各个组件的策略。它是实现安全策略即代码的工具中的一个很好的例子。无论是在K8s 集群中部署资源,还是在服务网格中跨服务执行访问控制,抑或是通过代码精准地控制应用资源访问,在很多场景中 OPA 都给我们提供了非常顺畅的体验。最近的一个商业产品 Styra 声明式授权服务(Styra's Declarative Authorization Service (DAS)),通过向 K8s 的 OPA 中添加管理工具(或者说控制平面),预先构建的策略库,策略影响分析和日志记录等功能,使企业采用 OPA 变得更加简单。我们期待 OPA 的成熟和扩展,希望它可以从一个可用的服务演变成一个(大型的)以数据为中心的解决方案。

    历史信息
  • 为了更好地构建我们的产品,用户体验研究需要对数据进行收集和分析。我们的团队发现 Optimal Workshop 非常实用,因为它让验证产品原型和配置数据收集的相关测试变得很简单,因此也能帮助我们做出更好的决策。诸如首次点击,卡片排序,用户交互热力图等功能,都能帮助我们在验证产品原型的同时,优化网站导航和信息展示。因为它支持分布式团队的远程用户体验研究,因此也成为了分布式团队的一个理想工具。

    历史信息
  • 正如在 Crowdin 的描述中所提到的,现在可以使用多种平台来管理产品的多语言翻译,而无需再通过电子邮件来发送大型的电子表格。在这些平台中,我们的团队报告了使用 Phrase 的良好体验,并强调它对所有关键用户群体都非常易用:翻译人员使用的是一个非常方便的浏览器 UI;管理者也可以在这个 UI 上添加新的字段,并与其他团队的翻译进行同步;开发人员可以在本地或通过构建流水线来访问 Phrase。另一个值得一提的特性是,Phrase 还通过使用标签实现了翻译的版本管理,这使得在实际产品中对比不同版本的翻译成为可能。

    历史信息
  • ScoutSuite 是基于 Scout2(在2018年技术雷达上出现过)的一个增强版工具,提供跨AWSAzureGCP和其他云提供商的安全状态评估。它的工作原理是自动聚合环境的配置数据,并应用规则对环境进行审计。我们已经在多个项目中发现它对即时安全评估非常有用。

    历史信息
  • 自我们在2014年第一次提及 视觉回归测试工具 以来,这项技术已经得到了广泛的应用,工具的前景也得到了发展。BackstopJS 仍然是一个很好的选择,它会定期添加新特性,包括支持在 Docker 容器中运行。在上期技术雷达中我们精选出了 Loki。SaaS 解决方案则有 ApplitoolsCrossBrowserTestingPercy。另一个值得一提的工具是 Resemble.js,一个图像比较库。尽管许多团队只是间接地把它作为 BackstopJS 的一部分来使用,我们的一些团队已经直接使用它来分析比较网页中的图片了。总之,我们的经验表明,在界面发生重大变化的早期阶段,视觉回归工具的用处不大,但是随着产品的成熟和界面的稳定,它们肯定会证明自己的价值。

    历史信息
  • Visual Studio Live Share 是用于 Visual Studio Code 及 Visual Studio 的扩展套件。如果你的团队正在寻找一种良好的远程协作方式,可以考虑这款出色的工具。Live Share 提供了良好的、低延迟的远程结对体验,并且所需的带宽比粗暴地共享整个桌面要少得多。更重要的是,开发人员可以在结对过程中使用他们各自的配置、扩展和快捷键。Live Share 不仅支持编辑、调试代码的实时协作,还支持语音呼叫,以及共享终端和服务器。

    历史信息

评估?

  • Apache Superset 是一个很棒的 BI(Business Intelligence,商业智能)工具,用于与大型数据湖和数据仓库一起,进行数据探索和可视化。它可以与 PrestoAmazon AthenaAmazon Redshift 协同工作,并且可以很好地与企业身份验证集成。此外,并非只有数据工程师才可以使用它,所有的工程师在日常工作中探索数据都能够从中受益。需要指出的是,Apache Superset 目前正在 Apache 软件基金会(ASF,Apache Software Foundation)进行孵化,这意味着它还没有得到 ASF 的完全认可。

    历史信息
  • 开放标准是构建分布式系统的基础支柱之一。例如,OpenAPI(以前被称为 Swagger) 规范作为定义 RESTful API 的行业标准,对微服务等分布式架构的成功至关重要。基于它涌现出了大量用于构建、测试和监控 RESTful API 的工具。然而在使用事件驱动 API 的分布式系统中,这种标准化在很大程度上是缺失的。

    AsyncAPI 是一项开源计划,旨在构建急需的事件驱动和异步 API 标准以及开发工具。AsyncAPI 规范受 OpenAPI 规范的启发,以一种机器可读的格式描述和记录了事件驱动 API。它与协议无关,因此可以适用于包括 MQTT,WebSocket 和 Kafka 在内的许多协议的 API 上。我们期待看到 AsyncAPI 的持续改进以及其工具生态系统的进一步成熟。

    历史信息
  • 如果你正在寻找一个支持动态特性开关的服务(切记简单的特性开关也是可行的),那么请看一下 CongfigCat。我们对它的描述是“类似于 LaunchDarkly,但更便宜,且少了些花哨”。我们认为它能满足我们的绝大部分需求。ConfigCat 支持简单的特性开关、用户细分和 A/B 测试,它还对少量使用或起步者慷慨地提供了免费服务。

    历史信息
  • 大多数软件可以通过简单的两步进行构建:签出代码库,然后运行一个构建脚本。不过,建立一个完整编码环境的过程仍然很繁琐。Gitpod 通过为 Github 或 GitLab 仓库提供基于云的、现成的代码环境来解决这个问题。它提供了一个基于 Visual Studio 代码的 IDE,可以在 web 浏览器中运行。默认情况下,这些环境是在谷歌云平台上启动的,当然也可以部署内部解决方案。它的价值是显而易见的,特别是对于开源软件,这种方法可以降低临时贡献者的门槛。然而,这种方法在企业环境中的可行性还有待观察。

    历史信息
  • 随着 Kubernetesservice mesh 的日益普及,API 网关在云原生分布式系统中一直面临着生存危机。毕竟,许多 API 网关的功能,如流量控制,安全性,路由和可观察性等,现在都是由集群的入口控制器和网格网关提供。Gloo 是一个支持这种变化的轻量级API网关,它使用 Envoy 作为其网关技术,同时为外部用户和应用程序提供附加价值,如 API 的内聚视图等。Gloo 还提供了一套管理界面用于控制 Envoy 网关,并运行和集成了多个服务网格的实现,如 LinkerdIstioAWS App Mesh。尽管它的开源版本已经提供了 API 网关的基本功能,但它的企业版有一组更成熟的安全控件,如 API 密钥管理, OPA集成等。Gloo 是一个很有前途的轻量级 API 网关。它很好地适应了云原生技术和架构的生态系统,同时避免了在 API 网关中引入业务逻辑以迎合最终用户的陷阱。

    历史信息
  • Kubernetes 的一个优势是灵活性和可配置的范围,以及 API 驱动的、可编程的配置机制和使用 manifest 文件的命令行可见性与控制。然而,福祸相依,当部署非常复杂或者需要管理多个集群时,单纯通过命令行属性和 manifest 文件很难清楚地了解总体状态。Lens 试图通过一个集成环境来解决这个问题,这个集成环境可以用以查看集群的当前状态和工作负载,可视化集群指标,并通过内嵌的文本编辑器修改配置。与简单的点击界面不同,Lens 把管理员可能在命令行里运行的工具整合到了一个可导航的界面中。这个工具是试图驯服 Kubernetes 管理复杂性的几种方法之一。在这个领域,我们还没有见到一个明确的胜利者,不过 Lens 在用户图形界面和纯命令行工具之间找到了一个有趣的平衡。

    历史信息
  • Manifold 是机器学习的一个与模型无关的可视化调试工具。模型开发人员通常会花费大量的时间用于迭代和改进现有模型,而不是创建一个新的模型。通过将焦点从模型转移到数据,Manifold 对影响模型性能的数据集特征进行可视化,并以此补充现有的性能指标。我们认为 Manifold 将会是机器学习生态系统中一个值得考虑的实用工具。

    历史信息
  • 构建一个在多种设备和屏幕尺寸上看起来都符合预期的网页应用并不是一件简单的事情。Sizzy 是一个 SaaS 解决方案,用于在一个浏览器窗口内展示多个视窗。应用会被同时渲染到所有的视窗中,并且对应用的交互也会同步到所有视窗中。根据我们的经验,以这种方式与应用交互,可以更容易地在视觉回归测试工具于构建流水线中标记问题之前发现潜在的问题。尽管如此,我们也应该指出,我们的一些开发人员在尝试使用了一段时间 Sizzy 之后,总的来说,还是更倾向于使用 Chrome 提供的工具。

    历史信息
  • Snowpack 是 JavaScript 构建工具领域中的一个有趣的新成员。与其他解决方案相比,Snowpack 的关键的改进是可以使用 React.jsVue.jsAngular 等现代框架来构建应用程序,而无需打包器。由于省去了打包的环节,对代码的任何修改都几乎可以立即显示在浏览器上,因此开发过程中的反馈周期得到了极大的改善。为了达到这个神奇的效果,Snowpack 将 node_modules 中的依赖转换为单个的 JavaScript 文件,并将其放置于一个新的 web_modules 目录中,从这个目录中可以将它们作为 ECMAScript 模块(ESM)导入。对于 IE11 和其他不支持 ESM 的浏览器,它也支持一种变通方法。遗憾的是,目前还没有任何浏览器可以从 JavaScript 中导入 CSS,因此使用 CSS 模块 并不简单

    历史信息
  • 安全是所有人都关心的问题,尽早捕获风险总好过于后面再去面对由此导致的各种问题。在基础设施即代码领域,Terraform 是管理云环境时一个显而易见的选择。现在我们又有了 tfsec。它是一个静态分析工具,可以用来扫描 Terraform 模板并查找潜在的安全问题。它针对不同的云提供商(包括 AWSAzure)都预设了安全规则。我们一直都很喜欢那些有助于降低安全风险的工具,而 tfsec 不仅擅长识别安全风险,安装和使用也非常简单。

    历史信息

暂缓?

    无法找到需要的信息?

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

    新的,移进/移出 ,没有变化