Updated: Nov 1, 2018
By Murali Siddavatam (TipoTapp Founder and CTO)
Don’t know what “Serverless Architecture” is? Please check out my previous post What is Serverless to get the groundwork.
If you are all caught up and thirsty for a deeper dive into the definition of serverless architecture, you’re in the right place.
Serverless architecture has two essential and consistent characteristics: it’s an as-a-service model and it’s always API-first.
Serverless is by nature an as-a-service consumption model The introduction of cloud infrastructures enabled companies to become more efficient and cost-effective in their consumption of IT services.
IaaS and the entire as-a-service portfolio was a similar evolution, and it also helped level the playing field by giving smaller organizations affordable and instant access to the same suite of resources that enterprises had built and maintained and bogarted in-house.
Still, the core business logic for applications running in the cloud required virtual machines. But a serverless architecture like AWS lambda replaces the virtual machines and just runs the code.
So, a serverless architecture retains the same core philosophy of cloud-based, as-a-service IT, but it eliminates the complexities and concerns regarding, scaling, pricing, and compatibility. It’s a flat, straightforward model that leverages and integrates as-a-service solutions in a smarter way that works to the advantage of the user. They can engage any type of as-a-service offering—from database systems to caching to authentication programs—and not have to worry about compatibility or the type of code.
For the database layer, serverless architectures can engage cloud vendors on any part of the full spectrum of database-as-a-service plans, from fully managed to hands-on, and be sure that it stays in sync with their serverless architecture without interruption.
For authentication procedures, serverless architectures can integrate Google or Facebook authentication and get reliable, top-tier, fully-integrated services without having to invest in reinventing the wheel or worry about their system falling short of increased demand.
Other layers of your web solutions may also require other Cloud PaaS services. Caching, for example, can be achieved using AWS MemCache service, and efficient search and complex querying can be achived using AWS CloudSearch, and so on.
Essentially, serverless architecture supports the modern way to operate in the digital world: accessing external as-a-service systems rather than building new capabilities from scratch, and democratizing the whole process so that every user has access to every solution. That includes version control systems, build and release management tools, provisioning solutions, and so on.
Serverless is always an API-first approach Solutions built on serverless architecture must have a clear API strategy in order to consume and expose APIs. This is particularly important for serverless web applications, as the client code running in browser should be interacting with the middleware layer in the backend via APIs using JSON as the transport layer format.
This API-first approach has several benefits:
The complete system is automatically accessible though APIs.
The front end is clearly decoupled from the back end, allowing changes to the user interface layer without needing to modify the core backend logic.
It ensures your applications are capable of consuming external APIs to integrate with other systems.
It allows other systems to invoke your solution APIs with simple authentication methods to support webhooks.
It ensures your solution can consume APIs upon a certain event within the solution.
In summary, serverless architectures should have no virtual machines to manage, should be fully API driven, and should delegate to external services wherever possible.
Did I miss any essential characteristics? Let me know!