代码之家  ›  专栏  ›  技术社区  ›  Jiew Meng

云信息部署应该通过CI/CD完成吗?

  •  1
  • Jiew Meng  · 技术社区  · 7 年前

    通过CI/CD进行云信息部署的良好实践是什么?我目前正在考虑安全和性能方面的问题。


    使用无服务器应用程序可能别无选择?否则它太手工了,无法部署所有的东西

    另一个观察是性能,CloudFormation很少改变,但是如果它是CI/CD进程的一部分,那么无论如何它都需要运行。有没有办法加快速度?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Arafat Nalkhande    6 年前

    一定地。

    只有这样,才能真正实现CI/CD。 考虑一个场景,对于一个特定的版本,您添加了一个消息队列(AWS SQS)。现在,如果您还没有将CycDeCube与Ci/CD集成在一起,那么读取/写入到S/S的代码将进入您的环境,但将无法执行这两个操作,仅仅因为SQL不存在,因为您创建的SqdCube更改不会创建SQL。所以,最终你会有一个半生不熟的环境。

    为了避免这个陷阱,强烈建议您在CI/CD中执行cloudformation

    关于你的担心 例如,如果有人不小心删除了数据库,CloudFormation就会删除它 ,即使使用实际的代码也可能发生这种情况。例如,开发人员输入了一些测试代码来清理数据库,但忘记删除这些代码,而这些代码在生产环境中执行。但理想情况下,这不会发生,因为手动测试、自动测试和JUnits都有保障。因此,在类似的上下文中,将Cloudformation视为任何其他代码(实际上,Cloudformation最好描述为 基础设施作为代码 )应该彻底测试。要查看单元测试Cloudformation的详细信息,请参见 Is there a way to unit test AWS Cloudformation template

        2
  •  1
  •   Rodrigo Murillo    7 年前

    AWS在这里提供了一个最佳实践解决方案:

    https://aws.amazon.com/answers/devops/aws-cloudformation-validation-pipeline/

    解决方案提供了以下介绍:

    > “许多Amazon Web服务(AWS)客户使用AWS CloudFormation将其基础设施作为代码进行管理,并帮助以一种可控和可预测的方式部署AWS资源。DevOps团队通常在发布之前负责验证AWS云信息模板,以确保它们遵循行业最佳实践并满足公司特定的业务和治理要求。这些团队经常利用AWS开发工具,这是一组服务,旨在帮助DevOps专业人员遵循持续集成和持续交付(CI/CD)实践,并创建自己的管道来自动构建、验证和部署代码。”

    推荐文章