Webservice 2013

Modern websites are web services with an html front end. Web services need to be easy to manage and easy to scale. The variety of ways to architect these features is a never ending playground of possibilities. Below is a description of features and current thinking on how to achieve those features.

Growth

Easily scale up or down the group of virtual machines that provides the service. Any one server should be able to be removed without affecting the service. tool: libcloud Add more compute nodes programatically, even across different VPS providers.

All API

There is only the API. The website is an html client that makes ajax calls to it. Ideally the website is static html/css, with javascript logic to make it perform/interact with the user. tools: jquery, dustjs

Resilient API

Rather than handling an HTTP request, the request goes into a queue. Workers on different VMs pull jobs off the queue. Different VMs are united by access to a common distributed datastore. tools: redis, mozilla circus

tags: