Download Audio: Serverless: A New Paradigm In Web Hosting
Let’s get right into it. What is serverless? Why am I excited about it? And why should you care? Serverless hosting is a new paradigm that turns the way websites and web apps are hosted completely upside down.
This is the appropriate time to throw in a definition. According to Wikipedia, ‘Serverless computing is a cloud computing execution model, in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers. “Serverless” is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers.’ End quote.
That about sums up the entire concept, but if you would like to learn more, please stay with me to the end of this blog post. Maybe one day, you will have a high traffic website for which traditional approaches to hosting will not work for you, without breaking the bank or compromising efficiency. Of course it is always good to be informed of emerging technology trends. You never know when that knowledge may come in handy.
If you ask anyone in the know, web hosting has been traditionally associated with renting out a web server. Those with the knowhow, can of course build and run their own servers, but unless your main business is in web hosting, I would not recommend this.
In the traditional setup, you would get a server with certain fixed specs. Everything from CPU speed and number of cores, RAM memory, and hard disk drive capacity, would be fixed at any particular time.
There are two downsides to having fixed capacity. The first one is that the server may be over provisioned. What this means is that you might have a server that is way too big for the needs of your website or web application. The result is that you are wasting resources which are just lying idle most of the time.
If on the other hand, your server is under provisioned, meaning that you do not have enough server resources to handle the traffic needs of your website or web app, your server will choke, and this will result in a slow or intermittently crashing website or application. And I need not point out that this is bad for business.
These two downsides are exactly why serverless hosting makes sense for mission critical, and high traffic websites and web applications. Serverless automatically scales the server resources on demand: automatically scaling up when traffic demands are high, and doing the opposite when they are low.
As already discussed, serverless ensures that no server resources go to waste, since the servers automatically scale resources to meet demand. What this means in practical terms, is that you only use what you need.
As a result, you also pay for only what you use. The payment model for serverless can be described as pay-as-you-go computing. If website or web app traffic rumps up, you get billed for that high usage and if it goes down, you also get billed accordingly.
There are also indirect cost savings that may result from adopting serverless hosting. Because the underlying technological infrastructure in a serverless environment is handled by the service vendor, there are no operating costs, including: licenses, installation, dependencies, and personnel cost for maintenance, support, or patching. This is a general positive characteristic of cloud services.
In a traditional server hosting setup, manpower, or woman power, is required to manually scale servers up and down, in response to changing resource demands due to traffic. This scenario is completely absent from a serverless set up.
What this means is that developers and operators do not need to spend time setting up and tuning auto scaling policies or systems: the cloud vendor is responsible for scaling the capacity to the demand.
In a traditional hosting setup scaling up or down also results in service interruptions, as there is often some downtime associated with these procedures, when server resources are being adjusted. As cloud native systems inherently scale down as well as up, these systems are known as elastic rather than scalable.
Consequently, small teams of developers are able to run code themselves with no dependence on teams of infrastructure and support engineers, thereby allowing more developers to become DevOps skilled and blurring the distinctions between being a software developer or a hardware engineer. This results in an overall increase in productivity.
Typically the cloud vendor “spins down” the serverless code completely when not in use. This means that if the runtime requires a significant amount of time to start up, it will create additional latency.
Diagnosing performance, or excessive resource usage problems with serverless code, may prove to be more difficult than with traditional server code: there is typically no ability to dig into more detail by attaching profilers, debuggers or APM tools. Furthermore, serverless code often runs in environments that are typically not open source, so it is not possible to precisely replicate performance characteristics in a local environment.
Deciding to go serverless is no easy decision, and a lot of factors have to be taken into consideration. Suffice it to say, Webmobyle is able to offer advice, and host or move your website or application, to serverless hosting if needed.
Clients needing to go to market quicker and build lightweight, flexible and elastic solutions can greatly benefit from serverless technologies.
If your website or application has widely fluctuating traffic and server resource needs, then serverless is your go-to, as opposed to maintaining server blocks that may lie idle or prove to be inadequate most of the time. There are great cost savings to be had as well for such websites or applications.
Of course, serverless does not work for all scenarios. In some cases, when viewed from both a cost perspective and from a system architecture perspective, dedicated or fixed resource servers are a better fit than serverless. For instance, large applications having a fairly constant and predictable workload, or even low traffic websites, may require a traditional setup. And in some cases it may be that the traditional setup is likely less expensive.
Want to hear some more from the Webmobyle Blog? Please