Serverless programming will soon replace servers

The end of traditional infrastructure-as-a-service models: this is what the future looks like

Publisher's Note:

This article is penned by Tolga Tarhan, CTO of Rackspace Technology, and was originally published on Forbes.

Ten years ago, running virtual machines (VMs) in the cloud was all the rage. It makes cloud migration relatively easy: companies could simply move the VMs they were already running on their on-premise servers to the servers of an Infrastructure-as-a-Service (IaaS) provider. Companies were able to outsource the maintenance of physical servers, were relieved and benefited from more flexibility and lower costs.

Today nobody creates new applications based on VMs anymore. Instead, two models are used that are more cost-effective, require less maintenance and are more scalable than VMs: containerization and serverless computing. These two models shape the future in computing - not VMs.

The further development of the IT infrastructure does not stop with virtual machines

In recent IT infrastructure history, everything revolves around abstraction. In the 1990s we were still running applications on hardware in physical racks - just imagine! Since then, applications have increasingly been abstracted or detached from hardware and the infrastructure that companies have to manage has continued to shrink.

The IaaS model with the operation of VMs in the cloud is by no means the last word in wisdom. VMs have a few major drawbacks:

  • Different operating systems are used on each VM - this inevitably leads to a certain inefficiency. Even when properly scaled and sized, VMs always have a lot of unused server capacity.
  • When using VMs, companies are still responsible for operational issues such as disaster recovery, high availability and scaling, as well as patching and security.
  • VMs are not particularly flexible and how they work varies depending on the hyperscaler. Thus z. For example, a VM created on Microsoft Azure cannot be migrated to AWS or Google Cloud.

Companies that are still planning a cloud migration with VM migration should think twice. Committing to an inefficient model now will inhibit progress in the future. Instead, companies should consider containerization or a serverless model - even if that requires significant process changes.

Containers and serverless architectures reduce the operational burden and increase efficiency

Containers are the next step in the abstraction trend. Since several containers can be operated on a single operating system kernel, resources can be used more efficiently here than with VMs. The infrastructure required for a single VM is sufficient for a dozen containers.

But containers also have disadvantages. Although they are more space-efficient than VMs, they still occupy infrastructure capacities even in the idle state and thus cause unnecessary costs. Organizations can keep these costs to an absolute minimum by opting for a serverless option.

Serverless models work best for event-centric applications; H. Applications in which the computation requirement is caused by finite events such as B. a user's access to a website is triggered. In the case of serverless models, the company does not have to pay anything for idle times, but is only billed for the milliseconds of computing time required to process requests. Thus, a serverless option is very cost-effective for companies that initially have a low volume and want to reduce the operational effort of scaling up applications.

Some tips for the further development of your IT infrastructure

Moving to containerization or a serverless model requires major changes to the structure and processes of your IT team and a thoughtful approach to the move as such.

Some tips for a successful change to a modern IT infrastructure:

Find out which model is best for your use case

If you have the option to switch to a serverless model, take advantage of it. This IT infrastructure model is currently the most efficient and future-oriented. Serverless models, however, represent a completely new programming paradigm. Implementing such a model is therefore only possible if your team is programming something completely new.

Containers, on the other hand, are the simplest solution for refactoring or platform switching of applications. Kubernetes, the leading container framework, is also widely accepted by hyperscalers. This makes containers the ideal option for maintaining cross-cloud or hybrid portability: The same applications can be operated on-premise and in the cloud.

Think cloud-native

When changing to a modern IT infrastructure, employees and processes are just as important as technology. Traditional IT infrastructure management relies heavily on manual point-and-click solutions. The management of a containerized or serverless infrastructure, on the other hand, is more similar to software engineering: IT teams use code to describe the desired end result and automated systems implement these specifications.

In order to be able to exploit the full potential of the flexibility and efficiency of a modern infrastructure, IT teams have to switch to a so-called DevOps orientation. Procedures from agile software development are applied to infrastructure management. Traditional corporate IT teams include: B. are often strictly separated according to functions. DevOps, on the other hand, takes a more agile approach, in which a team bears complete overall responsibility for an application. Adapting to such a new way of working is essential for the success of your infrastructure change.

Avoid protected third-party solutions

There are many third-party software stacks that claim to make it easier to move to containers or serverless models. However, such “incomplete abstractions” can ultimately often lead to additional work steps and costs. The initial switch may be easier, but at some point your needs will exceed the capabilities of these third party solutions. It is better to do without third-party providers right from the start and instead use open source solutions with active communities - e.g. B. to use Kubernetes or Hyperscaler solutions. The learning curve is a bit steeper, but this approach will save your IT teams a lot of time later.

Don't do everything at once

You don't have to make the move to containers or a serverless model all at once - it's an enormously difficult undertaking. Instead, you can move some services to containers first and leave the rest of your application unchanged. Over time, you can then gradually move more services until the application is fully containerized. This incremental implementation strategy is known as the "Strangler Approach" as the new code slowly "takes the air" of the old one. With such a slow but steady approach, your IT teams also have plenty of time to adapt to new ways of working.

The future in computing

The VM market is unlikely to go away overnight. Too many older systems are still operated on this infrastructure in the cloud. But that doesn't change the fact that containers and serverless models are far more flexible, less maintenance-intensive, easier to automate and more cost-efficient. They are the future in computing and companies shouldn't miss the jump.