So long (PHP) and thanks for all the $fish

The news is out and about, so I figure I should talk about it a little. Mozilla is no longer running PHP internally for Sync, and we won’t be doing further development on the main sync server (if some horrible security hole comes up for the minimal server, I’ll try and update it, but that too is ultimately deprecated).

The reasons for this had nothing to do with the language, and any attempt to turn it into a my-language-is-superior talking point is misguided. PHP was chosen initially because we were low on internal ops resources and it was the fastest thing I could stand up at the time, not as a way of making a language statement. It served us well for years, was reasonably easy to work with, had libraries for everything we needed and continued to perform acceptably even as we grow our userbase quite substantially. It had its quirks (encoding handling is… interesting) though I have yet to find a language that lacks them. On the whole, I’m pretty happy with the original choice and would consider using PHP again in the future.

So why switch? Ultimately, it came down to the network effect. Almost all other server initiatives at Mozilla (such as SUMO and AMO) are in python, leaving sync as a one-off. That meant we couldn’t leverage a whole lot of fantastically talented webdevs when we ran into problems or needed ideas on how to approach new requirements. Our rockstar operational team was happy to work in multiple languages with multiple deployment methods, but there was no compelling technical reason to put them through the hassle. From a dev perspective, python was just another language to learn, and we got some very talented developers on board to help those of us who needed to get up to speed (and python isn’t exactly miles from php, even if some of my early attempts now look a bit cringeworthy).

So yeah, we’re all python now. Congrats to Tarek for doing the heavy lifting to make this happen and to Pete for a last-minute deep-network-voodoo save that Tarek talks about in his blog. In our datacenters, things are humming along nicely.

We’re working to get the python server to be as easy to install as possible for everyone who wants to host their own data. We’re discovering that on most systems, it’s fantastically easy, and for the others, come ask for help on #sync (irc.mozilla.org) and we’ll try to add your system to that list!

About these ads

6 Responses to “So long (PHP) and thanks for all the $fish”

  1. Tarek Ziadé Says:

    > So yeah, we’re all python now. Congrats to Tarek for doing the
    > heavy lifting to make this happen and to Pete for a last-minute
    > deep-network-voodoo save that Tarek talks about in his blog.
    > In our datacenters, things are humming along nicely.

    Yeah, I found a fix that was fixing partially the issue, and Pete found another related patch that fixed all bits, and Richard improved it – https://bugzilla.mozilla.org/show_bug.cgi?id=667846

    Nice team work on a stressful week :)

    > We’re working to get the python server to be as easy to install as > possible for everyone who wants to host their own data. We’re
    > discovering that on most systems, it’s fantastically easy, and for > the others, come ask for help on #sync (irc.mozilla.org) and we’ll > try to add your system to that list!

    We have a how-to for this you can check out:

    http://docs.services.mozilla.com/howtos/run-sync.html

    (and we welcome new contributions in the doc, if you set up your own Sync on a new stack/OS)

  2. So long (PHP) and thanks for all the $fish « Tapestry « Kokrajhar Says:

    […] Reading: So long (PHP) and thanks for all the $fish « Tapestry RSS feed for comments on this post | TrackBack URL | Leave a […]

  3. karlo Says:

    can i ask for htaccess support instead of vhost.conf ? it will be cool to be able to run my own server using a shared webhosting

    cheers

  4. Sync at home – Weave minimal server on microapache | Eating knowledge, sharing thoughts Says:

    […] it is now discontinued, since the php version has been dropped and now Mozilla runs a brand new python sync server. There […]

  5. PsychoWood Says:

    I still find the python server a bit too much for home use…

    Do you happen to know if there are planned features that will break compatibility with the PHP server?

    I’ve just packaged weave minimal with microapache for win32 ( http://psychowood.wordpress.com/2011/10/09/sync-at-home-weave-minimal-server-on-microapache/ ) and I’m willing to maintain it, if the changes are nothing revolutionary :)

    • tobyelliott Says:

      There will be a point where we bump the API, yes. It’s inevitable. There’s just too much stuff we’ve learned over the last couple of years (especially stuff we want to ditch because we no longer need it!). As to when and the scope? I don’t know, but I’d be looking to Q1 of next year as a possibility.

      Of course, if we do announce a 2.0 API, we’ll make sure to have it all specced out publicly and invite comments.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: