面向信仰编程

RSS: https://draven.co/feed.xml
面向信仰编程,Draven 的个人博客,关于 Go、分布式系统、Kubernetes 与云原生的深度思考。

Kubernetes 集群联邦与资源分发:KubeFed vs Karmada

文章对比了 Kubernetes 集群联邦的两个主流项目 KubeFed 和 Karmada,解析它们在资源分发、跨集群调度和故障转移方面的设计差异。 针对单集群节点数限制及多云管理需求,深入剖析了模板实例化与覆盖策略的实现逻辑。
评论点赞收藏1611 天前

《Go 语言设计与实现》纸质书正式预售

作者宣布《Go 语言设计与实现》纸质书开启预售,介绍封面设计、全彩印刷工艺及 7 折优惠信息。 提供 500 本签名版购买渠道,并对比了纸质书与博客内容的差异,感谢读者支持。
评论点赞收藏1730 天前

程序员必读经典:SICP、CTMCP 与 DDIA 深度解读

作者回顾了自己阅读 SICP、CTMCP 和 DDIA 三本经典计算机书籍的经历与感悟。文章详细分析了每本书的核心价值,如 SICP 对函数式编程思维的启蒙,CTMCP 对多编程范式的统一视角,以及 DDIA 帮助构建分布式系统知识体系的作用。 作者强调这些书虽是大部头且阅读门槛较高,但能带来根本性的认知提升。同时指出阅读体验因人而异,建议读者根据自身背景谨慎选择,并期待后续更多书单推荐。
评论点赞收藏1857 天前

Segcache:面向小对象的高内存效率与可扩展内存缓存

本文介绍了 NSDI 2021 论文 Segcache,一种针对小对象的内存键值缓存系统。它通过数据段分组存储、共享元数据和批量过期驱逐,显著降低内存开销并提升吞吐量。 Segcache 在生产环境中可减少 22%-60% 内存使用,多线程性能优于 Memcached。文章详细解析了其架构设计、元数据管理及过期驱逐机制。
评论点赞收藏1861 天前

Kubernetes 的局限性与挑战:从集群管理到应用场景

文章分析了 Kubernetes 在集群规模扩展和多集群管理上的瓶颈,指出其难以处理大规模节点和高并发调度。同时探讨了应用分发、批处理任务及硬多租户等场景下的局限性。 针对批处理和复杂调度,Kubernetes 不如 YARN 等传统系统。多租户隔离也是当前社区的难点,尚未实现真正的硬多租户支持。
评论点赞收藏1948 天前

为什么 Linux 和 macOS 不需要碎片整理

文章解释了 Linux 和 macOS 不需要手动碎片整理的原因。主要在于文件系统(如 Ext4、APFS)采用了区块分配和延迟写入策略,从设计上降低了碎片产生的概率。同时,SSD 的普及使得碎片对性能影响变小,且整理过程会损耗 SSD 寿命。 相比 Windows 依赖的 FAT 和机械硬盘特性,现代 Unix 类系统通过底层优化解决了这一问题,用户无需担心磁盘碎片。
评论点赞收藏1954 天前

CPU与GPU:异构计算的演进之路

文章梳理了 CPU 和 GPU 的发展历史与技术演进。介绍了 CPU 从制程、缓存、并行计算到片内布局的变化,以及 GPU 在核心数量增加、专用核心(张量、光线追踪)和多租户技术上的进步。 旨在帮助工程师理解异构计算背景下,两种处理器架构如何适应不同计算需求,为理解现代高性能计算打下基础。
评论点赞收藏1955 天前

为什么早期的 Windows 需要整理磁盘碎片

文章解释了早期 Windows 依赖磁盘碎片整理程序的两大原因:一是 FAT 文件系统缺乏碎片管理机制,频繁删改导致文件分散;二是机械硬盘随机读写性能极差,碎片会严重拖慢速度。 随着 SSD 普及和 NTFS 优化,现代系统已不再需要手动整理。作者还引出话题,暗示后续将解析 macOS 和 Linux 为何无需此操作。
评论点赞收藏1963 天前

2020 年度总结:技术成长与反思

作者回顾 2020 年 OKR 完成情况,反思技术影响力与工程能力提升未达预期。深入分享了在操作系统、Linux 内核及顶会论文方面的技术成长,以及哲学、经济学等软技能的学习心得。 同时公开了博客、公众号等社交媒体的流量数据,并预告《Go 语言设计与实现》新书出版。
评论点赞收藏1967 天前

AWS Firecracker:为 Serverless 打造的轻量级虚拟化方案

本文解读了 AWS 开源的 Firecracker 项目,分析了其如何通过精简代码和 KVM 实现毫秒级启动和低内存开销,以平衡 Serverless 场景下的安全隔离与性能。 文章对比了传统虚拟机、容器及 Firecracker 在隔离性上的差异,指出其在 I/O 吞吐量上的短板,并提及 AWS 在实际生产中的高资源超售策略。
评论点赞收藏1968 天前

如何为 Kubernetes 定制特性

文章梳理了 Kubernetes 的扩展能力,涵盖 API 扩展(CRD、聚合层、准入控制)、容器接口(CNI、CSI、CRI)、设备插件及调度框架。 旨在帮助开发者理解如何通过官方接口定制 K8s,以满足特定业务场景需求,降低维护成本。
评论点赞收藏1972 天前

NSDI '11:Mesos 集群管理系统的设计原理

本文分析了 2011 年发表的 Mesos 论文,解析其双层调度架构及资源隔离机制。 文章对比了 Mesos 与 Kubernetes 在集群规模和调度策略上的差异,指出 Mesos 通过牺牲全局最优解换取了更高的可扩展性,适合理解分布式系统演进。
评论点赞收藏1976 天前

Kubernetes 为何弃用 Docker:从 Dockershim 移除看架构演进

文章解析了 Kubernetes 在 2020 年决定移除 Dockershim 的技术背景。由于 Docker 不支持 CRI 接口且维护成本高,K8s 社区为了解耦和降低维护负担,最终选择移除对 Docker 的直接支持。 这一决策标志着容器运行时标准的统一,推动了 Containerd 等符合 CRI 标准的运行时成为主流,反映了云原生基础设施的演进方向。
评论点赞收藏1986 天前

内存管理设计精要

文章系统梳理了内存管理的核心概念,涵盖内存布局、分配器原理及垃圾回收算法。详细解析了引用计数、标记清除、分代回收及三色标记等机制。 深入探讨了写屏障技术在并发垃圾回收中的应用,旨在帮助开发者理解底层内存管理原理。
评论点赞收藏1996 天前

为什么 OLAP 数据库偏爱列式存储

文章解释了为什么 ClickHouse 等 OLAP 数据库采用列式存储而非传统行式存储。主要优势在于能按需读取特定列,避免全表扫描浪费 I/O,以及同类型数据集中存储带来更高压缩率。 这是“为什么这么设计”系列文章之一,对比了 OLTP 和 OLAP 场景差异。 虽然内容经典且准确,但属于基础架构知识科普,缺乏新颖观点或深度工程踩坑经验,对资深工程师信息增量有限。
评论点赞收藏2021 天前

OSDI '20:数据中心电力超售系统 Thunderbolt 解析

本文介绍了 OSDI 2020 论文 Thunderbolt,一种允许数据中心超售电力资源以提高服务器密度和降低成本的系统。 系统通过实时监控和主动故障转移机制,利用 Linux CFS 调度器限制 CPU 使用,从而在保障在线服务延迟的同时优化批处理任务吞吐量。
评论点赞收藏2024 天前

Facebook 百万级集群调度系统 Twine 解析:与 Kubernetes 的设计分歧

本文解析了 Facebook 2020 年 OSDI 论文 Twine,介绍了其统一集群管理系统如何解决大规模机器配置差异问题,通过动态集群和自定义配置提升资源利用率。 文章对比了 Twine 与 Kubernetes 在设计上的差异,重点分析了 Twine 如何通过分片和分离关注点实现百万级节点的规模扩展,并讨论了中心化存储带来的瓶颈问题。
评论点赞收藏2024 天前

纳秒级高性能日志系统 NanoLog 论文分析

本文分析 2018 年 ATC 论文 NanoLog,介绍其通过编译期提取静态日志、运行时记录二进制参数、后处理解码的架构,实现纳秒级日志打印。 相比 spdlog 等传统库性能提升巨大,但牺牲了调试便利性和日志可读性,适合极端低延迟场景。
评论点赞收藏2025 天前

OSDI '20:数据中心容错时钟同步机制 Sundial 解析

本文分析了 OSDI 2020 论文 Sundial,介绍了一种能在数据中心提供高精度、容错的时钟同步机制。 该方案通过软硬件结合,将服务器间时间差控制在 100ns 以内,显著降低了 Spanner 数据库的提交延迟。
评论点赞收藏2025 天前

为什么 Linux 需要 Swapping

文章解析 Linux 交换机制的设计原理,区分了内存不足时的直接回收与内存闲置时的后台置换两种场景。结合内核源码与 LRU 算法,解释了为何要在性能损耗下保留 Swap 功能。 Kubernetes 默认禁用 Swap 引发争议,文章指出应根据场景权衡,而非一刀切。适合对操作系统底层内存管理感兴趣的开发者阅读。
评论点赞收藏2105 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。