How cloud native is your virtual network function?
At Metaswitch, we believe that virtual network functions must be truly "cloud native" if they are to deliver the benefits promised by network functions virtualization (NFV). Cloud native is NFV done right. In contrast, monolithic code ported into virtual machines is, frankly, NFV done wrong. But would you recognize a cloud native VNF if it jumped you in a dark alley? Can't a monolithic code port make a good first impression at superficial software cocktail parties? And is the impact on your business of not knowing enough to make the right choice really that significant? [Spoiler alert: "Yes!"]
Over the coming weeks, I'll be exploring these issues in a series of blog posts. But for those of you from the Netflix generation, who'd rather I just dump the entire season online, up front, then feel free to download and binge read Martin Taylor's excellent new white paper on "The Application of Cloud Native Design Principles to Network Functions Virtualization." In this compelling read, (seriously, and I don't say that about a lot of white papers), Martin makes clear that the defining features of cloud native architectures are:
- Stateless processing - the single most important concept in cloud native architectures. By managing state (in transaction processing systems) across a combination of persistent back-end stores and ephemeral front end microservices, truly cloud native network functions are inherently fault tolerant and can scale without notional limits
- Microservices - breaking down complex applications into small independent processes that communicate through well-understood APIs is key to [service] composabilty, reusability, efficient scaling and ease of deployment
- Open source software - while not a fundamental requirement of cloud native architectures it is "an observable fact that most developers of cloud native applications leverage open source software very effectively"
- Containers - offering a number of advantages over virtual machines, applications that are truly cloud native are written for deployment in containers. Lower (memory and maintenance) overheads, rapid instantiation and a high degree of portability across operating environments results; think easy back-up, scaling, deploying and healing.
- Design for orchestration - the cloud native designer pays close automation to the requirements of automation and orchestration, minimizing the amount of configuration that needs to be injected into each component.
Metaswitch got an early lead on designing cloud native virtual network functions with our Clearwater virtualized IMS core. Contributed to the open source community four years ago, Clearwater has not only become the defacto "test VNF" for NFV MANO (management and network orchestration) and infrastructure (NFVi) solutions/ecosystems, but has also been downloaded for trial, and deployed in live systems, by service providers worldwide. It's this learning and leadership that we are now applying across our entire portfolio, in turn helping network operators to stand up new services in weeks (not months), innovate continuously, modernize their infrastructure and dramatically drop the cost of handling each digital bit. Should be an exciting series, even if you already know how it ends!