The most important use cases for Cloudify orchestration come from the work we do with service providers and clients to ensure their goals are achieved. This post will delve into one such use case that covers the deployment of complex VNFs on top of OpenStack compute nodes running on an Ethernet Demarcation Device (EDD), in this example, ETX hardware from Rad.
The Basic Idea
ISPs and other network service providers use ethernet demarcation hardware in order to provide various networking and internet services to office buildings. When a building needs this done, a physical EDD is installed at the site and enrolled to the provider’s management system. This connects the building to the edge devices for internet access. Note that in many cases, a technician (a real person) has to arrive at the building and install the EDD and only then can the actual automation and orchestration take place.
From Physical Appliance to Virtual Network Function
The next step in the process is to configure all of these network services. The “old” method, still mainstream, is to use physical boxes, or appliances, for each network function such as a firewall or router. This is much more complex and expensive, especially when you need to add more boxes and scale.
To make this more cost effective, many of the physical boxes have been virtualized into software applications (vRouter, vFirewall, etc) that can be run on much cheaper commodity hardware. This type of application is called a Virtual Network Function, or VNF. When you need to scale, you can simply use software methods to add more virtual machines without spending money on more physical boxes.
The service provider has now decided on the various networks and applications it requires for its offices and has purchased the VNFs to be used for those purposes. Naturally, with many different offices in a building, you now have a lot of configuration to do for each office. Needless to say that separation and isolation of resources are key aspects in these cases, which means (for example) that users from one office must not be able to view and certainly not access nor use other office’s resources.
So, in order to automate the process of deploying and managing, configuring, monitoring, scaling and healing these VNFs from one place, the owner of such environment (for example: an SP = Service Provider) needs a management and orchestration platform/tool.
This is where Cloudify comes in. Cloudify can be used to orchestrate and manage such virtual network services (and, obviously, other services...) from a single pane of glass.
Orchestrating VNFs with Cloudify and OpenStack
One way of deploying VNFs onto the EDD hardware, requires a cloud software to be a middle layer. So in this case, the ETX device has an OpenStack Compute node running on it, which is connected to an OpenStack Controller which is deployed (once) in one of the data centers of the SP.
Cloudify comes with a built-in, out-of-the-box OpenStack plugin and thus it can interact with the owner’s OpenStack account (instance).
Users can then use Cloudify to deploy and configure the necessary VMs and orchestrate the required VNFs (Fortigate, Vyatta, vRouter, etc) based on the offices’ needs.
Many VNF vendors enable their VNFs to provide SNMP (Simple Network Management Protocol) metrics, so in our case, we’ve implemented an SNMP proxy and deployed it in a data center of the owner of the system (e.g. the SP).
This SNMP proxy collects the metrics from the various VNFs and pushes these metrics to Cloudify Manager (which is also deployed in a data centers of the owner).
These metrics are then displayed in the Cloudify Web UI and can be used to trigger actions (such as scaling, healing etc) upon occurrence of specific events (such as high CPU usage, insufficient amount of available memory, high traffic etc.)
Scaling and Managing VNFs
Now, say that you have a new office building in another location, city, country and you need to scale the deployment to that new building. Cloudify can simply add new deployments comprised of any number of VNF instances, with any required topology and configuration, in the new location, in one click.
Cloudify also manages each VNF, which means users can update the settings and configuration of a VNF after it has been deployed - straight from Cloudify UI or from the Cloudify CLI or by using Cloudify Rest API (which is what the Cloudify CLI does).
Now that you have an idea of this important and common use case, feel free to watch the below demo of Cloudify in action orchestrating and managing the Fortigate VNF on OpenStack.