Computing, without a server 

Serverless Computing…

I find this to be a confusing term.  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.

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– 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, andhttp://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.

This post first appeared in Neil’s blog, Neil’s Thoughts.

QuickStart Storage as a Service


Neil Fagan  Distinguished Architect

Neil Fagan is CTO of the UK Government Security and Intelligence Account in Global Infrastructure Services and chair of CSC’s Architecture & Engineering Community. He is an enterprise architecture expert, leading teams of architects who work on solutions from initial concept through delivery and support. He is co-creator of the CSC Global Architecture (A10) Capability Framework and created the Architecture Best Practice course at CSC, delivering it to hundreds of architects. He has received the Silver President’s Award twice.

See Neil’s full bio.

Comments

  1. Martin Bartlett says:

    Great article Neil. I’d like to highlight that serverless is also an excellent “event” handling architecture, as well as eminently suitable for any request-response interaction. At least two of the big guys you cite (AWS and IBM) promote the linking of API calls coming through their respective gateway products with their “function of demand” offerings.

    Like

  2. Hi Neil.
    Thanks for such a great post.
    I hope cloud computing consulting companies are focusing on server-less computing. Looking for its broad adoption in future.

    Like

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

%d bloggers like this: