本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CI/CD 管道的最佳实践
以下是完全 CI/CD 管道的最佳实践:
-
保护生产环境 — 由于使用 IaC 几乎可以完成账户和环境维护所需的一切,因此必须尽一切努力通过限制控制台和编程访问来保护生产环境。我们建议只允许少数甚至零个用户访问权限。通过部署 IaC 时 AWS CloudFormation,用户需要有限的权限。大多数权限都是通过 CloudFormation 服务角色分配给服务的。有关更多信息,请参阅 CloudFormation 文档中的服务角色和实施最低权限策略。 AWS CloudFormation
-
为每个环境创建单独的帐户-通过为每个环境指定一个单独的帐户,您可以简化部署过程并在账户级别创建精细的访问控制。当多个环境共享资源时,它会降低环境作为一个孤立单元的完整性。最好让环境保持同步和独特。这对于生产环境来说更为重要,因为该账户中的所有内容都应被视为生产资源。
-
将个人身份信息 (PII) 限制在生产环境中 — 无论是为了安全还是免受责任风险,都要尽可能保护 PII。在较低的环境中,尽可能使用匿名数据或样本数据,而不是从生产环境中复制潜在的敏感数据。
-
查看存储库中的代码 — 完整 CI/CD 流程将管道的入口点减少到一个点,并且该单点应该得到保护。因此,建议您在将功能分支合并到主分支之前需要进行多次代码审查。这些代码审查可以由任何合格的团队成员进行,但至少应有一名高级成员进行审查。该代码应由审阅者严格测试。毕竟,修复管道中问题的最佳方法是避免将其引入管道。此外,在合并之前,请务必解决所有审阅者发表的所有评论。该决议可以简单地解释为什么不需要更改,但是解决所有评论是一项重要的额外检查,可以帮助防止将问题引入管道。
-
进行小规模且频繁的合并 — 为了充分利用持续集成的优势,也最好将本地变更持续推送到管道中。毕竟,如果本地环境也能跟上开发环境的步伐,那么保持同步对开发环境更有好处。
有关 CI/CD 管道的更多最佳实践,请参阅《实践持续集成和持续交付》中的最佳实践摘要。 AWS