What is a CNF?
The term CNF is becoming commonplace within the telecommunications industry, allowing us to begin a series of conversations about the anatomy of a CNF. Let's start the conversation by asking, "What is a CNF?"
The 21st century has brought many technological innovations. I don't want to talk about smartphones, virtual assistants, or VR headsets. Instead, I want to focus on something more fundamental. How do I deploy an appliance that will provide some service within a telecommunications network? If we go back to the olden days of the 1900s (otherwise known as the 20th century), we deployed appliances as monolithic hardware or software products that we purchased from a telecommunications vendor. I started working for one of the telecommunications vendors that produced these monolithic appliances, and they were slow to evolve, deploy, and expensive.
Fast forward to the 21st century, and Virtual Machines, or VMs, have become more common. As a result, the telecommunications industry started to deploy telecommunications applications as a set of virtual machines. The European Telecommunications Standards Institute (ETSI) named this application, which consisted of a group of VMs, a Virtualized Network Function or VNF.
Fast forward a few more years, and software containers have become a common way to deploy software. ETSI wanted to generalize the term VNF to include all virtualization types. So, from an ETSI perspective, a VNF consists of a telecommunications application composed of a set of VMs or containers. However, the telecommunications industry has taken a different approach and defined a new term, CNF, to represent a telecommunications application composed of containers.
To add to the complexity, CNF has two definitions. One is a Containerized Network Function, and the other is a Cloud-native Network Function. Why two definitions? It's a subtle difference, but Containerized means taking software and packaging it as a set of containers. Cloud-native is a bit different in that it is a design philosophy. The cloud-native design philosophy includes breaking software into smaller parts, using well-defined API for communications, and facilitating scaling of the parts as needed.
So, what is a CNF? A CNF is a telecommunications application designed as a set of small software units and deployed as a set of containers. Unfortunately, the definition is still a bit nebulous. Every vendor can design their CNF however they see fit, but this is the industry trajectory.
To better understand what Cloud Native is, I suggest visiting the Cloud Native Computing Foundation. The CNCF is part of the Linux Foundation, and they focus on helping to facilitate Cloud Native principles to "make cloud-native computing ubiquitous."
Chris Reece, Technologist, Award Solutions, Inc.
Chris Reece works with leading global service providers, transforming networks and empowering individuals in 5G, Virtualization/Containerization, and Machine Learning/Artificial Intelligence. Service providers rely on Chris to paint both the big picture and the business impact of technology and appreciate his enthusiasm for getting into deep, detailed discussions when needed. You may have seen Chris on Award Solutions' YouTube Channel. In addition, Chris is featured at leading telecom conferences worldwide, including MWC, and in publications like IEEE Spectrum and DZONE.
Chris holds a master's degree in Computer Science Telecommunications from the University of Missouri at Kansas City and a bachelor's degree in Computer Science and Mathematics from Cameron University. He also holds four patents in wireless technologies.