Running an OPNFV Architecture on AWS and Google – Brahmaputra Edition
Setup and operate your own OPNFV Architecture for dev, test, training using Ravello Systems on AWS and Google Cloud.
Author – Iben Rodriguez
Iben is Cloud consulting and Virtualization Architect. He is trained in agile, ITIL, SOX, PCI-DSS, ISO27000. He develops testing solutions for businesses that leverage Cloud Technology. Iben Rodriguez is working to shift software defined network testing functions out of the test lab and closer to the developers and operators.
What is OPNFV Architecture
The Genesis project of OPNFV defines a number of core technologies that are part of the open source NFV platform. These include:
- Openstack with various core projects such as Horizon, Nova, Neutron, Glance, Cinder, etc…
- Open vSwitch
- Integration with an approved network controller
The Brahmaputra release of OPNFV from February 2016 includes support for 4 different “bare-metal” installers for OpenStack integrated with 4 different network controller options.
These installers deploy OpenStack per the Genesis guidelines on hardware you provide in a network test lab or “in the cloud” with various approved network controller options such as:
- OpenContrail from Juniper
There are a number of feature and test projects that use these environments as a platform after it’s built.
If you’re new to OPNFV and DevOps there can be a pretty steep learning curve to get up to speed with all the components needed to get a working platform going and maintain it.
Organizations wishing to participate in the development and testing of OPNFV Architecture should follow the guidelines established by the Pharos project which specify 6 physical servers connected to a Jenkins build server that uses scripts to issue commands to a Jump Box machine. This jump box then installs an Operating System onto the target nodes and then configures the OpenStack, network controller, storage, and compute functions. Preparing the environment and running the scripts can take a few hours even for an automated script and that doesn’t include all the time spent planning and debugging a new installation.
These blueprints we provide are based on the OPNFV Copper Academy work done by Bryan Sullivan from AT&T which provides a design for a lighter weight 4 node design that can run virtual either on premise or hosted “in the cloud”.
Here’s a screenshot of the network layout for the blueprints covered by this blog:
Setup and run OPNFV Architecture lab on AWS and Google Cloud
This series of posts and blueprints is intended to make it easier (and cheaper) to set up an OPNFV test environment. All you will need to get started is a web browser and an account with Ravello Systems. The following 5 blueprint configurations are being made available and shared on Ravello Repo and will be kept up to date on a regular basis as new OPNFV releases are available:
- Builder blueprint with a MaaS controller pre-installed and three empty nodes for bootstrap, controller, and compute. All ready for configuration and OPNFV build out with your SDN choice. It will take a few hours to deploy this blueprint, configure maas, deploy, and produce a working OPNFV customize exactly to your parameters. This is NOT a self-contained blueprint and you must provide ssh keys, github, and complicated file editing. Intended for the more advanced developer.
- Contrail blueprint including an already deployed OPNFV with OpenStack Kilo and Juniper Contrail SDN Controller. Spin up an app from this blueprint and in 20 minutes you will have a working OpenStack environment. Beginner level.
- ODL blueprint including an already deployed OPNFV with OpenStack Liberty and Open Daylight SDN controller.
- ONOS blueprint including an already deployed OPNFV with OpenStack Liberty and ON Labs: ONOS SDN controller.
- NOSDN blueprint including an already deployed OPNFV with OpenStack Tip/Master and no SDN controller.
Insert the URLs for the for the corresponding blueprints from Ravello repo…
What is Ravello Systems
Ravello’s HVX nested hypervisor with overlay networking is delivered as a software as a service. You can run any virtual environment with any networking topology in AWS and Google Cloud without modifications. Using Ravello blueprints, you automatically provision fully isolated multi-tier environments.
Getting Started with the OPNFV Academy Blueprints
Here are the general steps needed to get started with these blueprints and get up and running quickly with one of the pre-built configurations we have provided. See the readme from the github repo for more detailed steps.
- Open a new web browser window and Add this blueprint to your library
- Create an application from the blueprint. Check the Network topology as follows:
- Start the application – wait 10 to 15 minutes for the machines to spin up and be ready
- Once the VM is started you can find the IP address for the MAAS server in the Ravello dashboard.
- Perform a Basic Functional Test to ensure the admin console for each function is working.
- Open a new web browser window to the IP address of the MAAS server.
- Open new web browser windows with the MAAS server IP address followed by the port for the function you wish to use.
- For example – here is the screenshot of the Juniper OpenContrail admin console dashboard.
- OpenStack Horizon
- Login to JuJu GUI admin console to see deployed model corresponding to the blueprint. This screenshot shows the Juju bundle (collection of 32 charms) for OpenStack with OpenContrail SDN.
- Open Daylight DLUX console
- MaaS admin console
After this the possibilities are endless.
- Be sure you join the GitHub Repo to post any issues or suggestions you have.
- You can become familiar with the various tools such as Juju, MaaS from Canonical.
- Try out the other OPNFV blueprints from Ravello Repo.
- These blueprints are small non-HA versions – make your own blueprint with an HA (High Availability) deployment.
- Sign up for an account with the Linux Foundation that will give you access to update the wiki, post patches to Gerrit, update JIRA issues, and use Jenkins.
- Modify and create your own blueprints on Ravello to share them with others.
- A REST API and Python SDK are also available allowing automation of Ravello workloads as part of the product lifecycle for your company.