The Road to Containerized Network Functions
Service providers and enterprises are making heavy use of containers and microservices in today's cloud-based applications. They want to do the same for edge-deployed universal CPE (uCPE) using network functions virtualization (NFV).
But one of the limitations of today's NFV is the use of monolithic virtual network functions (VNFs) running in virtual machines (VMs). Users want consistency with their work in data center clouds, and that means cloud-native implementations of VNFs. It means breaking up the monoliths into a microservices architecture and implementing them in containers.
This is a noble goal, but the technology is not yet there. With a few exceptions, today's VNFs are implemented as monoliths running in VMs. But that's OK! There are solutions that support both VMs and containers today, so there's no reason to wait before deploying NFV-based services.
Innovation powered by the right platform
Today's VNFs are suitable for deploying dynamic and cost-effective services right now. They provide a seamless transition from hardware appliances to virtualized solutions. And by picking the right platform, you can gracefully migrate to containerized network functions (CNFs) as they become available. There are already a few CNFs implementing functions such as encryption and test agents, and they can coexist with VNFs.
Do VMs go away?
There's no reason to think so. Containers and VMs can have a yin-yang relationship, as shown in the figure below.
Containers have the advantage of consuming less memory and disk space, and they start faster. Plus, they enable implementation of a microservices architecture.
But VMs provide more isolation -- in terms of security, as well as regarding dependencies on the underlying operating system. Also, VNFs implemented in VMs are ubiquitous, and they are going to be around for a long time.
So we need both VMs and containers, and the right platform supports both. In fact, we see important reasons for VMs and containers to coexist today.
Consider a managed service where an operator wants to use containers for implementing some of the network functions. Let’s also say the end user wants to be able to run their own containerized functions. I have talked to a variety of operators, and they all say they will isolate the end user containerized applications using a VM. This will keep the end user applications separate from the operator's applications running directly on the platform.
The bottom line is that both VMs and containers are important. You can get started with today's VMs and migrate in the future -- without replacing the hosting hardware.
But what about networking performance?
CNFs have advantages over VMs related to size and startup time. But what I’ve seen in tests is that networking performance is similar. Both VNFs and CNFs can use technologies like Data Plane Development Kit (DPDK) and accelerated vSwitches to provide carrier-class performance.
Don't wait -- start now!
If you have a future-proof platform, you don't need to wait. You can start with today's plentiful VNFs and mix in containerized apps as needed. Over time you can migrate the VNFs to CNFs without having to upgrade the hardware. Don't get left behind waiting for tomorrow -- the time to start is now.
— Prayson Pate, CTO, Edge Cloud, ADVA