React, etc. Tech Stack

React, Flux, GraphQL, Hack, HHVM...? All of this and more!

A Serverless Architecture is just a bunch of Microservices hosted in the Cloud

The technology industry always goes through cycles where a new technology is introduced, adopted and mainstreamed. During the first two steps there is plenty of excitement over the new technology and there's easy money to be made as nobody really knows what it is.

In the beginning of these cycles people are afraid of being left behind so they invest in it. Some of these terms are Cloud, Web 2.0 and REST. Now many in the industry are talking about Serverless Architectures. The term itself is very vague as best and seems to promise a world where you no longer have servers, but Peer to Peer (P2P, a hype in itself a while back) applications.

In reality Serverless Architectures are just a bunch of Microservices that run in the Cloud using Docker or other technologies. Both microservices and the cloud have only recently matured out of the hype state and are now widely used and valuable practises in their own rights.

Microservices is a descriptive name for a strategy where you create a number of stand alone services that do a specific task. The implementation technologies can change dramatically between individual microservices where you might have Java, Python and PHP components all working together, but developed by different teams. The approach is especially valuable for large companies, where teams delivering microservices will treat other teams as customers.

The cloud was for a long time a rather vague promise of what was essentially a scalable virtual machine on a cluster of servers. Since that the market has matured with ready-to-use services, which developers have learned to use. Instead of "spinning up a virtual machine", developers will rather utilize a service such as search or file storage through built APIs. The cloud today is clear cut, with three global infrastructure players in Amazon, Google and Microsoft. On top of some service providers build additional.

A serverless architecture can be thought of as a combination of the cloud and microservices. Instead of developing internal microservices to do specific tasks, companies will select a number of individual services operating online, in the cloud. As a consumer of these you have very little idea of what is happening underneath and are free to focus on the service at hand. In this sense it is a serverless approach as you don't need to worry about the servers.

Using this approach puts more weight on the client applications, such as rich browser based apps built with JavaScript or native smartphone apps. The client now ties all of these services together to create a seamless experience for the user. In a traditional approach you would have a lightweight API / integration platform to handle the integration of these, but with serverless architectures this is no longer the case.

Like anything else a serverless architecture is nothing magical, nor for everyone and in time will find it's place. In essence we're moving more and more towards having three global server computers (Amazon Web Services, Microsoft Azure and Google Cloud Computing) which host simple applications that handle specific tasks like tax calculation, content management or authentication.

It's also worth considering that relying on a bunch of networked services can also lead to a fragile setup with hard-to-debug issues and no central responsible party. Ever tried to get customer service from Google...?

Learn more:

Written by Jorgé on Monday August 8, 2016

Permalink -

« Chakra JavaScript engine from Microsoft coming to Node.js for Mac and Linux - Vue.js, an alternative to Angular and React »