Need advice about which tool to choose?Ask the StackShare community!
AWS Cloud Development Kit vs Google Cloud Deployment Manager: What are the differences?
1. Integration with Cloud Provider Services: The key difference between AWS Cloud Development Kit (CDK) and Google Cloud Deployment Manager (CDM) is the level of integration with their respective cloud provider services. CDK allows developers to define and provision AWS resources using familiar programming languages like Python, JavaScript, and TypeScript. CDM, on the other hand, uses YAML or Python templates to provision resources on Google Cloud Platform (GCP).
2. Language Support: CDK offers a wider range of language support compared to CDM. It supports popular programming languages like Python, JavaScript, and TypeScript, allowing developers to leverage their existing skills. CDM primarily uses YAML for resource definitions, but it also provides some support for using Python templates.
3. Resource Coverage: Another key difference lies in the coverage of resources and services offered by CDK and CDM. CDK offers a comprehensive set of AWS resource types and services, including compute, storage, databases, networking, and more. CDM, on the other hand, is primarily focused on managing Google Cloud resources and may have a narrower range of resource types compared to CDK.
4. Deployment Methodology: CDK follows an imperative programming model, where developers define the desired state of their infrastructure using code. CDK then translates this code into a CloudFormation template, which is used for deployment. CDM, on the other hand, follows a declarative approach, where developers define the desired state using YAML or Python templates, and CDM handles the deployment and provisioning of resources based on these templates.
5. Community and Ecosystem: The CDK has a vibrant and active community, with a wide range of contributions from developers around the world. The community has developed and shared numerous libraries, constructs, and patterns that can be used with CDK. CDM, being a Google Cloud-specific tool, may have a smaller community and ecosystem compared to CDK.
6. Maturity and Adoption: CDK has been available since 2018 and has gained significant traction within the AWS developer community. It has been used in production by various organizations and has received frequent updates from AWS. CDM, although being a mature tool, may have a comparatively lower adoption rate and community support due to its specific focus on Google Cloud.
In summary, the key differences between AWS CDK and Google CDM lie in their level of integration with cloud provider services, language support, resource coverage, deployment methodology, community and ecosystem, as well as maturity and adoption. CDK offers wider language support and a comprehensive set of AWS resource types, while CDM focuses on Google Cloud and may have a narrower range of resource types.
I personally am not a huge fan of vendor lock in for multiple reasons:
- I've seen cost saving moves to the cloud end up costing a fortune and trapping companies due to over utilization of cloud specific features.
- I've seen S3 failures nearly take down half the internet.
- I've seen companies get stuck in the cloud because they aren't built cloud agnostic.
I choose to use terraform for my cloud provisioning for these reasons:
- It's cloud agnostic so I can use it no matter where I am.
- It isn't difficult to use and uses a relatively easy to read language.
- It tests infrastructure before running it, and enables me to see and keep changes up to date.
- It runs from the same CLI I do most of my CM work from.
Context: I wanted to create an end to end IoT data pipeline simulation in Google Cloud IoT Core and other GCP services. I never touched Terraform meaningfully until working on this project, and it's one of the best explorations in my development career. The documentation and syntax is incredibly human-readable and friendly. I'm used to building infrastructure through the google apis via Python , but I'm so glad past Sung did not make that decision. I was tempted to use Google Cloud Deployment Manager, but the templates were a bit convoluted by first impression. I'm glad past Sung did not make this decision either.
Solution: Leveraging Google Cloud Build Google Cloud Run Google Cloud Bigtable Google BigQuery Google Cloud Storage Google Compute Engine along with some other fun tools, I can deploy over 40 GCP resources using Terraform!
Check Out My Architecture: CLICK ME
Check out the GitHub repo attached
Pros of AWS Cloud Development Kit
Pros of Google Cloud Deployment Manager
- Automates infrastructure deployments2
- Fast deploy and update1
- Infrastracture as a code1
- Easy to deploy for GCP1
Sign up to add or upvote prosMake informed product decisions
Cons of AWS Cloud Development Kit
Cons of Google Cloud Deployment Manager
- Only using in GCP1