大家都知道最近几年,随着 K8s 成为容器编排领域霸主,etcd 也越来越火,GitHub star 已超过 34.2K。当然这也与它的应用场景广泛密不可分,从服务发现到分布式锁,从配置存储到分布式协调,可以说,etcd 已成为云原生和分布式系统的存储基石。
作为当下最热门的云原生存储之一,etcd 在腾讯、阿里、Google、AWS、美团、字节跳动、拼多多、Shopee 等公司都有大量应用,覆盖的业务不仅有 K8s 相关的容器产品,更有视频、推荐、安全、游戏、存储、集群调度等核心业务。
但哪怕是 K8s 老兵,也很难保证不在 etcd 上翻车:
无论是从内存泄露到数据不一致,还是从节点crash到性能慢,再到死锁、OOM等稳定性问题等,甚至听说还有人通过混沌工程发现并修复了多个数据不一致Bug,其中一个Bug已经存在近3年之久,而且很严重,重启就可能会触发数据不一致。
上面这类棘手问题,在学习和使用 etcd、k8s 的过程中,只是冰山一角。快速解决的办法,还是要对症下药,这里分享给你一张 etcd 典型问题图谱,你可以对照自己的经历仔细查阅。
这张图出自腾讯云资深工程师唐聪,他是腾讯云 etcd 负责人、2020 年 etcd 社区全球 Top3 活跃贡献者,之前在社区没少看到他提交的代码。
后来我才知道,这几年他一直在和 Redis、etcd 打交道,解决过很多大规模业务增长中的存储稳定性、可扩展性等问题,积累了丰富的大规模集群实战、治理经验。参与 etcd 开源项目的贡献经历,也让他对 etcd 和分布式服务有了更深入的理解。
所以,他能从开发者的视角出发,为你分析问题、梳理最佳实践、解读特性设计方案、阐述社区未来演进方向等等。
在专栏中,他深入解析了 etcd 核心原理,系统梳理其高效学习路径,帮你掌握实践中各类复杂 etcd 问题的解决方案,和在 Kubernetes、服务发现等应用场景的最佳实践,构建高可靠的 etcd 集群运维体系。
唐聪说,这个专栏是他自己多年经验的交付,能解决你在学习、使用 etcd 过程中的很多问题。所以,跟着他学,你一定能用最低的学习成本,掌握 etcd 核心原理与最佳实践,让 etcd 真正为你所用,在工作中少踩坑、少交学费,多升职、多涨薪。
前面已经提到,唐聪是腾讯云资深工程师,也是 2020 年 etcd 社区全球 Top3 的活跃贡献者,修复了 etcd 数据不一致、内存泄露、死锁、panic 等众多问题,提升了 etcd 在大规模数据场景下的启动、读性能等。
他 2014 年本科毕业加入腾讯,不到一年时间,就主导完成了一个亿级用户的业务核心存储平滑迁移任务。之后两年,又构建了大规模排行榜和 Redis 集群平台服务,支撑了公司内部多个重要业务,在这个过程中,他积累了大量 NoSQL 数据库知识与经验。
2017 年,唐聪开始接触 Docker 和 Kubernetes,并通过 Kubernetes 解决大规模 Redis 集群的治理问题,提升服务的可用性、降低运维成本。而后他转岗到腾讯云,负责 Kubernetes 集群存储 etcd 治理工作。
现在他是腾讯云 etcd 负责人,主导构建的腾讯云原生 etcd 平台,成功解决了集群大规模增长过程中各类 etcd 稳定性问题,支撑了万级 Kubernetes 和 etcd 集群。目前,etcd 作为腾讯众多产品的基础设施,服务用户已达数亿。
他把专栏分为两大模块,基础篇和实践篇。
基础篇可以帮你建立对 etcd 的整体认知,搞懂读写请求、各个核心特性背后的原理。此外,基础篇的学习也是一个中小型分布式存储系统从 0 到 1 实现的案例解读,你不仅会收获 etcd,还有分布式存储系统构建的理论知识,为下一步进阶打好基础。
在实践篇中,唐聪为你解读了 etcd 实际使用过程中可能会出现的各种典型问题,和各类复杂 etcd 问题的解决方案。
此外,他还分享了 etcd 在Kubernetes、Apache APISIX、分布式锁等场景中的应用,为你梳理最佳实践,让你在业务中更好地使用 etcd,进而对 Kubernetes、Apache APISIX 等原理有更深层次的理解。
更多实践篇内容,可以参考下面的思维导图:
另外,我觉得这个课最宝贵的一点,是他利用拆解法,为你制定了大、中、小三级目标,让你每节课都有收获,通过每个小目标的实现,最终达成个人能力的提升,彻底掌握 etcd。
连专栏里的留言质量都很高,不仅会解答大家的问题,读者也会互相讨论切磋,光看评论区都能学到不少,口碑自然不错,截了一些供你参考:
下面是课程目录:
我们在工作中常常“让专业的人做专业的事”,同理,学习某项技能,跟着专攻它的人,进步才会最快。聪哥在 etcd 领域的建树数一数二,所以他整理出来的方法和经验,绝对值得一看。