Cloud Assembly Specification
See original GitHub issueIn 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:
build
thensynthesize
thenpackage
thendeploy
. - The output of a CDK App execution is not the Cloud Assembly, but would describe instructions on how to piece it together.
Issue Analytics
- State:
- Created 5 years ago
- Comments:15 (14 by maintainers)
Top Results From Across the Web
vSphere customization specifications in Cloud Assembly ...
The customization specification must exist in vSphere, at the target that you deploy to. Edit the cloud template code directly. The following ...
Read more >Tag: Cloud Assembly - VMwareLab
Cloud Assembly delivers unified provisioning across all clouds through declarative Infrastructure as Code, including AWS, Azure, and VMware Cloud on AWS. With ...
Read more >Cloud Templates - Learn Cloud Assembly
You use the design page to create vRealize Automation Cloud Assembly template specifications for the machines or applications that you want to provision....
Read more >Join VM to AD with vRealize Automation 8 or Cloud (Part 1)
VM Custom Specification (with built-in vRA integration) ... The Cloud Assembly blueprint in vRA 8/Cloud can be as simple as this.
Read more >Getting Started with vRealize Automation 8.0 Cloud Assembly
Request Timeouts - Allows for the specification of a timeout value if more than 2 hours is necessary to complete requests. If a...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@hjander we are still thinking what is the best approach. At the moment, the protocol between CDK apps and the CDK CLI is a proprietary (and ugly) protocol we call the cx-api. It will serve in the short term, but we have a desire to standardize this interface and the cloud assembly was an attempt.
From our conversations with the CNAB folks, it seems like there might be an opportunity to collaborate and define a higher level standard on top of CNAB that will address the requirements of the cloud assembly.
Bottom line: at the moment, we are putting this work on hold, and we will get back to it later, most probably when we do some work on the CLI to clean it up and modularize it.
@hjander asks: