Serverless Servers

When researching things for a side project I dug into the advancements in services provided by Amazon AWS over the last year.  Amazon clearly has an astounding lead in the market for web service and data center technology.  The direction they are pushing things is to create a big pivot in how we all develop and deploy web applications.

If we examine the history of how development for the web has progressed it looks something like this:

  1. initially very limited programmability. static HTML only
  2. CGI scripts made it possible to execute code for a web request but was very cumbersome and adhoc
  3. PHP bridged scripts and HTML and made web applications possible
  4. Web frameworks: Django, Ruby on Rails and Java EE give developers a way to tackle larger scale problems
  5. Something new

Amazon is poking at a new way to develop server applications that inserts custom code into pre-built services.  This technology stack is still new and not very mature in terms of development methodologies but promising if it can deliver on providing scalability and low cost with ease of deployment.

By avoiding EC2 or similar raw operating system virtual machine services you can relieve yourself of a host of maintenance issues.  Scalability from zero to millions and no concern with managing security patches or hardening network access.

Lets say you want to develop a mixed web and mobile application.  With a database on DynamoDB and API hosted by the Amazon API Gateway, evented processes on Lambda and stream processing with Kenesis and block storage on S3 you have all the components needed to get an application running without configuring a linux server.

Right now the code management and deployment stories is not well sorted out.  But that seems like a problem that can be tackled.  If the efficiencies of this approach are as great as they promise to be then developers will eventually move to it.

If it does work out it could nearly make devops obsolete.