Business Challenge
Our Client wanted to build a Video Calling and Chat application to Support users. Entirely dedicated to Free Calling Application for any mobile platform like iOS, Android to any phone number and Support call all around the globe.
-
To build an analytics platform where they can monitor the load, performance, and other metrics of their asterisk server (cloud-based calling), their chat server.
-
To Track the Users Activity in real time.
Solution Offered
Building a high performance and scalable solution using NoSQL and Big Data
Basic Solution Architecture
Hardware:- From OVH dedicated server
Virtualization:- Using Vmware bare metal
All services:- on VMware Virtual Machines
Basic Environment Production Setup
All server/nodes are running on each separate Vmware virtual machine.
Security: Firewall
Using Pfsense firewall as a security parameter for all outbound and inbound connections.
Load Balancer: Haproxy
Using Haproxy as a load balancer for all our servers to make the running of backend servers smooth for all situations even under high load/traffic.
Backend Server: Using Nginx with Nodejs API
Node.js is easily employed as a server-side proxy where it can handle a large number of simultaneous connections in a non-blocking manner.
Database Server: Couchbase and Mysql
Couchbase is an open-source, distributed multi-model NoSQL document-oriented database software package that is optimized for interactive applications.
Backend PHP Server: Using Nginx with PHP
We used multiple PHP servers provide us High Availability.
Monitoring: Zabbix
Zabbix is open source and ready to use for enterprise-scale monitoring of all things like firewall, VM.
Mail Server
We have an internal mail cluster with more than two nodes because we want High Availability for our mail server.
We need to monitor Three platforms -
-
Asterisk Server Log
-
Chat Server
-
User Events for the Mobile Application on Android and iOS
Different Steps involved in building Real-Time Analytics -
-
Deploying Agents
-
Data Ingestion Process
-
Data Processing - Apache Spark Streaming
-
Data Persistence - Cassandra
-
Rest API - Play Framework, Actor Model in Scala Language
-
Deploying Agents
-
Data Ingestion Process
-
Data Processing - Apache Spark Streaming
-
Data Persistence - Cassandra
-
Rest API - Play Framework, Actor Model in Scala Language