What Is Serverless Computing?
Serverless computing has been dominating the headlines, tech shows, and industry conferences. Even though the idea of ‘serverless’ has been around since 2006, it is a relatively new concept. A lot of people seem to believe that serverless is the natural evolution of computing model. In this article, we will explore key concepts of serverless computing and introduce a solution from Alibaba Cloud called Function Compute, an event-driven and fully-managed compute service.
Evolution in Computing Models
Over the last few decades, Enterprise IT has evolved at a rapid pace, from physical servers, to virtual machines and to containerization technology.
The first generation of computing was based on Von Neumann architecture and employed fixed programs. These programs were usually tightly coupled with the hardware they ran on. As we transitioned to disk-based storage, the operating system became less dependent on the hardware it ran on. However, software applications came to resemble like a “monolith” in which the user interface and data access code were combined into a single program running on one platform. These monoliths were self-contained and any changes needed to the functionality required a huge undertaking. While the operating systems became less dependent on the hardware they ran on, the applications themselves became more dependent on the specific operating system. In early 2000s, if we had to launch a new application, we probably had to plan purchase of a new server first. So in summary, the physical server were the building block of an application.
Then in 2001, virtualization technology started to gain traction as the hardware became commoditized (especially x86 based architecture) and made virtual machines very popular. Hypervisor software, made popular by companies such as VMWare, made it easy to create virtual machines. By running many virtual machines on one physical device, the need to buy physical servers became less and the architectural building block shifted from a physical server to a virtual machine.
While virtualization made it easy to operate machines, virtual disk images were rather large and clumsy, and were not easy to scale as required by the volatile computing workload. Container technology enabled operating system level virtualization and proved to be a much more lightweight alternative instead. Along the way, we saw several other major developments. We ae going to mention some of the key ones.
- In 2009: Heroku, popularized Platform as a Service, enabling a containerized 12-factor application via a buildpack
- In 2010: OpenStack brought together an extraordinary diverse group of vendors to create an open source infrastructure as a service
- In 2011: CloudFoundary, an open source PaaS, along with similar tools, helped accelerate DevOps movement by supporting continuous delivery over the entire application development lifecycle. Cloud Foundry’s container-based architecture ran apps in any programming language over a variety of cloud service providers
- And in 2013: Docker (combined LCX, Union file system and cgroups) created a containerization standard which became an instant hit among the developer community
In summary, the containerization technology made it easy to build and deploy microservices based architecture, enabling further loose coupling and much greater scalability.
Serverless computing is the natural evolution of the computing model, as we explore these concepts in further detail.
Serverless Key Challenges
Many challenges still remain, even with the use of container technology. Some of these include:
- Capacity planning is not trivial. Infrastructure engineers still need to plan ahead for computing resource utilization, such as how many or what size or machine types would need to be configured (CPU, memory and networking or I/O bandwidth requirements). Overestimation can lead to increased costs, and underestimation could hurt the business.
- Machine level auto scaling is cumbersome. In some instances, it may take several minutes to scale out. Management of real time auto-scaling and load balancing takes a lot of planning effort.
- And similar challenges exist around fault tolerance, operations and maintenance.
Some of these challenges can be addressed by many open source and proprietary solutions, however, they still require resource commitment and are not trivial to execute, especially by small and medium sized businesses.
Let’s explore how serverless computing can alleviate some of these challenges.
Serverless architecture, also referred to as FaaS (Functions as a Service) or Backend As A Service, enables the execution of an application via ephemeral and stateless containers; The containers are created right at the moment an event occurs and triggers a need for an action. Thus, it is event driven. Applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment. Serverless does not mean “without a server.” Rather, infrastructure orchestration details are hidden from the user and managed by the serverless platform provider.
Some of key features of serverless technology include:
- Serverless Computing enables Simplified DevOps One of the key advantages of serverless technology is that it enables us to build and run applications and services without thinking about servers. With serverless computing, provisioning, scaling, and management of server details are no longer necessary. Developers can forget about the management of the infrastructure over which the service is executed and concentrate on building business functionality. Serverless can be applied to nearly any type of application or backend service.
- The second advantage of serverless is that it is perfectly suited for microservices based architecture. It also provides us with high level of decoupling between the different services, favoring the development of architectures based on microservices. This greatly facilitates the development of architectures based on continuous rollouts, in addition to simplifying the rollbacks, as needed.
- Third, Serverless technology enables metered billing and we only pay for resources that are actually consumed. Extending that to cost of computing, with serverless computing, we pay only for the computing resources that are actually used. This usually ends up in much lower costs than traditional computing methods.
- High availability becomes automated and built in
The serverless community is growing very fast and we see many web, mobile, and data processing backends that are being built using serverless components. Common use cases that fundamentally leverage serverless approaches include chat bots, BigData computing, machine learning, and internet of things (IoT).
Introducing Alibaba Cloud Function Compute
Alibaba offers all the tools that are needed by the developers in order to start their serverless journey. Function Compute, a core serverless computing product offered by Alibaba Cloud, can dramatically enhance agility and lower operating costs for companies of all sizes, enabling them to better concentrate their investments on business-critical deliverables and outcomes. Besides Functional Compute, many other cloud products, including storage, analytics and messaging are serverless. For example, Object Storage Service (OSS), the first cloud service launched by Alibaba Cloud, is a serverless storage service. Users do not need to care how data is stored on the underlying server, and they only pay for storage resources consumed.
Alibaba Cloud Function Compute is an event-driven and fully-managed compute service. With Function Compute, you can quickly build any type of applications or services without considering management overhead. Function Compute prepares computing resources for you and runs your codes on your behalf elastically and reliably.
Function Compute provides log query, performance monitoring, alarms, and several other features. You only pay for resources actually consumed when running the codes. No fee is incurred for application codes that are not run.
In order to find out more details about Function Compute product offered by Alibaba Cloud, as well as common scenarios utilizing serverless computing, head over to the link.