Serverless Computing

Serverless Computing…

I find this  a confusing title so start with.  The definition of Serverless computing is that it doesn’t mean there is no Computing Infrastructure – it’s just that the “consumers” don’t have to think about them.  Sounds great – I don’t have to think about under/over capacity, scale, fault tolerant etc etc Really – how is that??

That means it does depend on the application that is being deployed…This also means that the “audience” for this is very much the developer community.  This goes back to the slide we see many times in terms of the “evolution of compute services” i.e. from physical deployments, to virtualisation, to platform as a service, to containers and now serverless – this is part of that journey.

SaaS and PaaS are types of Serverless computing as it abstracts the consumer from the IaaS layer.

The application in a Serverless context is going to be based on a micro-services architecture i.e. a set of decomposed modules that are both small and independent.  This sounds remarkably similar to what we hear from the Container World…?

Still confused?

There are therefore a lot of similarities between a PaaS and Serverless in terms of operational workload  and developer productivity.  The difference though is the behaviour of the workload  for example:

– PaaS – meant for the 12 factor apps (http://12factor.net/)- this is the methodology for building software-as-a-service application

– Serverless – meant for jobs/functions/tasks

And the difference between an app and a job? Some notable differences being:

App – pushed to a live runtime, tends to be long running, scales via elastic instances/containers, distribute via load balancer

Job – uploaded to a ready to execute state, has a discrete start and finish, scales via concurrent processes , distributes via message queue.  This code or function is developed and stored in the cloud in proximity to a related service. They are then triggered by events and APIs that execute the code using metered server resources, allocated, scheduled and maintained by the cloud provider. The resources have no persistent ownership or burden of management to the developer or organisation, and the consumer (code ‘owner’) is charged for the resources consumed and nothing else.

Going to iron.io – they have a great quote:

The Architect’s Dream: Reliable, Scalable and on Any Cloud

Iron.io’s microservices architecture, delivered via Docker containers, enables the world’s most innovative companies to transform large data sets into job processing that drives their revenue.

Conclusion – Serverless is the next generation of deploying apps into Cloud Infrastructures – it doesn’t necessarily replace developers using a PaaS/Containers but allows a greater level of abstraction from both the Infrastructure and the application itself.  It is also worth noting (although obvious I hope) that not all apps can be deployed in this way, As always the best way to learn more about it is to try it –

 

Where can you see it:

AWS Lambda, and http://docs.aws.amazon.com/lambda/latest/dg/welcome.html

Microsoft Azure Functions and soon at Google Cloud Functions.

IBM  Bluemix OpenWhisk development – with source available on the ubiquitous GitHub.

 

 

 

References:

Comparison: http://go.iron.io/lambda-vs-ironworker?utm_source=hs_email&utm_medium=email&utm_content=32703642&_hsenc=p2ANqtz-8kgbAGw4sQhg_WQq1leo9nxIlERdE_ssf0u8qFXIps6j9G3cNkadn9Uo1LAVBblOW7Ct-5HIwthr_pgLyUPDSiBcE7PQ&_hsmi=32703642

https://www.quora.com/What-is-Serverless-Computinghttp://cloudacademy.com/blog/aws-lambda-serverless-cloud/

 

 

 

 

 

 

 

 

Advertisements

One thought on “Serverless Computing

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