设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Lyft:用SaltStack代替Puppet

2014-8-26 10:38| 发布者: joejoe0332| 查看: 2737| 评论: 0|原作者: 黄晓雯 |来自: InfoQ

摘要:   美国拼车应用创业公司Lyft宣布用SaltStack代替Puppet作为其系统配置管理工具。根据Lyft工程师Ryan Lane在其博客中的叙述,Ansible也在考虑之列。但Lyft在综合考虑易用性、成熟度、性能和开发社区等因素后,认为S ...

  美国拼车应用创业公司Lyft宣布用SaltStack代替Puppet作为其系统配置管理工具。根据Lyft工程师Ryan Lane在其博客中的叙述,Ansible也在考虑之列。但Lyft在综合考虑易用性、成熟度、性能和开发社区等因素后,认为SaltStack更胜一筹。


  就易用性而 言,SaltStack复杂的文档结构和密集的文字,使得其学习曲线更为陡峭。Ryan表示,虽然Ansible的文档对初学者而言更简单易读,但随着项 目规模的增大,SaltStack的文档对开发者的帮助更大。深入分析配置文件(Ansible中称为playbooks,SaltStack称为 stat definitions)突显了二者的区别。Lyft的工程师发现,SaltStack保持了输入、输出、配置文件的一致性,所有文件均使用YAML格 式,而Ansible则使用不同的文件格式(INI,YAML)。循环和条件的实现方式也不同。Ansible将逻辑部分内嵌在DSL中,而 SaltStack使用Jinja(一个Python模板引擎)。Ryan和他的同事更喜欢SaltStack的方法。另一个决定性的因素是SaltStack拥有“卓越的”自省(introspection)性能。


  在成熟度方面,针对Lyft的用例,Ansible和SaltStack都能提供所有必要的性能和足够的成熟度。不过Ryan发现SaltStack有更丰富的特性:可以以不同的文件格式输出到不同的位置;可以从不同的来源加载pillars(其本质是一种数据结构);如果以代理模式运行,可以通过reactor系统触发本地事件。


  性能方面,以Lyft的用例做测试,SaltStack速度更快,尤其是在no-change运行模式下:


Salt:

  • Full run: 12m 30s
  • No change run: 15s

Ansible:

  • Full run: 16m
  • No change run: 2m


  在相同的应用场景下SaltStack的运行速度远远快于Ansible,Ryan因此曾在Ansible上提交过一个问题,不过该问题目前已经关闭。Ansible的创始人Michael DeHaan在Hacker News上提供了一篇关于Ansible性能调节的文章,不过文章内容并没有回应Ryan对于在Ansible中用户相关操作运行缓慢的抱怨。


  至于开发社区,Ryan和他的同事认为SaltStacks更为友好,开发者数量也更多。虽然Ryan说“Ansible几乎是由mpdehaan一个人开发的”,但Michael DeHaan表示Ansible “目前有810名贡献者”。Lyft的工程师们还认为SaltStack社区是个更友好、更有助于开发者的社区,对特性请求的接受度也较高。与 Asible相比,他们可以向SaltStack提交更多的变更,虽然SaltStack“有时候在接受代码时不够严格(我希望看到更多的代码审查)”。 这似乎是个项目管理的哲学问题,而Michael DeHaan在Hacker News上写道“当我们不同意时一定会拒绝。我认为这非常重要。筛选和测试在一定程度上决定了一个项目。”


  促使Lyft 选择替换Puppet的主要原因是其复杂的、有将近10000行代码的代码库。因为Lyft遵从“谁开发,谁运行”的原则,其DevOps团队认为 Puppet代码库不再适合开发者使用。而使用SaltStack和Ansible,用1000行左右的代码就能复制Puppet的架构。


  当被问到彻底重写Puppet的可能性时,Ryan写道:

从头开始重写可能会大幅降低代码量,可能也会降低运行时间。即便如此,我认为重写Puppet会耗费我相当长时间。


  Lyft对新 工具有几个主要的需求。工具应该允许无主架构,因为主节点增加了“一个不必要的故障节点,同时牺牲了性能”。代码应该能顺序阅读,而不会有任何优化打破该 原则。代码应该简洁,有少量的配置管理抽象。工具应该支持将横切配置(例如监控)和服务/应用特定配置放置在不同代码库的设计。


  InfoQ发表过一个基础架构配置管理工具的系列,其中就有SaltStackAnsible的介绍。我们也组织过一次该领域主要产品的用户间的虚拟座谈会。有意思的是,Ryan指出的SaltStack和Ansible的几项特点,在我们的虚拟座谈会中也被重点提到过。


查看英文原文:Lyft Replaces Puppet With SaltStack

转自 http://www.infoq.com/cn/news/2014/08/lyft-moves-to-saltstack?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部