We were quick to drop physical for virtual servers but very slow to iterate further, until now. The concept of serverless computing has fascinated me from the moment I heard the term. The idea that you can run a script to perform a simple action and only pay for the processing time is very powerful. In some extreme examples an application could be written that uses no provisioned servers at all, being completely serverless.
This month I got the opportunity to look into this new area of computing when a client project required an innovative way to solve a difficult problem. Our client has an application that runs on dedicated equipment at each of its 500 retail stores around the country. Our brief was to take usage metrics from this application and upload them to a management and KPI portal which was hosted in the Amazon Web Services (AWS) cloud. Rather than run a VPS to host a rudimentary queue system we looked at a S3 and Lambda combo solution.
Our solution was to upload a data file to S3 and then let Lambda automatically kick off a small script to parse the data file and insert it into the correct location in the database tier.
This design was ingenious for two very important reasons, namely it is very cheap to run and manage. There’s no need for a virtual server infrastructure and all the associated gubbins such as load balancing, OS updates or security patches. All of this stuff is managed by Amazon. Lambda allows us to deploy a very simple application and for our client to run in a safe and very cost effective way…it only costs around $0.00000023 every time the application is run!
Well, let’s get one thing straight, despite the name, it does not actually involve running code without servers. This is a code execution model in which the cloud provider fully manages starting and stopping virtual machines as necessary to serve Lambda requests. The service is then billed for by the 100ms of CPU time used. Gone are the costs of running an virtual server infrastructure!
AWS Lambda was the first service of this type on the market, however this year Google launched Cloud Functions and later this year Microsoft will release Azure Functions. These are very similar services and will extend this functionality to their cloud stacks. In addition, Iron.io have launched an On-Premises solution too. Regardless of your provider, I see the benefits as:
Decreased development time. As a software development company we charge our clients by the hour, if we can decrease our development time it saves our clients’ money. That’s valuable!
Scalability. The ability for your app to scale up and down depending upon demand is powerful. Provisioning infrastructure just in case is a big cost that can be mitigates using a serverless infrastructure.
Rock bottom costs. If it was possible to cut the cost of development, support and maintenance why wouldn’t you take it? The days of spending hundreds of thousands of pounds on servers is close to an end!
Improved application speed due to geolocation. Running code closer to the user is always going to increase speed. In the past you needed to run co-located servers all around the world, more recently that required replicating your EC2 instances in different availability zones. The technical and application complexity for this can often become boggling…not anymore. Leave all that stuff to your cloud provider!
Just like the cloud computing revolution a few years ago, the serverless design approach has found its early adopters with startups. The number one reason is affordability, another is scalability, and a third is not having to spend time building your infrastructure. As data traffic continues to grow, expect to see serverless become a standard approach. I have no doubt in my mind, the serverless model is poised to become a staple of the software development space.
Share this post
Apps Are Moving Into A Serverless World – By Ross Cooney
Wednesday 9 November 2016
Even with the rise of cloud computing, the IT world still seems to revolve around servers.
Approaching QA from an IT Support Background – By Paul Heckles
Friday 9 September 2016
Testing is an important part of any product development cycle and this is more the case for software.
Continuous Integration by Graham Newton
Wednesday 7 September 2016
Have you ever found yourself in a situation where you have promised to deliver a project by a certain date, only for it to be broken?
The Gartner Hype Curve 2016 by Dave Sharp
Tuesday 23 August 2016
The latest iteration of the Gartner Hype Curve has been released for 2016.
Brexit and Data Protection – What Happens Now? by Dave Sharp
Tuesday 16 August 2016
The unexpected decision for the UK to Brexit the EU recently will require all businesses to adjust their approach to Data Protection.
7 Measures for Business Cyber Resilience by Dave Sharp
Monday 1 August 2016
There are ever increasing threats to business in cyberspace. DDOS, Ransomware and Phishing to name but a few.
Software Engineering Apprenticeships
Tuesday 19 July 2016
Koios Technology recently saw its latest two apprentices pass their Level 3 Software Apprenticeships.
Software Development Deadly Sins by Dave Sharp
Tuesday 21 June 2016
There are several common syndromes that trouble software development teams and their clients.