Microservices are modular, distributed software components that can be deployed in the cloud. Network functions virtualization (NFV) is a means of building applications and services that can be deployed with software to run on any industry-standard hardware platform, rather than relying on proprietary infrastructure solutions.
Microservices can be used to build NFV services. The best way to think of microservices is as a way to simplify large, complicated software systems by breaking them into sub-components and distributing them across many computing servers or in the cloud. This allows the applications to be managed and coordinated over a large virtualized infrastructure.
Why Microservices in NFV?
The goals of NFV and microservices are much aligned. Prior to NFV, network applications and services were often deployed using specialized, proprietary hardware and software that could only work in specific installations. This was an inflexible system. NFV allows the software and services to be virtualized, or run in a cloud model, so they can be deployed in any environment with a standardized infrastructure, often referred to as NFV Infrastructure (NFVI). Microservices are also designed for cloud deployment using standard hardware and operating systems, allowing distributed applications to be installed on a cloud infrastructure while maintaining maximum flexibility.
Microservices applications are often more flexible and lightweight, because they can run as a collection of smaller software components that share an operating system (OS) that may be hosting other applications using the same system. This is known as OS virtualization, in which the OS is split up to run many microservices applications at once. The approach is similar to the way server virtualization breaks up a server into compartments for different users using virtual machines (VMs). However, microservices in some cases are more efficient than VMs because they can share an OS, whereas each VM requires its own OS. This means that microservices can launch applications while consuming fewer resources.
Microservices include specific approaches such as Docker and Linux containers, which have been popularized in the Linux world. All of these systems are designed to implement microservices to solve the problems of building large, complex applications operating in the cloud. For example, software development teams can focus on smaller components of the software applications by breaking them into blocks of microservices. Software platforms can also be updated more quickly because they can be updated incrementally, without reloading the entire suite of applications.
Some IT and network architects like the idea of using microservices specifically for NFV for these reasons.
DevOps and Telecom
Microservices are part of the movement known as DevOps, which aims to build a more incremental, dynamic method of building, testing, and deploying software applications. The DevOps method relies on more rapid-fire development and testing, often updating applications weekly if not daily.
DevOps and microservices got their start in the IT world, specifically for use in developing large cloud platforms. But they are not finding their way into the telecommunications market to build services using a cloud model. The most popular method for doing that in telecom world is via NFV.
Large telecom operators such as AT&T and Telefónica have expressed a desire to move toward both NFV and microservices at the same time. AT&T has stated that microservices will play a role in the company’s goal to virtualize 75 percent of its network, primarily using NFV technology, by the year 2020.