Sunday, January 12, 2014

ScaleSimple - An Open Source CDN

I am proud to announce that today we are open sourcing our project, ScaleSimple, an open CDN platform. Head on over to GitHub to see all the code. We have been chipping away at this for quite some time and at one point, thought it would be a viable SaaS business. However, running and supporting infrastructure while keeping our day jobs was certainly not an easy endeavor, so we agreed it was time to just open source what we had.

For a little background, the reason we came up with this platform was that we felt the gap in the market between "low end" CDNs and "enterprise" CDNs was too wide. The low end platforms were cheap, and very easy to use, but lacked any substantial feature set or customization. On the high end, the features were rich, but so was the cost. It was not viable for a startup who needed a deep feature set to go to a lot of these enterprise players. Now, maybe we are way off the mark, and the majority of people don't need the flexibility or customization that we envisioned, but either way, we built something. We felt the tools available were mature enough to allow someone to seriously consider having their own CDN Platform.

Our idea was to leverage Varnish, but also build a nice UI around it that allowed people to build very customized rules, without having to muck with VCL. This also gave us hope, that we can build more complicated VCL snippets or even custom VMODs, that would be hidden to the end user with a few drop downs and checkboxes to make things easy. Two examples of this are Token Authorization and GeoIP blocking that we built and are part of the open source code.

As it stands the platform is functional,but needs some love, specifically unit tests.  Not just on the rails/rspec side but also using varnishtest to ensure that all of our rules and new configurations would work using every permutation imaginable. We also need more documentation. Right now there is a fair bit of looking through code to figure out whats going on. We started with some basics, but its not there yet. We also need better first time user "bootstrapping" so that users can get up and running quickly without a lot of fuss. An installer would be amazing. We also need better per install customization, by using things like .env files for the rails app to make per install variables easier to configure.

Now that varnish has all this flexibility with vmods (even more so in the upcoming 4.0) , one of our hopes was that people would now have a place, dare I even say open marketplace, to submit things like vmods and new configuration ideas that would continually enhance the platform. One of the concepts we have in ScaleSimple is "templates", so that you can build a system wide ruleset that can be used to pre-configure new rulesets very quickly. Good examples here are things like wordpress, drupal, etc. It could be tedious to get all the nuances of these configurations right (dealing with cookies, admin login urls, etc) so having a template can really help here. Not to mention an easy to way to easily apply that template to multiple configurations for different hostnames.

We hope that the community finds the platform useful, and we hope to get a ton of activity to truly make scalesimple something great. We personally see a lot of potential to disrupt this space and be incredibly innovative. Please follow us on twitter at @scalesimple for updates to our progress and pull requests are welcome !

Update: made it to front of HN !  Continue the discussion on Hacker News