The uniqueness of Serverless Computing is its ability to survive without the presence of physical machines and systems software. In the Serverless Computing world, the client subscribes to a set of services including special “APIs and web services” that software developers can use to quickly build useful and scalable architectures for on-demand computing services. Serverless can be considered Function-as-a-Service (FaaS), but the term “Serverless” is more inclusive, indicating a broader range of services available within this ecosystem.
Why Serverless Computing?
Why this sudden buzz about Serverless Computing? Why would enterprises choose Serverless over traditional, server-oriented architectures (SOA)? The TCS white paper Serverless Computing: A Compelling Opportunity for Today’s Digital Enterprise suggests that some inherent advantages of Serverless Architectures that make it an obvious choice for enterprise computing today.
As global businesses deal increasingly with high-speed, variable data, and the governance, regulatory, and compliance requirements tend to intensify, the need for third-party facilities with similar services grows.
On the flip side, geographical limitations, complexity of cross-compatibility, resource availability, and comparative costs may be challenges. While businesses can breathe a sigh of relief by doing away with licenses and the portability problems of in-house setups, some concerns still need to be resolved. For now, Serverless appears to be a readily available solution for web or mobile applications, IoT, Cloud-based BI and Analytics, and automated Cloud services.
The power of Serverless Computing is in the design and provisioning of third-party services made available as Backend-as-a-Service (BaaS) with special functions (FaaS). The DATAVERSITY® article Serverless Computing and Serverless Architecture: An Overview of BaaS, FaaS, and PaaS, gives an overview of components in a typical Serverless setup, which include BaaS, FaaS, and Platform- as- a- Service (PaaS), and describes the differences among them.
The complete reliance on third-party hosts and microservices running with ready-made code indicates a transformative approach to computing. The ultimate objective of Serverless, as the term suggests, is to remove the action from on-premise to hosted facilities like the Cloud, and replace backend operations with packaged functions. It appears that Serverless may give a boost to “real-time testing” in a short time.
Serverless Technology Ecosystem
The Forbes post Serverless Hits A Speed Bump, And Other Predictions For 2018 indicates that Serverless promises to take away the burden of managing “infrastructure,” leaving in-house IT folks free to engage in more software development work, and move more toward AI and other smart technologies. 2017 has witnessed rapid strides in Serverless Computing, though developers have missed out on a hardcore production environment with distributed tooling infrastructure.
Risks and Benefits of Going Serverless
The most apparent risks of Serverless computing include:
- The inability to control the computing infrastructure from the client side, thus limiting the scope of custom solutions. The Cloud Service Provider (CSP) may impose additional restrictions that thwart the applicability of specific use cases. Public Clouds dealing with many clients may further security concerns.
- As the client cannot directly conduct tests on hosted services, compliance may be a major concern. For proprietary tests, some businesses may still prefer a server-based infrastructure.
- If a client wants a CSP switchover, it may be a hassle and time-consuming effort.
- Specific tasks may require other third-party applications, increasing the total cost of provisioned services by a CSP.
Another Forbes article, How to Avoid Common Emerging Anti-Patterns in Serverless Computing, suggests that many popular FaaS services such as AWS Lambda and MS Azure were in use as early as 2008. The article also suggests that an obvious problem in Serverless is that too many function calls may increase the cost of services unless users are careful with their requests.
The benefits of Serverless Computing include:
- Scalability: Most Serverless environments offer auto scalability, making scalable solutions an exact science. Pay as you go.
- Cost Friendliness of Hosted Solutions: The absence of large investments in in-house infrastructure.
- Agility: CSPs are designing systems that deliver solutions in short release cycles.
- Quicker Time to Market: In-house teams do not have to wait for huge investments and the expensive IT setups to convert their ideas into marketable solutions.
- Disaster-Response-Time: Recovery following an outage is almost instantaneous, which reduces costs and efforts.
The Forbes article How Can Enterprises Leverage Serverless Computing Platforms forecasted that FaaS and PaaS can be used for agile testing, drastically reducing the time and cost involved in deploying web-based applications.
The CIO article FaaS: From Server Farms to Serverless Computing points out the main difference between server-based and Serverless Computing is that instead of running in-house code, the businesses will now pay for billable services in the form of functions. However, the most lucrative feature of Serverless computing is that it takes all the worries out of maintaining and monitoring the hardware and associated infrastructure, thus leaving the focus on judiciously requesting FaaS services.
It may take a little getting used to, but ultimately business users will get readymade solutions to their daily business problems without having to worry about complex IT setups — the users will only need to know their front ends. The Serverless adoption rates may be higher among those businesses who have already selected Cloud for BI or other specific needs. The article Tech Primer: Serverless Computing Converging FaaS indicates that the growth of AWS Lambda is directly related to the seamless integration of Serverless with FaaS.
Serverless and PaaS
The PaaS technology promises to return control to the client. The Gartner news release Adding Serverless Computing and fPaaS to Your Cloud-Native Architecture Toolbox explains how technical experts can use PaaS to increase user control in event-driven FaaS environments.
Serverless Computing: Use Cases
The primary applications of Serverless Computing are currently found in image processing, cognitive science such as facial recognition, social content, and task management. Serverless Computing Use Cases: Image Processing, Social and Cognition gives detailed instances of these use cases.
InfoWorld elaborates on how developers can benefit from Serverless Computing by concentrating on deploying the API without having to worry about anything else. As mentioned earlier, this unique computing environment offers impressive auto-scaling features for typical production runs.
Getting Started with AWS Lambda: 4 Use Cases, describes an ideal development environment, where the developer can singularly focus on his application while Lambda takes care of managing all computing resources. This approach not only increases computing efficiency, but also drastically reduces the application development costs. As Lambda imposes restrictions on the use of available resources like the size of application, not all types of applications are suitable for this environment.
Racing towards the Mainstream
As global businesses are racing to reduce operational costs and increase efficiency, they will get more out of their investment dollars from hosted business services. FaaS, Paas, and Baas can jointly deliver business solutions that most businesses have still not tapped into. In Serverless Computing Racing Toward the Mainstream, Rich Sharples, JBoss Middleware Division Senior Director for Product Management at Red Hat, has remarked that the cost and time efficiency of Serverless Computing has the potential to “break down access by tenths of a second.”
Photo Credit: Graphic farm/Shutterstock.com