-
Notifications
You must be signed in to change notification settings - Fork 20
[DEPR]: Deployment of Blockstore as an independent service #296
Comments
This has been accepted. The removal will happen during the current phase or next phase of the Content Libraries V2 project. |
First of several: openedx/edx-platform#33765 |
Originally, Blockstore was an independent micro-service, accessed via a REST API. Then, we changed Blockstore so it could be installed as an in-process Django app. To support both modes, there existed a blockstore_api wrapper library in edx-platform, with toggles controlling whether the wrapper called out to the micro-service's REST API versus the Django app's Python API. Now that the micro-service Blockstore implementation is deprecated, though, this wrapper library and toggles are just unnecessary complexity. As a first step towards cleanup, we: * remove several toggles and settings (details below); * remove the blocokstore_api wrapper methods which called the REST API and marshalled them back into Python objects; and * remove all test cases which relied on the Blockstore micro-service (and were skippped in CI). In the future, we will remove the content libraries indexer, clean up the remaining bits of blockstore_api, and flatten out all the Blockstore-related test class hierarchies which are no longer nceessary. BREAKING CHANGE: * These Django settings are removed: * BLOCKSTORE_PUBLIC_URL_ROOT * BLOCKSTORE_API_URL * BLOCKSTORE_API_AUTH_TOKEN * BLOCKSTORE_USE_BLOCKSTORE_APP_API * The blockstore.use_blockstore_app_api Waffle switch is removed. * edx-platform will act as it did when the DJango setting BLOCKSTORE_USE_BLOCKSTORE_APP_API or the Waffle switch blockstore.use_blockstore_app_api were enabled. That is, any running Blockstore micro-service instance will be ignored, and the Blockstore package which is installed into edx-platform will be used instead. Ref: openedx-unsupported/blockstore#296
We should also move the django admin tables for the blockstore items to be viewable in the edx-platform django admin. |
@connorhaugh I have this in my CMS admin (local tutor): |
Indexing was removed: openedx/edx-platform#33888 |
@feanil It actually looks like we will be deprecating Blockstore entirely in favor of Learning Core. I will write that up soon and see if there is any dissent. In the meantime, I recommend that you folks stick with the parts of this ticket that are outside Blockstore repo, as the Blockstore repo itself will probably just be archived. I went ahead and crossed out the Blockstore-repo tasks. |
Sounds good, thanks @kdmccormick. Is it worth it to update the tutor plugin or should we just leave that alone as that will get removed as well? |
@feanil I think they're still worth doing because it'll remove some developer complexity as we port V2 libraries from Blockstore to Learning Core in the coming months, but also no big deal if you're not able to get to them. The edx-platform and frontend-app-library-authoring cleanup is the only stuff that I'd say is really important. |
2024 UPDATE: This was Accepted, but is also superseded by: which will remove all of Blockstore and all references to it. |
Superseded by openedx/public-engineering#238 |
2024 UPDATE: This was Accepted, but is also superseded by:
which will remove all of Blockstore and all references to it.
Proposal Date
2023-10-27
Target Ticket Acceptance Date
2023-11-10
Earliest Open edX Named Release Without This Functionality
Redwood
Rationale
It was decided three years ago that Blockstore, an authoring-oriented storage backend, makes more sense as an installable app than it does as an independently-deployable micro-service.
Since then, it has been both possible to deploy it as a service and install as an application, but this dual-capability comes at the high cost of layers of wrapper APIs, mostly-dead caching code, test suites that are 80% skipped, and complicated deployment instructions leading to superfluous tooling code,
Removal
Replacement
Blockstore will continue to exist and be actively maintained as an installable Django app.
Deprecation
No plans to mark deprecation.
Migration
We will not provide any migration instructions because we are not aware of anyone using Blockstore as a micro-service.
If we are wrong and you do run Blockstore as a micro-service, please reach out and we can help you figure out how to merge your Blockstore database into your LMS/CMS database.
Additional Info
No response
The text was updated successfully, but these errors were encountered: