Chef凭借开源项目Habitat,破解应用程序自动化难题

作者: 云计算机网 分类: 动态 发布时间: 2019-09-24 19:48

配置管理平台厂商Chef凭借开源项目Habitat,为广大开发人员提供了一种新的应用程序自动化方法。该项目旨在为应用程序赋予智能,可以在整个生命周期中自我组织和自我配置。

据Chef联合创始人兼首席技术官亚当雅各布(Adam Jacob)声称,如今许多公司在设法搞清楚如何像Facebook和谷歌这些大公司一样快速、高效而创新;为此,它们不得不寻找新的方法来构建、部署和管理应用程序。

他说:如果我们希望这些公司做到快速、创新、又有改造能力,我们要做的就是,优化它们构建应用程序的方式,优化它们将应用程序部署到生产环境的方式,优化它们在整个生命周期过程中管理应用程序的方式,而这确实是一大挑战。

据雅各布声称,通常来说,基础设施公司通过企业方法或Web方法来着手解决这个问题。企业方法存在的挑战是,许多公司针对单个孤岛(独立部门)设计解决方案,然后被迫与来自每个孤岛的所有选择集成起来。Web方法设计的基础设施略胜一筹,因为它一开始就考虑了平台,但是不像Web公司,企业构建的平台未必就是它们出售的产品。

雅各布说:非得是这样子吗?我们是不是非得从上面两个视角中的一个来进行设计,以处理这个构建、部署和管理问题?如果我们同时从两个方面来搞,会出现什么情况?如果我们说,我们的应用程序在这个构建、部署和管理周期中自始至终应该正常运行,那又会是怎样?让我们构建简化这项任务的技术;我们对这个名为Habitat的解决之道确实引以为豪。Habitat是我们所说的应用程序自动化技术。不是从基础设施的视角来考虑那些问题,我们所说的是,关于应用程序行为的一切都属于这个应用程序。

据雅各布声称,Habitat让应用程序能不必依赖任何特定的基础设施环境,并充分利用任何底层基础设施,不需要特定的优化。据他声称,Habitat支持现代化应用程序,能够设计不用修改就可以在任何运行时环境下运行的应用程序,能够移植遗留应用程序,降低了在生产环境下管理容器的复杂性,应用程序能够意识到环境并做出响应;还能够整合到Chef的开发运维(DevOps)工作流程中。

雅各布说:应用程序必须实现自动化。如果应用程序需要在构建、部署和管理生命周期中处理什么任务,那是应用程序的责任;我们需要做到这一切,又不必部署任何东西。你没必要仅仅为了获得更好的管理而改变在上面运行应用程序的基础设施。你应该能够让应用程序易于管理,而这正是Habitat为你提供的一切。

展望未来,Chef计划发布一项自动化公共构建服务,并且为Habitat增添更多的拓扑结构、更新策略和程序包导出格式。

来源:云头条

聚焦云计算,扫描二维码,关注HostUCan云计算

  • 开源就是不断的奉献自己,除非它将你的业务先毁掉。但是,有太多的人先入为主,将各种偏见灌输给你,诸如:开源有毒,开源根本无法赚钱之类的。这个时候,你只需要默默的,转身看看那些成功的利用开源的公司即可。

    互联网的巨头,即使如 LinkenIn,也是开源的专家,让我们先过一遍 LinkedIn 的 GitHub 账户, 竟然是一家发布了 75 个开源项目的公司。而且其中有一些已经是获得巨大成功的项目了,有众多的开发者和公司参与开发和使用。是的,没错,这就是 LinkedIn,外表光鲜的互联网公司,主营的业务是招聘,标榜自己是将全世界的专家联系起来,让他们更具生产力,并变得更加的成功。

    最近被各大公司释放开源项目的新闻刷屏,Google 刚刚开源了人工智能项目、FaceBook 开源机器学习项目 等等,几乎每周都有这些 IT 大鳄们发布新的开源项目,令人目接不暇。 LinkedIn 也不甘示弱,近期又开源了其旗下项目 Amdry ,这是一款对象存储系统。其实,LinkedIn 已经悄然建立了一个世界级的开发者团队,和开源社区紧密联系,从开源中获益、也反馈给社区。近来 LinkedIn 的工程副总裁 Igor Perisic 接受了 InfoWorld 的 Matt Asay 的采访。让我们来了解下 LinkedIn 是如何让开源在公司中成功运转的。

    将代码开放仅仅是个开始

    任何人都可以将自己的代码开放,事实上,类似 Sourceforge 上的很多项目经年累月的都是只有很少的开发者,(80%的项目只有两个人或更少的开发者)若是有人加入的话,那真是让人兴奋不已。即使是某个项目有多个贡献者,但是绝大多数的项目有超过6个月的时间没有更新。

    事实上,仅仅从 LinkedIn 开源了75个项目这个角度来说,并没有多大的意义,因为一个开源项目的意义在于能够在多大程度上引起社区的兴趣来,而这也是 LinkedIn 的开源故事的魅力所在。

    正如 Perisic 所说:数字通常只是表面的、虚的标杆,我们认为社区采用量才是成功的关键指标。 举例来说,Pinot和 REST.li,前者是一个实时的分布式的 OLAP 数据存储,LinkedIn 用来交付可扩展的实时分析,后者是一 REST 的框架,在 GitHub 上都是超过一千个 Star 和 Fork 超过 200 的项目。

    另外,一个开源项目最好的健康指标就是代码仓库的贡献者数量和最后的更新时间,这两个指标随着时间的推移,也会为项目带来更多的贡献者以及更加频繁的更新,形成一个正循环。但是对于社区来说,这还不够。能够得到业界标准的承认,才是 LinkedIn 的开源工作所取得的成绩,比如得到 Apache 基金会的承认。

    LinkedIn 有多个项目被 Apache 基金会当选为其顶级项目,诸如Kafka、Samza、 以及 Helix 。还有其它项目,如分布式键值存储系统-Voldemort 正在变得流行起来。REST.li 就不用说了,已经是非常受欢迎的开发框架了。总体而言,LinkenIn 通过在开源的努力已经在开源项目上赢得了开发者的认同。

    开源现在已经是一个被滥用的词汇了,举例来说,太多的公司所发布的代码是对自己有用的,然后希望出现大规模的社区围绕着它来进行,然后希望这个项目对自己的公司更加的有用处。其实,开源基金会也是遵循着同样的如此的以自我为中心的逻辑,所谓的开放治理其实是一种伪装,不过依然是由单一的厂商控制最终的产出罢了。

    当然,LinkedIn 也不是第一天就明白成为开源社区的典范的美德的。正如 Perisic 所描述的那样:从早期的失败中,我们学到的重要的一课就是你不可以将一个项目扔给社区,然后就不再创新了。还有另外重要的就是,一个开源项目的成功与否取决于你如何参与到社区中来。

    Perisic进一步解释,这也就是意味着,最为艰难的工作是在将刚刚将代码开源后的那一段时间,举个例子来说,LinkedIn 现在所总结的获得社区的反馈非常的重要,以及确保项目的目标是容易理解的。这都是经历了很多才学到的。不过,只为重要的还是团队的决定,如果你没有准备好将正在进行的工作开源的话,最好是先不要将之开源了。

    何苦呢?

    这里就有很多人提出了疑问了,既然开放代码已经困难重重了,再加上来自社区增长的压力,何必这么折腾了呢?Perisic 进一步点出了其中的奥义,虽然开源对于 LinkedIn 来说有让价值在外部流动的好处,但是最重要的一个缘由还是开源社区能够影响到工程师。

    Perisic说道:我们发现,在开源了项目之后的第一个结果竟然是我们开发者撰写出了质量更好的代码。将代码放在自家的门后,只会成为鼓励大家偷懒、马虎,开源之后,则不一样,这样会激励开发者们,使他们更加的细心。开源之后改进尤为明显的有,文档也有人写了、代码也更容易让人阅读了、而且非常注重每一次的测试结果。

    将代码开放以后,也就意味着开发者们要接受批评--非常公开的批评。用 Perisic 的话就是:当一位开发者将某一段代码公开以后,也就是将自己的声誉放在了网上,其本质上是一种类似同行评审。这样就让开发者们能够激励自己,将他们的代码写的更好、撰写更完善的文档、以及对于可重用性的重视。

    Perisic又说道:当然,开源也不仅仅是有利于代码质量。它也能够确保开发人员的视野不至于太过于狭隘,总是盯着自己眼前那点事。在一个开源项目下工作,也就意味着一起共事的不仅仅是自己身边的同事,而且还有来自其它公司的开发者,这会帮助大家对于技术、业务方向的发展趋势有一定的意识,而且可以帮助他们学习如何评估其他开发者的输入。在这个多元的世界中,开发人员应该学习如何更加高效的来领导自己的团队。

    最后,Perisic指出:从公司的角度来看,这也有助于发展你的品牌工程,这证明在吸引新的人才和留住现有员工方面非常的有好处。

    种下你的代码,让它茁壮成长

    Perisic非常认真的说:我认为在创建一个项目并将之开源,应该像你的内部组织一样去花时间用心去做。而且发布什么样类型的代码也是有讲究的,是蛮重要的事情。这就是为什么有一些项目无法发展出强大社区的重要原因之一,因为所发布的项目是孤立的。孤立的代码可能就是那些仅仅只是对本公司业务有用的代码,如果它对于外部其它公司没有任何用处的话,那么它失败的可能性就会很大。

    但是有的时候,最好还是在现有的项目上去投入资源和人员,即使它们可能还没有获得大家公认的高度。独立的开源项目是伟大的,但是如果它是在 Apache 的羽翼下而且也蛮有意义,那就不要犹豫了。如果已有的社区的开发者们渴望使用它,那就更不用有所犹豫了,赶紧将之开源!

    既然这样,那么问题又来了,当来自 LinkedIn 外部的代码对于 LinkedIn 毫无用处的时候是怎么处理的?Perisic 是这么回答的:你不能只是将项目放弃就不管了,你应该为原来选择你的用户提供相应的替代和迁移的途径。 这里举个例子,LinkedIn 曾经放弃了一个叫做 Camus 的项目,这个项目的功能是用于将数据从 Kafka 导入 HDFS 的一个管道实现,放弃归放弃,但是 LinkedIn 另外开发了一个叫做Gobblin的项目,LinkedIn 新的数据感应框架,也可以实现 Camus 的功能,只是更加的完善,LinkedIn 此时做的决策就是,为 Camus 的用户提供迁移的路径。

    总结以上所有,开源项目是需要付出巨大的时间来开发、精心培养、并时刻留意的。Perisic 非常明白其中的涵义,但是认为值得:对于开源社区来说,再大的投入都是值得的,因为回报也是丰厚的。

    来源:InfoQ

    聚焦云计算,扫描二维码,关注HostUCan云计算

  • 相关推荐:

  • LinkedIn开源成功的秘密
  • 开源解决方案供应商Re
  • 微软的开源.NETCore与ASP
  • VMware任命前英特尔Linux专
  • Oracle开源Fn项目,无服务
  • 2018年开源市场5大发展趋
  • 谷歌发布开源机密运算框
  • 2018年5大Linux和开源事件
  • 中国首个!百度云宣布边
  • 全面拥抱开源,浪潮云海
  • 网站内容禁止违规转载,转载授权联系中国云计算网