Serverlessis becoming a familiar concept for technologists and for businesses on a digital transformation journey. In the article below, HiTechCloud looks at serverless in detail and at how to adopt the platform.
1. A history of serverless deployment approaches
In the era of physical infrastructure, applications were deployed directly onto a VPS's operating system — a model that demanded significant resources to run and expensive hardware investment, along with a long list of problems for administrators to solve, such as backup/recovery, wasted resources, and ensuring the application's availability, scalability, and security.
Virtualization resolved nearly all the problems of the physical model. A range of virtualization technologies emerged and remain in heavy use today, including VMware, KVM, Xen and Hyper-V. Splitting one physical machine into several virtual machines running independent operating systems makes far better use of the available resources. Virtualization platforms also brought features such as flexible scaling, backup and restore, snapshots, live migration and high availability for virtual machines within a physical cluster — all of which make application deployment more dependable than the physical model.
Virtualization remains a leading technology today; vendors have built on it with a wide range of accompanying services, combining them into the public and private clouds we use now. Deploying an application on a VM is nonetheless cumbersome — it involves the OS, the middle layer (libraries, runtimes and so on) and the application itself, which makes version management, deployment environments, packaging and time to market harder for development teams. Containers emerged in response, letting developers package an application quickly into a container image, deploy it very rapidly and run it on almost any operating system. With today's complex architectures and practices — microservices, CI/CD, GitOps — containers have become close to mandatory.
This analysis shows that application deployment technology has changed from era to era along the same lines: convenience, speed, scalability and fault tolerance. That is why containers took off as a technology phenomenon, growing at a CAGR of 30.8% between 2017 and 2022, with further growth expected in the years ahead. Many organizations undergoing digital transformation, or in the middle of building new applications, are taking advantage of microservices and containers to get their products to users faster (optimizing time to market) while substantially reducing infrastructure and operations staffing costs.

Useful as they are for application development, we should recognize that containers in general — and Kubernetes in particular, the tool for managing, scheduling and automating container deployment — still present a number of barriers for users, such as:
- Administration and operations: requires a broad skill set — networking, systems, development, logging, monitoring and more.
- High security requirements for containerized applications.
- Very complex for beginners.
- You need to choose a reputable vendor or deploy it yourself.
- The problem of long-term storage for containers.

2. Serverless – an inevitable trend in cloud computing
That observation points to an inevitable conclusion: a new kind of platform, where application developers focus only on writing code and shaping the business problem while the provider manages the entire infrastructure. That platform is serverless. Serverless does not mean no servers are involved — it is an abstraction over how they are used. The servers are managed by the cloud provider, including infrastructure, data center, network, storage, security, platform and auto-scaling, so developers simply push code and run it, paying only for the resources consumed while a request is being processed. That is considerably cheaper than a cloud VM model or a managed Kubernetes service, both of which incur a monthly cost whether resources are in use or idle.
In the cloud service model, serverless sits in the Function as a Service (FaaS) layer — some sources place it in Platform as a Service (PaaS) instead, since both FaaS and PaaS give users tooling at the application platform layer. Typical PaaS services such as fully managed Kubernetes or a database engine let users deploy an application with a few clicks or a drag and drop, but still require database or Kubernetes knowledge to perform the DBA or DevOps tasks that deployment involves. With FaaS, by contrast, users write only the code that implements their business logic and need almost no systems-level intervention to deploy and run it. The table below compares the defining differences between IaaS, PaaS and FaaS:
| Section | IaaS | PaaS | FaaS |
| Unit of development | Operating System | Application | Functions |
| Provides | VM package with OS | Dev platform | Execute code on-demand |
| Abstracts | Physical server | OS & middleware | Programing runtime |
In today's serverless market the major names are familiar — AWS Lambda, Azure Functions, Google Cloud Functions — all widely adopted and with plenty of published success stories. On the open-source side, platforms with substantial communities include Knative, OpenFaaS, Apache OpenWhisk, Kubeless and Fission. To understand what serverless offers, let us look at some of its core benefits:
- Fully managed: developers no longer have to think about infrastructure. With a serverless service, the cloud provider manages the entire infrastructure, operating system, middleware, programming-language runtime and related modules.
- Event-driven architecture: one of the key elements in microservices for solving decoupling and distribution challenges. Serverless platforms all provide a mechanism to be invoked when a system event occurs (e.g., AWS Lambda is triggered by an event on the SNS notification service).
- Unlimited scale-out: by taking advantage of the cloud provider’s existing infrastructure, users can easily scale an application up in response to sudden load spikes, or down to zero when it is not in use.
- High availability: serverless runs on infrastructure inherited from both the IaaS and PaaS layers, so HA is already built in.
- Less-Ops: Some operational tasks still exist in serverless environments — such as database, debugging, and testing — within the container shell environment. In addition, serverless architecture makes use of accompanying cloud services such as a Database Engine, Message Queue Engine, Monitor/Alert, and Vault Engine, which help minimize operational tasks.
- Cost optimization: you pay only for the resources consumed when a request or event occurs, and nothing while the application is idle. That is far more efficient than running a VM and paying a fixed hourly cost.
- No vendor lock-in: the same developer source code can be deployed on the serverless offerings of different providers. That compatibility also makes it faster to move a service between them.

3. Some typical services built on serverless technology
- Web applications: static websites, web apps, micro frontends, common frameworks such as Flask/Django/Spring/FastAPI,…
- Backend applications: backend apps and services, mobile backends, IoT edge and more
- Data processing: real-time data processing, MapReduce, batch processing, stream processing, ML inference, …
- IT automation tasks: policy engines, infrastructure management and more
Alongside its advantages, not every IT application can be deployed on a serverless platform. The seven criteria below help determine whether your enterprise application is a good fit for serverless:
1.Stateless applications:Resources created while a request is being handled are lost once that request ends. This is worth noting for applications that need to hold session state across a transaction: they must be designed to persist that state to a database or to a cache in the service before the cycle ends.
2. Ephemeral by nature:Serverless runs on containers, so any file data written inside a container is lost when that container stops existing as part of auto-scaling.
3. Language support:Not every serverless platform supports every programming language, so choosing a single platform that covers all the languages your project needs is important.
4. Only maintained while active:Some platforms scale the container count down to 0 when a service has been idle too long. This means that when the application is needed again, it takes time to restart, hurting the user experience. You should design the service to always keep at least one instance ready to receive requests, or run a keep-alive process for the service.
5. Database:Using serverless with a relational database brings significant limitations, because of the database’s concurrent connection limits. NoSQL is therefore often the more advantageous choice in a serverless architecture.
6. Do not allow file system access:Given the stateless and ephemeral nature of serverless described above, applications that read config from the file system or write data to files are not supported the way they are on a Cloud VM.
7. Logging & Monitoring:Each serverless platform has its own log collection mechanism, and monitoring exposes only a limited set of information — which means you cannot make full use of, or integrate with, the tooling you already have.
Developers and businesses can already sign up for and work with serverless technology from international cloud providers such as AWS, Azure and Google Cloud. No domestic cloud provider currently offers a serverless service, so hands-on experience locally remains limited; you can, however, stand up your own local serverless environment on top of the services domestic providers already offer.
Below is a reference example of deploying a serverless platform using OpenFaaS – an open-source project that lets you deploy a serverless system with the core features needed to reach production readiness (https://www.openfaas.com).
- Infrastructure preparation:
o Use a cloud virtual machine to deploy Docker and Kubernetes yourself with tools such as Rancher, Kubespray, kubeadm or OpenShift. This is relatively complex and requires considerable knowledge to deploy and operate effectively.
o Option: use a cloud service that already provides a managed Kubernetes platform – HiTechCloud Kubernetes Engine (VKOS) by HiTechCloud is a typical service; you can read morehere.
- Deploying the serverless service: o See the deployment guide for Kuberneteshere.
o If you deploy on virtual machines yourself, this step also requires you to deploy a load balancer on Kubernetes — MetalLB, Cilium and the like — and an ingress controller such as nginx, Traefik or HAProxy.
o With a managed Kubernetes service, the load balancer and ingress are already integrated at the infrastructure level — you only need to expose the service at the K8s service layer, and the cloud provider fully automates the rest. You can then simply access it via the domain declared in the setup above and try it out.
Today, with the surge of Industry 4.0, a wide range of new technologies has emerged to meet ever-higher expectations. Over the course of this article we have traced the evolution of computing and the inevitable arrival of the serverless model. We have placed FaaS within the cloud service model, set out the benefits and limitations of the platform, and shown concrete applications of serverless in software development.
It is still too early to draw a conclusionserverlesswhether it can fully replace every IT workload in future remains open, because the way serverless executes and stores data is fundamentally not a fit for certain specialized applications, database workloads or compute-heavy applications. That said, as an emerging technology with real advantages — lower infrastructure and operations cost, faster time to market, speed and dependability — serverless has every chance of becoming one of the most widely used technologies in the coming era of microservices and edge computing.