💡
原文英文,约2900词,阅读约需11分钟。
📝
内容提要
在Slack,我们使用Chef作为核心,管理着数万个托管各种服务的EC2实例。为了提高可靠性,我们将Chef基础架构分片,并使用Consul替代Chef搜索。我们还开发了Chef Librarian服务来管理cookbook的版本和环境的更新。我们还介绍了在cookbook上传方面的挑战,并提出了一种更高效的方法。我们还讨论了在Chef环境中搜索的问题,并介绍了我们开发的Shearch服务。最后,我们提出了进一步改进部署安全性的想法,包括更细分的Chef环境和采用Chef PolicyFiles和PolicyGroups。
🎯
关键要点
- Slack使用Chef管理数万个EC2实例,提升可靠性。
- 最初依赖单一Chef堆栈,随着实例增长,面临重大风险。
- 转向分片Chef基础架构,创建多个Chef堆栈以提高弹性。
- 使用AWS Route53加权CNAME记录为节点分配分片。
- 使用Consul替代Chef搜索进行节点发现,解决了依赖问题。
- 开发Shearch服务以支持跨多个Chef堆栈的搜索功能。
- 保留DishPig上传工具,针对每个Chef堆栈部署多个实例。
- 引入Chef Librarian服务以管理cookbook版本和环境更新。
- 支持独立更新环境,减少故障传播风险。
- 探索进一步细分Chef环境和采用Chef PolicyFiles与PolicyGroups的可能性。
🏷️
标签
➡️