Virtualization and cloud computing have become extremely popular these days as tools for reducing infrastructure costs and simplifying application management.
PortaSwitch already provides a "private cloud" environment where all available "physical" servers are installed with a unified copy of the software - so essentially they represent a common pool of resources. Specific application instances are then assigned to run on individual servers in the cloud.
Let's discuss whether installing a PortaSwitch cloud on virtual machines is feasible, and what the actual benefits of using virtualization are in this case.
First, let's take a look at the most commonly cited reasons for migrating to a virtualized environment and see what the implications are in the case of PortaSwitch.
One of the major benefits offered by virtual environments is the option for pooling common infrastructure resources and breaking the "one application to one server" model with server consolidation.
With a PortaSwitch private cloud you can already perform application consolidation: the configuration framework allows you to assign instances (e.g. RADIUS, PortaSIP, web server, etc.) to run on each physical server, and you can run multiple instances of different types on the same server. So it is possible to run, for example, PortaSIP and PortaBilling RADIUS on the same server.
In fact this is more efficient than using virtual machines. For instance, if you have a physical server with 2 quad-core CPUs and 4GB of RAM, and you wish to co-allocate PortaBilling RADIUS and the PortaSIP server on it, you will end up with two virtual machines. This means that there will be two copies of the operating system (and a full set of all background processes for each) running simultaneously. So, assuming for simplicity's sake that OS processes consume one CPU core on average, there will be only 6 cores left for execution of the actual PortaSwitch applications. Likewise, assuming that OS processes require about 250MB of "active" memory, we only have about 3.5GB of active RAM left to split between PortaBilling and PortaSIP applications.
|Using separate virtual machines||Using private cloud instances|
|Available CPU cores||6||7|
As you can see, working with instances within a private cloud allows better resource allocation, since you operate with smaller entities.
VM Environments for Low Load Applications. Virtualization provides tremendous results in the case of combining several different applications with relatively low loads. For example, if a company is running a payroll application, a website for communicating with distributors and an Intranet website for document exchange at the same time, each on separate servers - they can all be migrated to a single server and run in separate virtual environments. There will be sufficient resources available since most of the time these applications are used (and thus generate loads on the server) at different times. And even if someone tries to upload new data to the website while the accountant is running reports - a delay in processing will not be critical. So in this case, the performance of each individual application inside of the virtual machine comes close to equalling the performance of that application on a dedicated server.
Professional Telco Apps Require Full Server Capacity. It is natural for telecommunications services that most of the PortaSwitch applications generate constant processing load, and normally for every transaction (e.g. a phone call) to be processed on several servers simultaneously (an incoming call request is processed on PortaSIP, the request is then sent to the PortaBilling RADIUS server, which in turn generates database activity, etc.). Each physical server has a limited amount of processing power (determined by the amount of CPU and CPU cores, memory amount, frequency of CPU and data bus, etc.), so it only has the capability to perform a certain number of operations per second. Obviously, if we place two or more resource-intensive applications inside of virtual machines on the same physical server, the total processing power will be divided among the virtual machines and each of them will receive just a fraction of it. So with PortaSIP and PortaBilling, when working on separate servers if your network was processing 25 calls per second - then running them on the same server will result in a decreased total performance of 12 calls per second. In this case, saving money on an extra server would come at the cost of reduced performance.
Delays Are Critical for Telco Apps. Also, in our first example about the payroll, website and document exchange applications the delay in processing caused by the simultaneous activity of several applications was negligible. If it takes the accountant a few seconds more to produce his report, or a distributor opens a web page half a second later - nobody is going to notice. In the case of real-time communication delays, a mere fraction of a second will affect the sound quality dramatically. Conclusion
When considering virtualization for PortaSwitch one should think about the following:
- Server consolidation (ability to run several services on the same physical server) is already available in PortaSwitch private cloud, so virtualization is not required (even if used, it will provide results slightly inferior to those achieved with private cloud instance consolidation).
- Since most of the services in PortaSwitch are highly resource-intensive and sensitive to processing delays, combining them on a single server would dramatically reduce their performance. Thus, for a service provider with a more or less sizeable network (so the performance is kept to an adequate level) there will be no reduction in the total amount of servers.
Other benefits of virtualization are dynamic resource management, faster server provisioning, and improved desktop and application deployment. VM is also a better management tool that allows you to improve your server to admin ratio so that personnel requirements are reduced as well.
Automatic Installation and Configuration Process. All of the above are true for a company managing multiple "old-style" applications, where installations of the operating system, the applications and their required libraries, configuration, etc. are separate tasks performed manually. Contemporary PortaSwitch architecture represents something quite different from this archaic approach. The servers are installed from a jump-start installation DVD in less than 10 minutes and the system is fully operational after that. The PortaSwitch configuration server automatically applies all further changes to the application configuration, including the relocation of services from one physical server to another, plus software updates, etc. via its web interface.Conclusion
PortaSwitch provides a unified framework for the provisioning of servers and maintenance of application configurations, so the benefits of using a virtual environment on top of that are minimal.
Virtual environments allow you to relocate a virtual machine from one physical server to another, and this is undeniably extremely useful for running applications that were not designed according to high-availability principles.
Clustering for High Availability. In the case of PortaSwitch, clustering and high-availability are already built-in, plus by clustering PortaBilling or PortaSIP, you don't just enable disaster recovery, but also load-sharing. By using the PortaSwitch configuration framework one can easily relocate the services to another physical server should a server fail.Conclusion
With PortaSwitch, which already has clustering and service relocation capabilities, a virtual environment provides an insignificant increase in terms of availability.
So while it is of course possible to run PortaSwitch in an environment such as VMWare Sphere, one must realize that it will not provide any major reduction in terms of hardware costs or significant improvements in terms of server management compared to the options already available in PortaSwitch.