-
Notifications
You must be signed in to change notification settings - Fork 109
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
[Tiny EPIC] Support SOLR standalone on ECS #3826
Comments
As a retrospective comment to anyone who wanders onto this ticket (probably future-me 😅), this was a very important effort in the cloud migration of Data.gov apps, specifically https://catalog.data.gov and https://inventory.data.gov. I attempted to link all of the follow-on work that was needed after this pivotal ticket occurred that helped catapult this over the finish line; however, there's probably a few that still slipped through the cracks. I consider this one of my biggest contributions to Data.gov. There were many possible paths for how Data.gov could procure a production Solr setup. Prior to me joining Data.gov, there was work to create Solr as an application on cloud.gov. This was made impractical because CloudFoundry only allows a maximum of 6GB of persistent storage and our Solr instance (as of writing) requires ~22GB. The next step was converting the app into a custom cloud.gov service based on Apache's In terms of how this was implemented, I don't really like it ( ...I know I wrote it ). As a relatively large user and producer of open-source code, Data.gov strives to stick closely with the communities we pull from and give back meaningful contributions as well. The less customization we have, the better we're able to develop, stay secure and remain integrated. Our Solr deployment is very special. It is at the intersection of many open-source communities ... Solr ... CKAN ... AWS ... Terraform ... Cloud.gov ... Brokerpaks ... (and maybe a few more) I feel like there were too many customizations to this code to meet the unspoken requirements of Data.gov. This is code we had to write because we couldn't borrow from something that existed already and it isn't well-abstracted for others to use it to do anything else. I believe this was a necessary evil for the position we were in, but going forward this will likely face a painful death in the future. With more than 3 months of production catalog (and 4 months of production inventory) using this code, I think it's safe to say that it is rather successful. There were a few bugs and concerns after the initial release; but thanks to @FuhuXia's diligence, we've been able to monitor Solr's performance and health and ensure problems are taken care of. From the initial release of the Leader-Follower design, there has not been major changes to the core code or infrastructure. And I take that as a win. I'm leaving this comment as a reminder for me and as counsel for whoever this code may effect in the future. This endeavor was an unwelcomingly large part of my life for almost a year. It wasn't very fun working on this. Did I learn a lot? Yes. Was it challenging? I don't think for the right reason haha, but yes. Probably, the only thing that got me through this was the encouragement, support and guidance that I received from my team. Very warm and hearty thanks to @mogul @jbrown-xentity @FuhuXia 🙇 Follow-on tickets: |
Purpose
We want to a security compliant SOLR, but we're not sure how to do that.
Given above this need, conducting ECS deployment with SOLR8 image is needed to provide factual knowledge on future steps.
Acceptance Criteria
[ACs should be clearly demo-able/verifiable whenever possible. Try specifying them using BDD.]
WHEN 5 days have expired
THEN CKAN can connect to SOLR
AND an index is started
AND the necessary stories are created to implement this in a production way
Background
To work around security issues around supporting EKS in AWS.
We already deployed SOLR8 on EKS in AWS, should be able to be ported to terraform.
Sketch
Feasibility Testing
Make service broker-able
solr-on-ecs
service can provision/bind and unbind/deprovisionsolr-cloud
service can still provision/bind and unbind/deprovisionFollow-on work
Example: Add Leader-Follower paradigm
Example: Boost EFS performance
Max IO
ModeThe text was updated successfully, but these errors were encountered: