-
Notifications
You must be signed in to change notification settings - Fork 49
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
Only spanner image deployed #1495
Comments
One other point of clarity I think I should make. The docker images that are here are not really meant for "general consumption". Again, we really don't have the bandwidth (or the team) to build this out for general use, so sadly, we have to rely on outside folk to do those improvements. (One other note: for a lot of reasons, we're moving to a Continuous Deployment model for a few projects, including sync.) The good news is that bugs would get resolved a bit faster, but the down side is that we will no longer have set versions. We're looking at ways that we can try to lock things down where and when possible, but aside from commit versions, I'm not really sure there's much else we can guarantee.) |
@jrconlin thanks for the response. I'm offering my bandwidth. I propose to have 3 images, spanner, mysql and the utils one. That way we can actually use a I'll create a PR soon. |
Would be great if Mozilla could put a bit more effort into this project. I love the fact to have an open source self hosted sync server. And now also the mysql client is gone because the docker images where "not meant for "general consumption"." Why are they public in the first place? |
It's always good to know a bit of history when trying to understand something. Sync started off as a firefox add-on. When it was released to production, distributed databases were fairly new, so we kind of built our own out of a bunch of MySQL databases. It turned out you could take one of those servers and stand it up by itself to be your own sync storage system, which a bunch of folk did. Of course, that system was not great, particularly if you had millions of people storing petabytes of data. Servers failed, a lot, which meant that folks data would go away, which was frustrating to them, since they believed that Sync was a backup system when it was never designed to be that. (It was designed to make sure that two or more instances of Firefox had the same data eventually, your "backup" was another copy of Firefox you were syncing.) So we updated things, including the application, which was written in Python 2.7, which was no longer supported as of 2020. We picked Rust because it reduced our costs dramatically. We picked Spanner because it also reduced our costs dramatically, and we could become the backup system that folks presumed we were. All that aside, it's hard to make a solid business case to keep providing MySQL support for the same reason that cars don't come with horse bridals. There's no solid business reason for us to provide it aside from being nice to have. I mean, the Sync Protocol is published, and there's precious little preventing anyone from either creating a new sync server that's compatible with Sync or even taking the Old sync server and updating it to python 3.12. I can pass along a few future pointers for whoever does something like that:
As for why these things are public, they're public because all the code we write is public. We clearly need to do a far better job documenting things so that folk don't make bad assumptions, but it can be hard to do that when folk come in with their own sets of assumptions. |
Fair enough, but then this should also be described in the documentation. As a user of this software, I instinctively assume that a Dockerfile in the repository and an image on Docker Hub exhibit a certain degree of stability (I understand the software is at version 0.15) and are not solely meant for testing. If it's only a test image, it should be clearly labeled as such. |
As per https://github.com/mozilla-services/syncstorage-rs/blame/68d326701505a7c3ae04d59953eb099cf8add4d2/.circleci/config.yml#L322
The repo only publishes the spanner image.
To stay in line with Docker's usage of
latest
I feel like it would be better to have 2 separate packages produced,syncstorage-rs-mysql
&syncstorage-rs-spanner
. That way we can publish alatest
tag.If we push it to a single repo the
latest
tag is ambiguous.I'll whip out a PR that assumes this split.
Also, is there any want to convert the CI to GitHub Actions? I would (also) love to take a stab at that.
┆Issue is synchronized with this Jira Task
The text was updated successfully, but these errors were encountered: