Web Development 701 ~ Serverless
For the third assessment we are to choose a web technology to research and implement. It has to be web related, so one of the things that came up when discussing with my tutor was exploring serverless architectures. I have been exposed to serverless before when I was browsing through /r/opensource and came across OpenFaaS. Before we dive any deeper lets come to an understanding of what we really mean when we are talking about serverless.
“Serverless architectures are application designs that incorporate third-party ‘Backend as a Service’ (BaaS) services, and/or that include custom code run in managed, ephemeral containers on a ‘Functions as a Service’ (FaaS) platform. By using these ideas, and related ones like single-page applications, such architectures remove much of the need for a traditional always-on server component. Serverless architectures may benefit from significantly reduced operational cost, complexity, and engineering lead time, at a cost of increased reliance on vendor dependencies and comparatively immature supporting services.” [source]
That’s quite a lot to decode. The two main points to focus on are BaaS (Backend as a Service) and FaaS (Function as a Service). Though serverless applies to both, they serve different purposes, but overlap in various ways. “BaaS and FaaS are related in their operational attributes (e.g., no resource management) and are frequently used together.” [source]
Now that we have a basic understanding of what serverless means, lets take a look at the pros and cons of serverless architectures.
Pros
- No server management
- Reduced costs
- Scalability
- Quick deployments and updates
- Decreased latency
Cons
- Testing and debugging
- Different security concerns
- Not built for long-running processes
- Performance may be affected
- Vender lock-in risk