-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Cloud Assembly Specification #956
Copy link
Copy link
Closed
Description
In order to confidently design a CI/CD deployment experience that supports assets and multiple stack ordering constraints, the Cloud Assembly document format needs to be defined, at least in an initial version.
Use-cases
- An arbitrary number of stacks, some of which may be related
- Nested stacks, too
- Embedded support files (for example: Runtime code for Lambda; Static assets to be loaded to S3; Docker Images; CloudFormation documents for nested stacks; AMI baking instructions; ...)
- Some of the support files may be too large to "bundle in", so support for external storage (S3, ...) may be relevant
- Managed build steps (specific build steps for specific asset types (e.g: Python lambda bundle, NodeJS lambda bundle, Docker image, ...).
- Need to consider CodePipeline limits (can be raised, but defaults are quite low & would come in the way of un-capped step count) as well as CodeBuild billing model (aka cost implications of many fast builds versus one slower build).
- Self-contained means it can be digitally signed, and provisioning mechanisms can be configured to refuse handling un-signed or tampered with assemblies.
- Phasing of deployments to honor dependencies between stacks & support files
- Through use of the CDK CLI tools
- Using a CI/CD pipeline
- Re-use of the exact same artifacts in several stacks (in a CI/CD environment, deploy to QA environment, run integration tests, roll forward to production environment)
- Interaction with context (in particular, when doing CI/CD, need to handle missing context correctly).
- Workflows similar to:
- Build assembly, send to QA
- QA tests assembly, signs it if it passes, send to release management
- Release management verifies assembly is signed by QA key, deploys it to production
Remarks
- Phases:
buildthensynthesizethenpackagethendeploy. - The output of a CDK App execution is not the Cloud Assembly, but would describe instructions on how to piece it together.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels