The rise of mobile and IoT applications is fueling the growth of serverless computing platforms
Mohiuddin Khan Inamdar, Senior Solutions Architect at Xavient Information Systems shares “Servers will always remain and even “Serverless” runs on Servers!! Serverless Computing simply adds another layer atop cloud, so that the developers no more have to worry about servers, not even about the virtual ones. Basically, going serverless allows the developers to shift their focus from the server level to their task level.
In the pre-cloud days, developers were dependent on servers to construct any application. A lot of time and effort, also expansion of budget was needed in setting up such sophisticated servers costing much difficulty for organizations with limited funds.
Since 2014 we’ve seen a humongous shift in computing. With zero upfront costs and very little effort, developers can do without servers through their operating system of choice, load in their applications (custom or open-source), and they’re on track. Serverless computing is a branch of cloud computing which offers computing that offers hands-free custom made packages in accordance to budget. These are pre-programmed codes that can be arranged at any frame of time, eliminating wastage of cost and use of added infrastructure. It involves the basics such as using Google for Work or Office 365 to consuming services on cloud computing providers like AWS Lambda, SQL Server on Azure and Cloud Bigtable on Google Cloud Platform, etc.
- Cost Efficient: Firstly, the pricing model is granular. It occurs at the level of execution runtime for computer code rather than how long an instance is running. So, it can even be more cost-efficient than provisioning an auto scaling group, because even auto scaling groups are typically designed to have underutilization to allow time for new instances to start up. For instance, with Lambda, pricing is based on GB-seconds rounded up to the nearest 100ms, with memory usage varying from 128MB to 1.5GB. SO you pay for the compute that you need.
- Individual Code Level Management: Secondly, management is performed at the level of an individual code-level function rather than at the level of a VM or container. All we are now doing is compiling and zipping or jarring our code, and then uploading it. No puppet / chef, no start / stop shell scripts, no decisions about whether to deploy one or many containers on a machine. It thus, mostly requires zero administration. Many startups are motivated for Serverless because they want to maximize their time with customers and focus on building a better product, not spending their time managing infrastructure and servers, right? That’s exactly what Serverless provides with.
- Resource Utilization and Time Slicing: Breaking down an app into minute functions, fractional code that needs to run based on an event, aids optimal resource utilization. When it’s done those resources are released for the next function to run. This is the big win, being cost-effective. It’s essentially time slicing in the cloud that ensures proceedings on track.
- Economy of Serverless: The Serverless business consists of two distinct elements, data and compute. By going Serverless, companies can significantly reduce costs for compute, and lay emphasis on the value of data, saving up funds for high margin aids, such as event streaming or database services.
Many startups are motivated for serverless because they want to maximize their time with customers and focus on building a better product, not spending their time managing infrastructure and servers, right? That’s exactly what serverless provides with.
Internet of Things & Serverless Computing
One of the most natural applications for Serverless is the Internet of Things. Stripping away all the hype, at their core most IoT devices are essentially sensors combined with some control points.
That said, there are already plenty of use cases today for serverless computing. Both Amazon and Microsoft fully understand this use case, and are pushing hard for people to link the last mile of devices through to their Serverless frameworks. In both cases we see their entire IoT suites being linked up with their Serverless offerings to provide a really easy way to both react to events, and more importantly, push sensor data into data lakes where it can be used for other purposes, such as machine learning for predictive analytics.
Serverless does not come without drawbacks. Outsourcing your set up to a third party vendors is not the safest option always as malpractices and loss of data can affect your output heavily. It may lead to downtimes, loss of functionality, unexpected cost increase, etc. Also, software for various customers might be running on the same machine, raising multitenancy issues such as security, performance, etc. For now, since we are fairly new and still experimenting with serverless, it is thus difficult to switch from one vender to another without any amendments in the current infrastructure. This leads us into another problem i.e. lack of tooling. There isn’t much out there that can manage and monitor functions. The monitoring tools of today are fine tuned for long running apps, not programs that run for a fraction of a second.
While this idea is not entirely new; apart from the rawness of the underlying platforms, the current understanding of Serverless architectures is still very much in its infancy. This style is revolutionizing the application architecture. For now teams are throwing all kinds of ideas at a Serverless platform and seeing what sticks. But at some point, we’re surely going to start seeing strong patterns emerge.