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.
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.
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.
Pure client-serverless technologies such as Jamstack, GraphQL, and the Fauna database have not yet achieved universal adoption among enterprise development professionals. Nevertheless, enterprises use serverless back ends to scale their application infrastructure in a way that is location-independent and completely decoupled from any physical infrastructure.
As the client-serverless revolution accelerates, serverless computing environments will move well beyond their existing focus on compute functions and more into a client-focused emphasis on rich mobile and edge applications. The rise of client-serverless environments will almost certainly spawn the next Uber or Twitter, as small but focused development teams tap into the transformative potential of this new application paradigm.