Unfortunately, there is no Fast Track. Deploying and managing a distributed infrastructure requires highly advanced knowledge. In this section, we only cover the particularities of the VoipNow distributed infrastructure. We do not cover the fundamentals of service distribution.
If you are not convinced about the distributed deployment, check the single node installation. It is still flexible enough and able to support thousands of users.
Understand our cloud
We have already detailed .
To keep things short, it looks like you need massive scalability that goes beyond the possibilities of a single hardware machine and you still want to have a single system to manage, not multiple autonomous systems.
Before going further with a distributed setup, it is necessary to understand the key elements of our cloud technology.
The Infrastructure represents the physical layer that supports the Cloud and VoipNow. The Infrastructure is made of bare-metal servers, switches, routers, storage systems, etc. It can also be provided by an IaaS service such as the Amazon EC2.
Without infrastructure, it is impossible to run anything, let alone VoipNow.
The current document does not aim at describing how a reliable infrastructure should be built. This is not its purpose. We will only be looking at the container, as the computing entity that runs the software. Since this is a virtual machine, it is highly abstracted and standardized, so we do not care what lies behind it. Basically, it is the same philosophy you adopt when buying many IaaS services.
The Container represents a virtual computing instance, with its own computing power, memory, storage, network addresses and operating system. The Containers are a logical unit, provided by the virtualization software.
- Flexible: they can be started and stopped and resources can be changed (even without reboot), etc.
- Part of the infrastructure: In many cases the only exposed part of it.
- Given at least a network address (only private, only public, or both types).
VoipNow always runs on what we call Service Nodes, or simply Nodes. The Node is part of the software and its scope is to deliver some of the functions of the software. In short, a VoipNow installation on a single computer has a single node that does everything.
Do not confuse the Node with the Container!
The Node is a Software entity, while the Container is an Infrastructure entity. The Node requires a Container in order to run, but it does not require a specific container. It might change during the software lifetime operation and the software will not complain.
VoipNow has a lot of functions. It is a complex software which covers many flows. It is absolutely clear that Nodes must be specialized - some handle database functionality, some handle the web management interface, while others cover signaling for telephony functions, etc. We call such a specialization Role.
So, when you have to manage nodes, you will see that each node is assigned a specific role!
Sounds too complicated?
Think of the Infrastructure and Software like a courier company. Each company has many employees delivering stuff. Some are specialized in delivering to customers, others are delivering between hubs, contractors, etc. The employee is responsible with delivering the packages. Usually one drives a car, but the car might be shared between shifts, the car might break down, etc. It is just a method to fulfill the goal, it can be replaced, taken out of service, etc.
Now that you know more, we want to introduce the new terminology - it is no longer the distributed system that runs on multiple computers, but the distributed system that runs on multiple nodes.
This is what you need in order to run VoipNow in a distributed environment.
It does not matter if you run your own infrastructure or you use a public cloud service. The following conditions must be met:
- You must be able to provision virtual machines easily
- The hardware specifications of the virtual machines must be flexible enough because, based on the role of the node, they might require more CPU power, memory or I/O
- Both public (routable) and private (non-routable) network are required; it is in your best interest to keep some traffic private and to expose only the services your customers will use
As virtualization is necessary, it does not really matter what hardware is used as long as it is supported by the virtualization technology vendor. Naturally, if you use a cloud service, hardware should be the last of your worries.
When running distributed, VoipNow is compatible with the Linux distributions:
- Red Hat Enterprise Linux 6 Update 6 and newer (x86_64)
- Red Hat Enterprise Linux 7 Update and newer (x86_64)
- CentOS 6.6 (x86_64)
- CentOS 7.1 (x86_64)
There are many things you must become familiar with before going further with the deployment. Start in the following order:
- Software Roles: Learn more general things about the Roles in VoipNow.
- Roles Requirements: Review the requirements of each role, what you must do in order to implement each of them.
- Storage: Learn how you should implement storage.
- Start the Installation: Learn how to perform the installation of a distributed environment.
Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution 4.0 International.