GopherDaily

GopherDaily

2024-07-17

每日一谚:Define interfaces in the consumer package, not the producer


Go技术生态

Go 1.23rc2发布
离Go 1.23正式版发布已经不远了

Postgres 与 MySQL Sysbench 延迟
DoltHub 是世界上第一个版本控制的 SQL 数据库 Dolt 的创建者,它使用一套扩展的 sysbench 测试在 PostgreSQL 15.5 和 MySQL 8.0.35 之间进行了延迟基准比较,发现在此硬件配置上,Postgres 大约比 MySQL 快 2.3 倍。

使用 Prolly Trees 实现对 JSON 的高效版本控制
Dolt 是一个关系数据库,通过使用 Prolly Trees 将 JSON 文档存储为平面表,提高了版本控制和合并的速度,并确保了与旧版本 Dolt 的兼容性,从而改进了其 JSON 处理。

在 Go 中实现并发:模式和示例
这篇博客文章讨论了 Go 编程语言的内置并发特性,解释了常见的并发计算模式,例如单消费者单一生产者 (SCSP)、多消费者多生产者 (MCSP) 和多消费者单一生产者 (MCSP_),并提供示例来说明它们在软件系统中的使用。

优雅终止:优雅关机指南
本文提供了有关如何在 Kubernetes 上运行的 Go 应用程序中实现正常关闭的指南,使用 Unix 信号和 Go 的信号包来确保数据完整性和顺利的终止过程。

单元测试和mock:面包和黄油
这篇博文介绍了一系列关于 Go 中单元测试和模拟的新博客文章,重点介绍了如何通过模拟其依赖项来为特定结构编写单元测试,并提供了有关如何在单元测试中使用 Mockery 工具和“AAA”范式的分步指南。

age插件
Age 是一个文件加密工具,支持多个接收者和身份,支持各个级别的第三方接收者类型,具有允许插件和原生接收者混搭的插件系统,以及将接收者和身份实现转化为插件的实验性 Go 框架。

云原生技术

Google Blocks 现在是开源的
Google 已经开源了其 3D 对象创建工具 Google Blocks,允许社区创建和修改它,代码在 Apache 2.0 许可下可用。

Nomad Bench:Nomad 的负载测试和基准测试
Nomad Bench 项目提供可重用的基础设施工具,用于大规模 Nomad 集群的负载测试和基准测试,使用 InfluxDB 和 Tele Graf 进行数据收集和分析,以及一个轻量级的、基于虚拟化的客户端包装器“nomad-nodesim”,用于模拟和注册数以万计的 Nomad 客户端。

平台团队:自动收集基础设施需求
New Stack 建议自动收集基础设施需求,以改善开发和运营团队之间的沟通和效率,从而降低基础设施漂移和部署失败的风险。

Docker 最佳实践:在 RUN、CMD 和 ENTRYPOINT 之间进行选择
源文档是一条消息,指示来自系统的“403 Forbidden”错误消息,特别是来自服务器端,特别是来自“ns”部分。

2024 年的软件工程行业:发生了什么变化,为什么,以及下一步是什么
这篇博文讨论了过去 18 个月科技行业的重大变化,重点关注对企业和开发人员的影响,并在 2024 年 5 月的 Craft Conference 主题演讲中分析了这些变化。

Kubernetes 公开:利用 Kubelet API
Aqua 博客讨论了 Kubernetes 集群中 Kubelet API 的漏洞,重点介绍了通过蜜罐设置观察到的真实攻击,并提出了缓解这些风险的措施,例如限制访问、实施强大的身份验证和授权、监控和审计、安全补丁和维护 Kubernetes 态势管理。

Intel CPU 芯片die拓扑
Jason Rahman 讨论了英特尔的片上网状互连在 Cascade Lake 和 Ice Lake 系统中的性能,他指出,虽然通信成本存在一些差异,但与 AMD 的 Rome 和 Milan CPU 不同,它很低,通常不是性能问题。

从 Amy Laws 的 PR 数据中调查代码质量
一个团队开发了一种工具,可以分析开发人员的拉取请求 (PR),以了解代码质量、团队动态和新代码发布的速度,使用 PR 的数据来分析语气、主题和分歧,并创建一个用于可视化和探索的仪表板。

终极 Redis 命令备查表:综合指南
Sidali Assoul 的 Ultimate Redis Command Cheatsheet 提供了 Redis 命令的综合指南,涵盖了对各种数据结构的操作,例如字符串、列表、集、哈希、地理空间、Lua 脚本、事务和位图命令。

在 LLM 的结构化数据中自动执行上下文
以色列初创公司 illumex 正在开发一种生成语义结构,通过自动创建公司数据、其含义、上下文和用法的知识图谱,根据业务功能创建本体,从而改善特定领域的 AI 结果。

KubeCon 2024:揭开云原生计算的未来
Thomas Ehling 讨论了塑造 Kubernetes 和云原生生态系统未来的关键趋势,包括 AI、平台工程、左移、自定义资源、成本和环境优化、使用 eBPF 进行观察以及安全性,并分享了他在活动中的个人经验和见解。

使用 eBPF 在内核空间中运行您的程序
本文讨论了 eBPF,这是一种允许用户代码在内核空间中运行的技术,它不仅可以产生网络安全和性能监控,还会产生更广泛的影响,并演示如何使用它来监控已删除的文件并打印其名称。

在数据库中将 UUID 用于主键的风险
本文讨论了在数据库中使用 UUID 作为主键的潜在问题,包括较慢的插入性能和较高的存储利用率。

AI

AI 实验室:让机器学习工程师快速前进的秘诀
Meta 开发了 AI Lab,这是一个预生产框架,为机器学习工程师优化了首批时间(TTFB),减少了从提交到首批数据进行训练的时间,并防止回归,从而提高了创新速度和迭代速度。

流行工具与项目

go-kratos/kratos
面向云原生时代的终极 Go 微服务框架。

kgretzky/evilginx2
独立的中间人攻击框架,用于网络钓鱼登录凭据和会话 cookie,允许绕过 2 因素身份验证

influxdata/telegraf
用于收集、处理、聚合和写入指标、日志和其他任意数据的代理。

runatlantis/atlantis
Terraform 拉取请求自动化

DiceDB/dice
使用基于 SQL 的实时响应性直接替代 Redis。

SagerNet/sing-box
通用代理平台

twmb/franz-go
franz-go 包含一个功能完整的纯 Go 库,用于与 0.8.0 到 3.6+ 的 Kafka 交互。生产、消费、交易、管理等。

uber-go/zap
在 Go 中实现超快、结构化、分级的日志记录。

samber/lo
💥 基于 Go 1.18+ 泛型的 Lodash 风格的 Go 库(map、filter、contains、find...

moonD4rk/HackBrowserData
提取和解密浏览器数据,支持多种数据类型,可在各种操作系统(macOS、Windows、Linux)上运行。

k3s-io/k3s
轻量级 Kubernetes

zan8in/afrog
用于漏洞赏金、渗透测试和红队的安全工具。

goharbor/harbor
一个开源的可信云原生注册表项目,用于存储、签名和扫描内容。

marcel-dempers/docker-development-youtube-series

spf13/cobra
现代 Go CLI 交互的指挥官

rancher/rancher
完备的集装箱管理平台

gravitational/teleport
以最简单、最安全的方式访问和保护您的所有基础设施。

prometheus/client_golang
用于 Go 应用程序的 Prometheus 插桩库

kubernetes-sigs/external-dns
为 Kubernetes 入口和服务配置外部 DNS 服务器(AWS Route53、Google CloudDNS 等)

OffchainLabs/nitro
Nitro 去 vroom 并修复所有问题

hashicorp/terraform
Terraform 使你能够安全且可预测地创建、更改和改进基础结构。它是一种源可用工具,可将 API 编码为声明性配置文件,这些文件可以在团队成员之间共享、视为代码、编辑、审查和版本控制。

redis/go-redis
Redis Go 客户端

netbirdio/netbird
通过 SSO、MFA 和精细的访问控制,将您的设备连接到基于 WireGuard® 的安全覆盖网络。

open-telemetry/opentelemetry-go
OpenTelemetry Go API 和 SDK

grpc-ecosystem/go-grpc-middleware
Golang gRPC 中间件:拦截器链接、身份验证、日志、重试等。


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily主页:gopherdaily.tonybai.com

GopherDaily归档:gopherdaily.tonybai.com/more

GopherDaily项目:github.com/bigwhite/gopherdaily

订阅GopherDaily

取消订阅GopherDaily

Copyright 2019-2024 GopherDaily