Wednesday, August 8, 2012

Mobile Packet Core – Cloud and Virtualization

Off late there has been a lot of buzz around network virtualization. Software Define networks, Openflow, Nicira acquisition by VMware, Xsigo acquisition by Oracle, Wi-Fi virtualization by AnyFi are few instances.

In the similar lines I was wondering if mobile packet core can be placed in cloud and whether EPC can run on virtual servers rather than on custom built hardware.  As far as I know there is quite some work going on in that direction in the industry. To understand better I tried a little exercise to see if the idea is remotely possible.
One of my colleagues has registered to Amazon Web Services and got an instance of Ubuntu in cloud. That means he owns a virtual machine running Ubuntu which can reached from anywhere in the world by an IP address and a set of encrypted key’s. It seems it is very easy to setup an instance of linux using Amazon web services and machine is up and running in matter of minutes. I, myself, have seen over past few years the physical linux boxes in labs were being replaced with virtual machines. So virtualization is not a new thing after all. But providing a virtually instance in cloud, dynamically, and resources (Memory, network cards, processors) being allocated based on the need is something new and interesting. So my colleagues Ubuntu instance was up and running.
I took my GTP code, SGW, that I wrote years ago and ran it on the server.  MME was running on my local machine. Couple of firewall exceptions on server and boom, my local machine and ubuntu on cloud was nicely exchanging the GTP packets. Well, it’s a client server communication you don’t need to be an Einstein to make it work; as long as IP’s are reachable everything is supposed to work. So, here it is my first GTPv2 call over the cloud onto a virtual server.
It does make me believe that mobile packet core can be pushed to cloud and onto virtual machines. There are definite challenges, but over the years it seems to be possible. Imagine bringing up more virtual instances of EPC components during the peak hours and shutting them down during the nights. If there are bunch of machines that are going to send one time information during a particular time of day, we can get the virtual instances ready to take the explosion of messages and bring down the instances once the information is exchanged. Resource can be dynamically allocated based on need.
What do you think of this? Does this seem to be a viable solution?