Chef infra 人工制品、厨师和巧克力是如何协同工作的?

Chef infra 人工制品、厨师和巧克力是如何协同工作的?,chef-infra,artifactory,devops,chocolatey,Chef Infra,Artifactory,Devops,Chocolatey,我们正在实现一个CI/CD管道,并使用TFS作为我们的代码存储库和构建与发布工具。我有以下具体问题: 我们目前将构建过程中需要的库和第三方工具存储在代码存储库中。我们想分析存储和访问第三方工具和库的其他方式。 Artifactory是存储它们的正确工具吗?据我所知,Artifactory应该只用于存储可以丢弃和重新创建的构建工件 还是巧克力是更好的选择?据我所知,我们需要从我们的第三方工具和库中创建巧克力包。在哪里: 这些包的来源,例如(.exe、.dll、.zip、.msi)通常驻留在哪里

我们正在实现一个CI/CD管道,并使用TFS作为我们的代码存储库和构建与发布工具。我有以下具体问题:

  • 我们目前将构建过程中需要的库和第三方工具存储在代码存储库中。我们想分析存储和访问第三方工具和库的其他方式。

    • Artifactory是存储它们的正确工具吗?据我所知,Artifactory应该只用于存储可以丢弃和重新创建的构建工件
    • 还是巧克力是更好的选择?据我所知,我们需要从我们的第三方工具和库中创建巧克力包。在哪里:
      • 这些包的来源,例如(.exe、.dll、.zip、.msi)通常驻留在哪里?
        • 在UNC文件位置
        • 或者在二进制存储库(如Artifactory)中
        • 使用二进制存储库存储构建时依赖项是正确的方法吗?它需要永久驻留在那里,并且每个新版本都会增加存储库的大小
      • 巧克力包装本身就存在吗?
        • 在UNC文件位置
        • 或者在二进制存储库(如Artifactory)中
        • 使用二进制存储库存储构建时依赖项是正确的方法吗?它需要永久驻留在那里,并且每个新版本都会增加存储库的大小
  • 如果我们将第三方工具和库存储在代码存储库之外
    • 我们需要使用厨师和巧克力来访问它们吗
    • 或者,我们可以使用巧克力直接从TFS访问它们,而不必在构建过程中使用Chef
  • 我认为Chef主要用于在开始构建过程之前使用所需的软件和环境变量来设置构建环境,对吗

  • 让我们看看我能不能帮你把这个分解一下

  • 我们目前将构建过程中需要的库和第三方工具存储在代码存储库中。我们想分析存储和访问第三方工具和库的其他方式

    • Artifactory是存储它们的正确工具吗
  • 是的,Artifactory和其他包存储库服务器通常有一个二进制/原始存储库,这是一个不错的选择。将Artifactory视为一个放置生产使用工件的地方。因此,这些库、第三方工具、第三方软件、模块等都可以存储在Artifactory中不同类型的存储库中。Artifactory将是一个企业级的包存储库管理器,为此进行了优化,可以处理高可用性等。您可以在此处存储、保护和部署二进制文件、包、软件等。这可以应用于开发、测试、阶段和生产环境


    • 据我所知,Artifactory应该只用于存储可以丢弃和重新创建的构建工件
    我觉得这有点不对劲,太接近了。您可以存储可以扔掉并重新创建的构建工件,但您也可以在那里存储更多。以这种方式陈述它并不能真正公正地解释它实际上能做什么

    • 还是巧克力是更好的选择
    这不是与Artifactory竞争的选项。巧克力包装可以存储在NuGet类型存储库中的Artifactory(Pro)中。二进制文件要么在巧克力包中,要么在二进制/原始存储库中

    Artifactory是一个软件包存储库,Chocolate是Windows的软件包管理器(软件管理和部署)

    据我所知,我们需要从我们的第三方工具和库中创建巧克力包。在哪里: 这些包的来源,例如(.exe、.dll、.zip、.msi)通常驻留在哪里

    • 在UNC文件位置
    • 或者在二进制存储库(如Artifactory)中
    • 使用二进制存储库存储构建时依赖项是正确的方法吗
    您忘记了最常用和推荐的方法:

    • 在包装本身中
    在Chocolate包中,最推荐保存包所代表的二进制文件。这是包的最确定和最可靠的方法

    问题是,您可能将社区包存储库视为打包的一个示例—我们建议不要这样做,因为它不代表,但可能代表5%的包。我们不建议采用这种方法,因为这不是一种可靠的方法

    • 它需要永久驻留在那里,并且每个新版本都会增加存储库的大小
    这是真的,但是Artifactory确实有一种剔除方法(我相信),并且它针对这些类型的场景进行了优化。我们将在上讨论不同商业存储库解决方案的系统需求建议

    • 巧克力包装本身就存在吗?
      • 在UNC文件位置
    他们绝对可以,但请记住权限是如何与文件共享和Windows权限一起工作的-

    • 或者在二进制存储库(如Artifactory)中
    不,那将是Artifactory Pro中提供的NuGet OData存储库。是的,NuGet Artifactory存储库将是一个很好的地方,可以对不同的环境、权限等使用多个repo。任何对您的环境有意义的东西

    • 使用二进制存储库存储构建时依赖项是正确的方法吗?它需要永久驻留在那里,并且每个新版本都会增加存储库的大小