Like most developers, we think what we are developing is the most important part of our system. Our infrastructure service is the center of the universe; everything else revolves around it. Ok in reality, Viasat’s brand-new satellite broadband service is the main thing, the virtual network is built to support it. But the virtual network is very essential to the whole customer experience and a pathway for Viasat to create a planet-wide broadband network.
In today’s world connectivity has become essential but the traditional service provider networks are very slow to change. The people using the networks learn to adapt to the shortcomings. That is human nature, most humans learn to adapt and work with awkward networks. It’s the same as people demanding for “faster horses” instead of cars from Henry Ford.
Viasat is different, we design and operate our own technology. That allows us to innovate and build products that benefit Viasat and allows us to transfer the benefits to our customers.
Our new ground segment network is the world’s first production end to end virtual network. It is completely run using DevOps methodology. Most other service providers and even people within our organization, think we were crazy to embark on that journey.
Seven Steps to a Virtual Service provider network
Here are the 7 steps to create a ground system for a satellite that is completely virtual in our private cloud.
Step 1: Setting up the hardware
This step isn’t really key to this article, so I’ll just summarize to say that operating our private cloud includes deploying and managing all the equipment we need in our data centers. This step ensures we have all the necessary equipment installed and ready for provisioning.
Step 2: Powering up and base provisioning
We use ZTP (Zero touch provisioning) for all of the hardware in the data center. Everything from the switches to the computers boot off and get the right software (OS) and base configuration from the provisioning servers.
Step 3: Assign devices personality and provision
After the ZTP finishes, the auto-provisioning process starts, this continues for the lifetime of the hardware. Basically, the auto-provisioning agent’s job is to make sure that the configuration on the underlying hardware matches the model.
We use Ansible and our own developed vendor drivers to abstract the vendor specific methods from the actual model.
After this point all of the computes are setup for the IaaS layer install. The routers are connected to the backbone and switches are setup for all of the datacenter connectivity.
Step 4: Setup IaaS layer
The next step is to lay down the IaaS layer – we have our own – ViaStack. It’s a custom IaaS layer that supports a service provider use case of a “transient data center”. I had an earlier blog post that talks about transient data centers : https://techblog.viasat.com/virtual-service-provider-networks/
Step 5: Setup Virtual networking and dynamic service chaining
This is the final stage of infrastructure. Here is where we create the layer that makes virtual networking possible. Some of it is covered in this blog post: https://techblog.viasat.com/building-blocks-dynamic-service-chaining/
After all of the software is installed. We create layers of the network (vnets – Virtual Networks) that connect pieces together.
Step 6: Deploy applications
At this stage – all of our internal as well as vendor apps are ready to be deployed. These range from virtual routers, traffic conditioners to actual Satellite MAC layers.
The applications all do blue/green deployments. Basically, this approach allows a new virtual network application cluster be created while the one is still in service. Then we can choose to bring the new cluster in service in stages. This way we do minimal disruption to our customers.
We also use the concept of network-templates, the same templates are used in all stages of the promotion pipeline.
Step 7: Activate the network – add subscribers
Now the network is ready to run. We can add millions of subscribers to this ground segment. Monitoring is still something I want to cover. It’s a big topic on its own.
Why are networks that are virtual better for customer experience you ask?
Virtual networks allow insertion of new network functions dynamically: It’s like loading apps on your phone to personalize it. Network functions are like apps, some people need a certain set verses other and of course, they always want the latest one.
Allowing new network functions to be dynamically inserted is huge. It allows us to create apps for the network. For example, an app that can optimize the video experience and give our customers virtually unlimited video viewing capability. In the future we will have more apps that allow customers to have more activate participation in their service.
Network virtualization also allows for new levels of stability not possible earlier. We can do smaller upgrades with quick rollbacks if things go wrong. We can do hitless updates during the day vs taking the service down in the middle of the night when our customers are up late binge watching their favorite show.
Having a virtual network means that we can connect devices around the world in a very dynamic fashion. A passenger on an airplane going from the US to Europe can not only get fast internet service all the way but they can get it even when we cross satellite boundaries.