Uncategorized

When the World Goes Virtual: Basics of Serverless Computing

While headlines last month were dominated by COVID-19, the world of virtualization showed continued advancement through the release of VMWare's vSphere7 with Kubernetes. The combination of vSphere, VMware's virtualization platform with Kubernetes, an open-source platform for managing container systems is changing the game for modern applications. And, with these changes come questions. We go over the basics of serverless computing here to help you answer those questions and Live Easy, virtually.

Virtual Machines and Containers

Creating and managing business applications means finding the right combination of virtual machines, containers, and serverless computing for your operations. Knowing how each component can be used to optimally organize your virtual enterprise is key.

First, Virtual machines (VMs) are virtual computers, or guests, that run as separate entities on an existing system, or host, like a software would. Many VMs can run on one host server, and each has its own operating system (OS). Running several OS instances simultaneously, however, could slow systems down.

Containers offer a way around this by virtualizing the OS rather than the computer, and managing applications along with everything those applications need to run in one place. By running several single-application user spaces on one OS instance, deployment speed and portability are improved while lowering costs.

Now, serverless computing and FaaS are asserting their place in the growing world of virtualization more than ever. It's just a matter of getting acquainted.

What is Serverless Computing?

Despite the name, serverless computing isn't actually serverless (we're sorry);  it's a model for providing backend services to users so they don't need to worry about server management and maintenance. As Josh Fruhlinger writes on InfoWorld, serverless computing means anything about the hardware or operating system a user's code runs on is managed by the cloud service provider, who allocates only the resources and storage required by the user to execute that piece of code, or function. The user is then charged only for what they use.

BaaS and FaaS

So, what exactly are backend services? In short, application development depends on a frontend, which users see and interact with, and a backend, which includes everything to do with the servers and databases. In other words, Backend as a Service (BaaS) includes everything from cloud storage and database management to hosting and remote updates. Much like BaaS, serverless computing allows users to deploy code and manage the frontend without worrying about the backend. In both cases, says Scott Carey on ComputerWorld, the code execution is managed entirely by the cloud provider.

Serverless computing, however, is about more than BaaS, going beyond database and storage services to include Function as a Service (FaaS). FaaS platforms allow modular pieces of code (microservices) to be executed on the edge, without storing any data. CloudFlare describes this application-building microservice architecture as a metaphorical work of visual art made up of mosaic tiles - the artist can modify one tile at a time. When an application is divided into microservices, developers can write and modify small pieces of code to be deployed by the serverless provider.

Serverless Pros and Cons

Execution of code and server management by a provider demonstrates one advantage of serverless computing whereby developers can focus on building applications without server capacity preoccupations. Outsourcing to serverless providers also allows for quicker deployments; developers can upload, edit, and update pieces of an application without having to upload code to servers or consider backend configuration. Because vendor servers will start, run, and end as required by the user base in a serverless architecture, greater scalability is another advantage. And, since code can be run from anywhere, latency is reduced by running it closer to the user (think edge). Finally, because developers are only charged for what they use, no resources are wasted, and costs are reduced.

Serverless computing does come with its disadvantages. The lack of visibility into vendor backend processes, for instance, makes tasks like testing and debugging more complicated. It also brings up security concerns for applications where more personal or sensitive data is involved. As reliance on a vendor increases, it can then become difficult to switch vendors. In addition, serverless code is not always running, potentially leading to performance issues, or a cold start, for code that hasn't been used in a while. Code run more regularly is kept ready to be activated, known as a warm start. In the end, serverless architecture is least advantageous for long-running processes, due to its pay-per-use basis. These disadvantages should be kept in mind when allocating virtual resources to your enterprise application-building functions (CloudFlare).

Working Together

Enterprise virtualization isn't about deciding between VMs, containers, or serverless computing. Instead, it's about understanding the advantages and disadvantages of each approach in order to establish that optimally efficient balance of services we mentioned earlier. By combining vSphere 7 with Kubernetes, VMWare is doing just that, and we're excited to see what it will bring.

At LeCiiR, we want you to Live Easy, virtually. That's why we offer custom FaaS, BaaS, SaaS (Software as a Service), IaaS (Infrastructure as a Service), VMs and containers with elastic computing (pay as you go) and our unique front-to-back security coverage. For questions on this week's topic or any others, don't hesitate to contact us and leave your comments.

References

CloudFlare, Serverless Computing vs. Containers - How to Choose; What is Serverless Computing? Serverless Definition; What is BaaS? Backend-as-a-Service vs. Serverless; What is Function as a Service (FaaS)?; Why use Serverless Computing? Pros and Cons of Serverless. Acc. 2020.

Josh Fruhlinger, What is serverless: Serverless computing explained. July 2019.

Scott Carey, What is serverless computing and which enterprises are adopting it? August 2019.

Images: Pixabay

Chloé Dupuis

Share
Published by
Chloé Dupuis

Recent Posts

  • Uncategorized

Cloud-Based Video Conferencing Basics: Success in Isolation

Conference rooms are empty as video conferencing continues to boom - on the cloud.  According…

June 9, 2020