Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecating the AWS provider (for now) #1477

Merged
merged 2 commits into from Oct 25, 2023

Conversation

javiertoledo
Copy link
Member

@javiertoledo javiertoledo commented Oct 19, 2023

After going through a spike to evaluate the effort required to upgrade the AWS provider to use the CDK v2 (#1452), we learned that in the new version of the CDK, they have entirely dropped the CDKToolkit library support, replacing it with a CLI tool. There's an open discussion about this topic in Github, with a good number of people requesting to bring these APIs back, but at the moment, there seem to be no solid plans of releasing a CDKToolkit library anytime soon.

While we think it is possible to make the required changes and switch to this new way of managing the applications for AWS, this change would force us to rewrite the code and tests for a good portion of our AWS deployment scripts, which is a significant effort to keep using a library that has shown to be unreliable: During the lifetime of this project, several breaking changes have been introduced in minor versions, making applications crash on production, and now in this major version, they just dropped half of their functionality. Relying on this library has become a massive risk to our project because nobody knows what will happen in a v3.

So, given that to keep supporting AWS with the CDK, we're forced to rewrite the AWS provider, we'll instead take this as an opportunity to build a new version based on the Terraform CDKTF, which is a library we've been using for more than two years in the Azure implementation with no issues.

Unfortunately, we cannot prioritize this reimplementation at the moment. Thus, with this change, starting on the upcoming v2.0.0, we're effectively deprecating AWS support until we have the time and resources to bring it back. If you want to champion this change by contributing or sponsoring it, feel free to send your PRs or reach out through any of the official channels on the Booster website

Meanwhile, the AWS provider implementation will remain functional as long as the CDK v1 keeps working. Remember that you can always implement your own provider package to use your own infrastructure with Booster.

Also, remember that Booster's design makes it possible to migrate your applications to a different provider. Your code will work out of the box, so all you need is to migrate the data from DynamoDB to Azure CosmosDB.

@javiertoledo javiertoledo added dependencies Pull requests that update a dependency file dev-experience Developer Experience provider:aws Related to the AWS cloud provider maintainance labels Oct 19, 2023
@javiertoledo javiertoledo self-assigned this Oct 19, 2023
@ghost
Copy link

ghost commented Oct 19, 2023

👇 Click on the image for a new way to code review

Review these changes using an interactive CodeSee Map

Legend

CodeSee Map legend

@sweep-ai
Copy link
Contributor

sweep-ai bot commented Oct 19, 2023

Apply Sweep Rules to your PR?

  • Apply: All docstrings and comments should be up to date.
  • Apply: Do not include large chunks of commented-out code.
  • Apply: Ensure that error logs use traceback during exceptions.
  • Apply: Remove debug logs and print statements from production code.
  • Apply: All the business logic in the 'src' folder for each package should have the corresponding unit tests in the 'test' folder in the same package.
  • Apply: Avoid 'any' types when possible.
  • Apply: If there's a simpler way to express a type, it should be used.

@what-the-diff
Copy link

what-the-diff bot commented Oct 19, 2023

PR Summary

  • Clarification on Supported Cloud Providers
    The documentation was updated in several files to remove the specific mention of Azure as a supported cloud provider. The indication is that the multi-cloud framework can function smoothly regardless of the user's choice of cloud provider. This change brings more flexibility and options to the user without being locked into a specific cloud provider.

  • Package Name Updates
    To align with the infrastructure changes, the package names for the AWS-specific parts of the framework were updated across multiple files in our codebase. The change from framework-provider-aws to framework-provider-aws-infrastructure and framework-provider-aws will prevent any confusion in the future regarding the purpose of these packages.

  • AWS Provider Deprecation Mention
    Changes were made to include a deprecation notice for the AWS provider. The notice was included in provider.ts of the common package and tested accordingly in provider.test.ts. This notice informs users of changes made to the AWS provider service.

  • Default Provider Change
    The default provider for the framework was updated from AWS to Azure. This was implemented in the project.ts of cli package and reflected in its tests as well as several other components of the project. This change is indicative of the shift in focus towards better Azure support in the project.

  • Booster Framework Update
    The README of the repository now clearly indicates the capability of the Booster framework to build optimal, scalable, and production-ready cloud infrastructure for applications irrespective of the cloud provider (Azure or AWS).

  • Azure Key Helpers
    Azure is now the primary focus in the partition-keys.test.ts file of the framework-provider-azure tests. The file's description was accordingly updated from "AWS keys helpers" to "Azure keys helpers".

  • Upgrade Guide
    A handy guide was introduced for users migrating from Booster v1.x.x to Booster v2.x.x. Relevant details include information about support for Node 18, update of Azure Runtime to v4, and deprecation of the AWS provider.

  • Documentation Tweaks
    Several documentation modifications were made to accurately represent the current state of certain features and packages. These changes include specifying the availability of GraphQL subscriptions only on AWS, updating the descriptions of cloud provider support, and including deprecation notices for AWS packages. These updates help maintain accuracy and clarity in our project documentation.

@javiertoledo
Copy link
Member Author

/integration sha=012f0eb06ab226fff294d2febac5ae571e5a9826

@github-actions
Copy link
Contributor

⌛ Integration tests are running...

Check their status here 👈

@github-actions
Copy link
Contributor

❌ Oh no! Integration tests have failed

@javiertoledo
Copy link
Member Author

/integration sha=f589d5fb3609cc9b6bdb1ea007590717c9833366

@github-actions
Copy link
Contributor

⌛ Integration tests are running...

Check their status here 👈

@github-actions
Copy link
Contributor

❌ Oh no! Integration tests have failed

@javiertoledo
Copy link
Member Author

/integration sha=00495942e5f1ea750fefaa04d2fb8b3e504d3ab6

@github-actions
Copy link
Contributor

⌛ Integration tests are running...

Check their status here 👈

@github-actions
Copy link
Contributor

❌ Oh no! Integration tests have failed

1 similar comment
@github-actions
Copy link
Contributor

❌ Oh no! Integration tests have failed

@javiertoledo
Copy link
Member Author

/integration sha=db09490509b077f6ba895c0b3abae12863b9e228

@github-actions
Copy link
Contributor

⌛ Integration tests are running...

Check their status here 👈

@github-actions
Copy link
Contributor

❌ Oh no! Integration tests have failed

1 similar comment
@github-actions
Copy link
Contributor

❌ Oh no! Integration tests have failed

@github-actions
Copy link
Contributor

✅ Integration tests have finished successfully!

@javiertoledo javiertoledo merged commit d0b97c5 into v2.x.x Oct 25, 2023
6 checks passed
@javiertoledo javiertoledo deleted the set-aws-provider-as-deprecated branch October 25, 2023 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file dev-experience Developer Experience maintainance provider:aws Related to the AWS cloud provider
Projects
Development

Successfully merging this pull request may close these issues.

None yet

1 participant