Welcome to the client-serverless revolution

0
53

Today’s users expect the entire internet at their fingertips no matter where they are or what device they’re using. But this capability has been difficult for application developers to deliver until only recently. 

During the past several years, smartphones, browsers, and embedded devices have advanced so much that they function as globally distributed, mobile rich clients. They can deliver remote user experiences comparable to what users would experience if they were using a local or high-speed dedicated connection.

This milestone is partly due to the rise of serverless architecture, microservices, and cloud-native services and the way they enable developers to build scalable and dependable web applications anywhere on the planet. Read on to learn more about the origins of client-server architecture and where it’s going in 2021. 

A new rich-client paradigm for app dev

As this trend intensifies, a new paradigm of connected internet applications has come to the forefront. This approach is known as client-serverless computing. It delivers consistently dynamic, interactive application experiences from any smartphone or edge device, no matter where a user happens to be, or where the resources they’re accessing are being served from.

The widespread adoption of rich-client devices and the global availability of distributed cloud services has fueled the client-serverless computing trend even more, but it also demands more from developers. No longer can developers assume that their program code will primarily access databases, app servers, and web servers that are located within a single data center or cloud region. 

Instead, developers must build server-side business logic and markup, as well as the client-side JavaScript that will render the user interface on myriad client devices. They must code applications that are optimized for high-quality, browser-side interactivity over industry standard interfaces such as REST (for remote APIs) or JSON (for data formats).

Fast development of rich cloud apps

Client-serverless has roots in the old-guard, three-tier application architectures that sprung up around PCs and local area networks that connected a client-side GUI to a back-end SQL database. But this new paradigm is much better suited to 21st century multicloud computing platforms. This is because client-serverless:

  • Delivers composable functions at low latency via a consistent, secure, web-native API that can be called from any client application and on a pay-as-you-go basis.
  • Enables applications to be easily served, composed, and consumed on demand from every piece of computing infrastructure anywhere.
  • Allows developers to deploy functions quickly and scalably across cloud-to-edge environments.
  • Ensures that application performance won’t degrade even as the underlying business logic is distributed far and wide.
  • Abstracts away the physical locations and operating platforms from which the back-end application logic is being served.
  • Eliminates the need for programmers to write the logic that manages containers, virtual machines, and other back-end runtime engines to which execution of application logic will be dynamically allocated.
  • Boosts the density, efficiency, and capacity utilization of CPU, memory, storage, and other hardware utilization on the back-end cloud platforms.

No lock-in to any particular serverless computing fabric 

The serverless component of this approach refers to a utility computing model in which the cloud provider dynamically manages the allocation of back-end machine resources for executing application business logic. 

“The rise of the Jamstack architecture (JavaScript, APIs, Markup) has certainly propelled the use of serverless apps and made building these accessible for countless more developers,” according to Evan Weaver, chief technology officer at Fauna, provider of a serverless transactional database. “But there are many other architectures, such as the explosion of microservices, that also make use of this new way of computing. Today’s developer has more options than ever when they decide how to build.”

Client-serverless infrastructure and tools enable developers to build client-serverless cloud apps with many positive features. These applications are generally:

  • Composable: Client-serverless tools leverage internet-compatible APIs to consume back-end functions that are accessed as microservices on SaaS clouds.
  • Flexible: Client-serverless abstraction layers can support development of distributed cloud applications of any scale, complexity, and functionality. Developers can deploy client logic as microservices to server applications, workflow engines, and other infrastructure components.
  • Robust: Client-serverless environments enable development of secure, reliable, stateful, and transactionally consistent applications. Applications use secure databases that are available anywhere within a distributed environment via serverless data APIs.
  • Dynamic: Client-serverless drives adoption of cloud infrastructure that is evolving from the managed virtual machine and container model, with its inherent static provisioning, resource waste, operational overhead, and security challenges. Cloud infrastructure is moving to the API model, which is dynamic, infinitely scalable, and ubiquitous at no operational burden to the customer. Increasingly, API-accessible business functions, such as Stripe payments or Twilio messaging, will be brought into client-serverless environments with no operational lift.

A forecast for growth

All signs point to client-serverless tools and platforms having an outsize impact on IT and the application development world in 2021 and beyond. More enterprises are grounding their cloud application development practices in client-serverless platforms and tools. 

Enterprises are starting to transition over to sophisticated serverless data platforms, serverless compute back-ends such as AWS Lambda and Cloudflare Workers, serverless data warehousing offerings such as Snowflake, and serverless development frameworks such as Next.js and RedwoodJS.

Source