首页 > 解决方案 > 软件构建和部署的最佳实践

问题描述

你们在项目中使用的最佳实践是什么。

目前我正在使用 Ant 脚本为项目构建做一些杂务,然后是 Maven。目前我们没有任何直接的 CI/CD 管道,但我想知道行业是如何发展和塑造的。我尝试了 Gradle,发现它很酷。

因此,如果某家公司要从头开始发展,请详细说明你们认为的最佳实践!

标签: mavengradleant

解决方案


首先,IMO 这个问题并不真正适合 SO 格式,在这种格式中,人们会询问有关具体技术的具体问题。这个问题太笼统了。

关于您在问题中提到的构建工具:

我想说,使用 Maven 和 Gradle,您可以实现下降现代管道,另一方面,您可以开发糟糕的 gradle 和 maven(在某种程度上)脚本,这将成为维护的噩梦。Ant 在这些日期相当过时,所以我不会为新项目选择它。

Ant/Maven/Gradle 只是构建工具,正确的 CI/CD 远不止这些。

根据您的应用程序类型,您可能想了解:

  • 混帐
  • 关系/人工制品
  • Jenkins 或其他 CI 工具
  • 测试——这是一个非常广泛的话题
  • 码头工人
  • kubernetes & 在 kubernetes 上正确部署
  • 正确的日志记录
  • 适当的计量
  • 等等等等

如果您计划在云上运行,那么您显然必须了解您的云提供的内容。

我想强调的最后一个想法是,没有“一个合适的管道”这样的东西——每家公司都会构建最适合他们的 CI/CD 管道。
当然,有些管道是相似的,但它们并不一定要完全相同,这没关系,因为:

  • 有些公司很小有些公司很大
  • 有些一天发布多次,有些选择 1/2 年发布
  • 有些仅适用于 Java(我知道您主要是指问题中的 java 生态系统)-其他也使用其他必须以某种方式协同工作的语言
  • 有些人使用自己的服务器,有些人将应用程序托管在云上(同样,一个去 AWS,另一个去 Google Cloud 或 Microsoft Azure,或者可能是其他云提供商)
  • 等等等等

推荐阅读