【问题标题】:Does CDK perform orchestration ? apart from provisioningCDK 是否执行编排?除了供应
【发布时间】:2023-04-07 00:12:01
【问题描述】:

我们使用 CloudFormation/Terraform 在 AWS 中预置资源。

配置是关于创建一个新状态

或

将一种状态转换为另一种状态。

例如:一个状态是一台安装了 apache web x.y 的机器


我们使用 ansible 工具来编排配置

自动化是定义可以自动执行的任务。

可以在单个系统上使用自动化。编排采用自动化并协调多个系统之间的过程。通常是因为一个系统在完成其任务之前可能依赖于另一个系统。没有自动化就无法进行编排。

所以,编排就是解决依赖关系

Ansible playbook 有助于编排


但 AWS CDK 看起来对预置更友好

以下命令

aws cdk init

aws cdk synth

aws cdk deploy

负责在 AWS 中进行配置


对于编排,AWS CDK 是否也负责解决依赖关系?在配置中

【问题讨论】:

标签: ansible amazon-cloudformation provisioning orchestration aws-cdk


【解决方案1】:

CDK 只是对 Cloudformation 的抽象。 Cloudformation 确实在一定程度上提供了编排。但是,如果您指定编排的确切含义,那将很有帮助。 你真正的意思是什么 bij '解决依赖关系'。在这种情况下有点模棱两可。 CDK 是模块化的,并且在某种程度上也具有解析的依赖性。但我认为你指的是别的东西。

【讨论】:

    【解决方案2】:

    是的,您可以在 CDK 应用程序中设置堆栈之间的依赖关系,该应用程序将协调构建堆栈的方式,类似于其他 CloudFormation 编排工具的方式,例如堆垛机。通过 CDK 中的抽象,依赖关系可以是显式的或隐式的。

    CDK 示例存储库中 Python 的跨堆栈参考示例中有一个示例:https://github.com/aws-samples/aws-cdk-examples/tree/master/python/cross-stack-resources/native-objects

    在上面的示例中,基础设施和应用程序堆栈之间存在一个隐式依赖集,其中应用程序堆栈依赖于基础设施堆栈创建的 Lambda 以构建自己的 API 网关。

    一个明确的例子是使用add_dependency(construct) 方法,例如

    shared_stack = SharedStack(
        app,
        "SharedStack",
        stack_name='-'.join( [ app.node.try_get_context('app_name'), 'shared', app.node.try_get_context('env') ] ),
        **splat
    )
    
    lambda_stack = LambdaStack(
        app,
        "LambdaStack",
        stack_name='-'.join( [ app.node.try_get_context('app_name'), 'lambda', app.node.try_get_context('env') ] ),
        **splat
    )
    
    lambda_stack.add_dependency(shared_stack)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2011-03-18
      • 2016-02-27
      • 1970-01-01
      相关资源
      最近更新 更多