Considering a move to the cloud? You’re in good company. More and more organizations are incorporating some type of cloud—public, private, or hybrid—into their IT strategy.
If you’ve been evaluating public cloud services as part of that mix, you’ve probably encountered the debate between a “serverless” approach and the use of containers. From the time Amazon Web Services (AWS) introduced its Lambda serverless offering in 2014, this application deployment model has gained interest among organizations migrating to the cloud. Meanwhile, containerization—offered by Microsoft Azure, Google Cloud, and also AWS—continues to be a popular approach.
But what exactly are the differences between these application deployment models? And what happens if you want to use both?
A serverless approach—sometimes called function-as-a-service (FaaS)—promises to reduce development work and minimize management burdens. Developers produce only enough code for a particular function or task. When a predefined event occurs, the code is executed and the function is performed. For example, function code might be used to automatically back up newly created files or store data from a video surveillance system only when motion is detected.
Even though this serverless model does technically use a server, it does not require developers or administrators to deal with operating systems or virtual machines. There is no need for configuration, capacity planning, or load balancing. Function code runs on demand, using only the amount of resources needed for that task.
Containers offer a lightweight form of virtualization that can simplify development and enhance IT efficiency. While traditional server virtualization uses virtual machines (VMs) that include a guest operating system, containers include only the application along with any libraries or other dependent software that the application needs to run. Multiple containers use a single container runtime engine, which sits on the host operating system.
Containers are typically easier to build and deploy than VMs. Developers can use the open-source Docker platform to streamline the process of packing, distributing, and managing container-based applications. And because containers are portable, self-contained units, with all of the necessary software, they run consistently in a variety of environments.
Like the function code created for serverless environments, container-based applications can be used for single tasks or for task-based parts of larger applications. Or you can run more complex applications within containers, such as a chatbot to support customer service agents.
What If You Want Both?
There are pros and cons to each application deployment model. For example, containers give you full control of the application and how it runs, but they can require more initial development work and maintenance than going serverless. Of course, while serverless might entail less coding, there is still a learning curve. And because serverless is a newer approach, fewer tools are available to streamline processes. Nevertheless, going serverless can help you control costs since you pay only when your function is executing—you can avoid spending money on idle servers.
Many organizations could benefit from both approaches. But managing two types of application deployment models—potentially on two different public cloud platforms—can become complex, especially if that means adopting distinct management tools.
Here’s the good news: It doesn’t have to be one or the other. With the right managed cloud services provider, you can support both serverless and container approaches while avoiding the complexity of using multiple tools.
*The above article appeared recently as part of CenturyLink’s ThinkGig Blog. CenturyLink is just one of your many viable options to support your cloud strategy. Talk to an ATC expert to start considering what options are best for you. Get a FREE consultation here. In the interest of providing CenturyLink its due credit, here is their pitch:
Selecting the Best Execution Venues with CenturyLink
With CenturyLink, you can choose the best execution venue for each application instead of struggling to fit all of your applications into one model or another. CenturyLink is cloud-agnostic. The CenturyLink Cloud Application Manager platform can support serverless and container application deployment models across a full range of public and private cloud environments. We can help you manage function code through AWS Lambda, containers on Microsoft Azure, plus software-defined environments within your own data center walls.
We offer end-to-end services regardless of which models you choose. We can help with everything from cloud migration planning and execution to networking, security, governance, cost optimization, and more.
And importantly, CenturyLink gives you the flexibility to choose which services you want to outsource. You could decide to outsource everything or divide up responsibilities. Schedule a free session with a Hybrid IT expert to explore which option is right for you.