22期技术雷达,https://assets.thoughtworks.com/assets/technology-radar-vol-22-cn.pdf。
主题:
- Zoom里的大象,大象源于(Elephant in the room,指显而易见却被集体选择性忽略的问题),全球瘟疫的爆发使得我们更加关注于远程协作,以及他的重要性。
- X也是软件,建议团队引入有益的工程实践,例如软件设计原则、自动化、持续集成、测试。
- 数据视角的成熟和扩展:数据分析和机器学习领域的新技术和工具。
- Kubernetes生态系统的寒武纪爆发:围绕Kubernetes的工具,平台和技术推陈出新,整个生态系统日趋成熟。
技术:
在技术部分中提到的内容,可以粗略分为几类:
产品:
将产品管理思维应用于内部平台,内部平台是服务于企业内部的开发人员的支撑平台,与ToC系统一样重要,同样需要应用产品管理思维打造内部平台。避免成为空中阁楼,花费大力气打造的系统并没有人使用,或者并不好用。
测试:
道德偏见测试
DevOps:
基础设施即代码
流水线即代码
机器学习下的持续交付,机器学习也需要一整套端到端、持续可重复的模型训练、测试、部署、监控和运维周期。 机器学习下的持续交付(CD4ML) 是一种可靠的端到端开发、部署和监控机器学习模型的技术。
平台工程产品团队,一些组织通过创建平台工程产品团队 来应对集中式运维和基础设施,这些团队维护着一个内部的应用平台,该平台使交付团队能够自助部署和运维系统。
数据网格
通过容器编排管理有状态系统
预检构建:基于 Pull Request 的构建,针对只在流水线运行期间存在的为每个 commit 建立的微型分支,出现了类似的程序如Bors(https://bors.tech/)。
前端:
微前端
移动微前端
远程协作:
务实的远程结对
使用原生的远程工作方法
后端:
最简特性开关
GraphQL 用于服务端资源聚合
去中心化身份识别
声明式数据管道定义:以Page Object模式实现步骤定义与步骤组合之间的分离,第一个开源工具A La Mode
机器学习:
半监督学习循环,是一类迭代式的机器学习工作流,它们利用未标记数据中尚待发现的关系,来提升学习性能。这些技术通过不同方式组合已标记和未标记的数据集,从而改进模型。
型。
NLP 的迁移学习,从 ELMo、 BERT 和ERNIE 等预训练模型开始,然后根据项目需求进行微调。
DeepWalk,有助于将机器学习应用于图的算法。将图视为一种语言,图中的每一个节点都是该语言中的唯一单词,DeepWalk 通过随机遍历图中有限的节点来将单词构造成句子。
安全:
安全策略即代码
零信任架构
平台:
后端:
.NET Core
Istio:服务网格的一个实践。
Crowdin,一个有助于简化项目本地化工作流程的平台。能促使团队持续和增量地完成翻译工作,而不是在最后阶段大批量地管理这些工作。
Firebase,一个综合性平台,可用于构建移动和 Web应用,并运行在谷歌可伸缩基础设施上。
IOS:
Anka,一组辅助 iOS 和 macOS 应用开发的工具,用于创建、管理、分发、构建和测试可复制的 macOS 虚拟环境。
DevOps:
Argo CD,能够在Kubernetes 指定的目标环境中,自动将应用部署至所期望的状态,并且能够帮助排查失效部署的故障原因、验证日志以及监控部署状态。
后端:
Hot Chocolate,用于.NET的GraphQL服务器。
Hydra,自托管的 OAuth2 解决方案。
OpenTelemetry, 是一个开源可观测性项目。
Snowflake,一个健壮的 SaaS 大数据存储、数仓或数据湖解决方案。
Anthos,实现混合云和多云策略,提供高级管理和控制平面(plane)。
Apache Pulsar,一个开源的 pub-sub(发布-订阅)消息与流媒体平台,类似Apache Kafka。
Matomo,(前身为 Piwik)是一款开源的网站分析平台,可以完全控制对分析数据的访问。
MeiliSearch,是一个快捷、易用且易部署的文本搜索引擎,对标Elasticsearch,但是没有Elasticsearch流行。
区块链:
Cosmos
Trillian,一种可加密验证的集中式数据存储。
机器学习:
Google BigQuery ML,一 个 数 据 仓 库 ,能 针 对 数 据 分 析 场景,使用 SQL 进行大规模查询。
JupyterLab,Jupyter 项目的下一代基于web 的用户操作界面。
Marquez,是相对年轻的开源项目,用于数据生态系统中元数据的采集和托管。
工具:
测试:
Cypress。视觉回归测试工具,推荐BackstopJS和Loki。
设计:
Figma,协作设计的工具。
Optimal Workshop,用于验证产品原型和配置数据收集的相关测试。
Devops:
Dojo,旨在通过 Docker 镜像的版本化和发布来创建标准的开发环境,它可以简化从本地开发到生产流水线中的开发、测试和构建过程。
k9s,对于 Kubernetes,k9s为kubectl 的所有功能都提供了一个交互界面。
kind,一个用于在 Docker 容器节点中运行本地 Kubernetes 集群的工具。
机器学习:
DVC,基于 Git ,用于机器学习(ML)项目中管理实验,实现了对处理数据的代码以及数据本身的版本管理,而且还实现了对流水线的各个阶段的追踪。
用于机器学习的实验跟踪工具,例如MLflow 的工具以及诸如Comet 和 Neptune 平台,可以使得整个机器学习的工作流程变得更加的严谨和可重复。
Apache Superset,用于与大型数据湖和数据仓库一起,进行数据探索和可视化。
Manifold 是机器学习的一个与模型无关的可视化调试工具。
测试:
Goss,供应测试工具。
后端:
Jaeger 是一个开源的分布式追踪系统。类似于 Zipkin。
mkcert 是一个用于创建本地信任的开发证书的便捷工具。
Phrase,用于管理产品的多语言翻译,还可以通过使用标签实现了翻译的版本管理。
Visual Studio Live Share,remote结对编程工具。
AsyncAPI ,旨在构建急需的事件驱动和异步 API 标准以及开发工具。
ConfigCat, 支持简单的特性开关、用户细分和 A/B 测试,但是收费。
Gitpod 通过为 Github 或 GitLab 仓库提供基于云的、现成的代码环境来建立一个完整编码环境。
Gloo 是一个支持这种变化的轻量级API 网关,它使用 Envoy 作为其网关技术,同时为外部用户和应用程序提供附加价值,如 API 的内聚视图等。
Lens 通过一个集成环境用以查看集群的当前状态和工作负载,可视化集群指标,并通过内嵌的文本编辑器修改配置,是试图驯服 Kubernetes 管理复杂性的几种方法之一。
管理:
MURAL 自诩为“视觉协作的数字工作空间”,并允许团队在基于白板和便利贴构建的共享工作空间内进行交互。
安全:
ScoutSuite,一个增强版工具,提供跨AWS、 Azure、 GCP 和其他云提供商的安全状态评估。
前端:
Sizzy,用于在一个浏览器窗口内展示多个视窗。应用会被同时渲染到所有的视窗中,并且对应用的交互也会同步到所有视窗中。Snowpack 是 一个JavaScript 构建工具,可以使用 React.js, Vue.js Angular 等现代框架来构建应用程序,而无需打包器,由于省去了打包的环节,对代码的任何修改都几乎可以立即显示在浏览器上。
安全:
tfsec,一个静态分析工具,可以用来扫描 Terraform 模板并查找潜在的安全问题。
语言&框架
前端:
React Hooks 引入了一种管理状态逻辑的新方法。
React Testing Library,react.js单元测试框架。
Vue.js。
CSS-in-JS,在JS代码中书写CSS,避免全局命名冲突,例如Linaria。
Tailwind CSS,提供了较低层次的 CSS 样式类来构建模块,且没有自带任何多余的复杂样式,如此可以使开发者不需要编写任何新的样式类或 CSS 样式。
XState,一个简单的 JavaScript 和 TypeScript 框架,用于创建有限状态机并将其可视化为状态图。
后端:
Exposed,轻量级的对象关系映射器(ORM)。
GraphQL Inspector可以比较两个GraphQL 模式(schema)之间的变更,用于集成到团队的CI 流水线中,能够捕获 GraphQL模式中潜在的重大变化。
Koin是一个 Kotlin 框架,用于处理软件开发中的依赖注入。
NestJS是一个让 Node.js应用开发更安全、更不易出错的基于 TypeScript 优先风格的框架。
Rust。
Tamer,标榜为“驯化的 Kafka JDBC数据源连接器”,在处理大量数据时,比 Kafka JDBC 连接器更高效。
Wire,是一种编译时依赖注入工具,可以同时生成代码并将组件连接在一起。
测试:
Karate 是一种 API 测试框架,其独特之处在于它不依赖通用编程语言,而直接使用基于 Gherkin 的语法编写测试。Sarama 是 Apache Kafka 的 Go 客户端库。
Clinic.js Bubbleprof,一款用于性能剖析工具,能够可视化 Node.js 进程中的异步操作,绘制程序调用流中的延迟图。
机器学习:
PyTorch一个机器学习框架,类似TensorFlow。
Deequ,一个 建立在 Apache Spark 之上,用来为数据集编写类似单元测试的库。
ERNIE,和 BERT 一样, ERNIE 也提供了无监督预训练语言模型,百度出品的NLP预训练模型。
MediaPipe是一个用于构建多模态(例如视频,音频,时间序列数据等),跨平台(例如Android, iOS, Web 和边界设备)的应用类机器学习流水线。
IOS:
SwiftUI,框架用于在 macOS 和 iOS 平台上实现用户界面。
参考:技术雷达,https://assets.thoughtworks.com/assets/technology-radar-vol-22-cn.pdf
网友评论