Speed up CDK Pipelines Deployment

I recently converted a large CDK app to use CDK Pipelines. I LOVE how quickly it was to get working but it generated a UGLY and SLOW pipeline.

  • The large app had ~50 assets, so a Publish Assets CodeBuild was generated for each asset (UGLY).
  • Often the publish step took longer than the deploy because the CodeBuilds were queued and only 5-10 ran at one time.
  • One of our client accounts hit a CodeBuild soft limit :(

Solution

After some Google-fu, I found the solution on the cdk.dev Slack channel!

1
2
3
4
new CodePipeline(this, 'Pipeline', {
// Set this to false!
publishAssetsInParallel: false,
});

By default, publishAssetsInParallel is on, creating the issues listed above. After I turned it off I had immediate gratification!

Results

  • Only 1 CodeBuild was generated to publish assets (prettier).
  • Deployment time for the ~50 asset project was reduced by 20 minutes.
  • On another project, the self-mutate step was reduced from ~60 to 6 minutes!

Your mileage may vary, but it’s a very simple change that you can validate quickly. Good Luck!

Share