侧边栏壁纸
  • 累计撰写 244 篇文章
  • 累计创建 16 个标签
  • 累计收到 0 条评论
隐藏侧边栏

Twine 介绍

kaixindeken
2021-04-19 / 0 评论 / 0 点赞 / 91 阅读 / 1,070 字

在该系统出现之前,Facebook 的集群由为业务定制的独立资源池组成,因为这些资源池中的机器可能有独立的版本或者配置,所以无法与其他业务共享。

Twine 的出现解决了不同资源池中机器配置不同的问题,提供了动态配置机器的功能,这样可以合并原本独立的资源池,提高资源整体的利用率,在业务申请资源时可以根据需要配置机器,例如:改变内核版本、启用 HugePages 以及 CPU Turbo 等特性。

集群管理系统可通过自动化,标准化和规模经济来帮助组织有效利用共享基础架构。从 Mesos ,Borg 到Kubernetes ,集群管理系统在过去十年中取得了长足的进步。但是,现有系统在支持大规模共享基础结构方面仍然存在局限性:

  • 人为定义集群,对跨集群管理的支持有限。
  • 未对应用生命周期进行有效支持。
  • 未针对应用需要的特殊的运行环境进行主动的调整。
  • 更倾向于将工作负载堆叠到配置更好的机器上,未考虑全局优化。

Facebook集群管理系统Twine中的解决上述局限性的抽象化的目标:

  • 单一控制平面拓展,同时提供高可靠性和性能保证。
  • 支持特定于工作负载的自定义,该应用程序允许应用程序在共享环境中运行基础架构而不会牺牲性能或功能。

Twine 的具体特点:

  • 单一控制平面,管理百万台级别机器群。
  • 协助型生命周期管理。
  • 主机级别自定义。
  • 共享基础设施。
  • 节省能源的机器。

1.png

Kubernetes 是今天十分热门的集群管理方案,不过 Facebook 的方案 Twine 却做出了与 Kubernetes 相反的决策,实现了截然不同的解决方案。需要注意的是使用 Kubernetes 并不一定意味着要使用静态集群、私有节点池和大容量机器,我们仍然可以通过引入其他模块实现动态集群等特性,只是 Kubernetes 本身不支持这些设计。

在 Kubernetes 大行其道的今天,能够看到 Facebook 分享其内部集群管理系统的不同设计还是有很大意义的,这让我们重新思考 Kubernetes 中设计带来的潜在问题,例如:中心化的 etcd 存储,很多使用 Kubernetes 的大公司为了让其能够管理更多节点,都会选择修改 etcd 的源代码或者替换存储系统。

Kubernetes 对于集群规模较小的公司还是有很大好处的,而其本身确实能够解决集群管理中 95% 的问题,Kubernetes 也不是银弹,它没法做到解决场景内的全部问题。在应用 Kubernetes 时,中小规模的公司可以全盘接收 Kubernetes 的架构和设定,而大公司可以在 Kubernetes 的基础上做一些定制,甚至参与到标准的制定中增加技术影响力、提高话语权并且帮助支撑公司业务成长。

0

评论区