Custom Hosting Solutions
We specialize in building tailored cloud cluster solutions for high-traffic websites that need to accommodate rising visitor volume. The entire cluster was designed with flexibility in mind, we removed every single failure point to provide high availability and redundancy for all cluster segments.
The main features of our cloud cluster solutions include:
- High availability and redundancy in case of a failure
- Each server is placed on a different host machine, ensuring no single point of failure
- Full stack monitoring
- A secured and hardened system
- Easily push changes to production
- Multiple locations worldwide
We monitor each segment of the cluster instances at one minute intervals, so we know of any issues instantaneously. Our monitoring infrastructure uses several types of notifications to all team members, which ensures fast response times.
Apart from monitoring the servers and services, we also monitor the website for any unexpected errors.
All cluster members, apart from being monitored, are also setup to track performance, which enables us to easily determine any bottlenecks.
We utilize automation solutions to help us scale horizontally and add new instances within minutes instead of waiting hours for a new server to arrive and be configured.
Apart from providing high performance solutions, our main focus is on ensuring the high security of the cluster. All cluster communication is done via a private network, leaving only the HTTP load balancer listening on a public network to handle incoming visitors. Our security features include:
- Communication via private network between cluster members
- Public access where needed and access is strictly firewalled
- Web application firewall (WAF) updated on daily basis to newly discovered exploits
- Daily malware scans of website files
- Custom hardened kernel
Custom developed backup system to backup both your files and SQL database providing high retention period ( 30 – 60 days ).
Detailed cluster setup
Cluster consists of several components:
- HTTP load balancer
The entry point. It distributes incoming visitors across the HTTP worker pool to ensure all requests are handled properly and swiftly.
- HTTP worker pool
Consists of two or more HTTP servers which hold your websites files and talk with back-end servers (SQL servers, Memcache, file storage) to handle visitor requests sent by the load balancer.
- Shared File Storage
In order to have a unified storage system where all HTTP worker pool members can add media and website files and remove inconsistencies, we utilize the Gluster system, which provides us with high availability and redundancy. The shared file storage consists of a minimum of two servers which mutually replicate your data. In case of a failure of one server, the other will serve the files.
- SQL load balancer
The SQL load balancer handles incoming read and write requests from your application and sends them to the back-end SQL servers. While distributing the SQL queries, it also handles failover in case one of the SQL servers has crashed, providing you with a high availability and redundancy.
- SQL cluster
The SQL cluster starts with a minimum of two servers set to be synchronized at all times. This helps with easier distribution of incoming read queries, removing the load from one server to handle both read and write queries. In case of a failure of one server, the second server will take the lead role and handle both read and write queries until the failed server has returned. This group is expandable to have more SQL servers if needed to spread out the intensive read queries.
- Development server
The development server is moved away from the cluster setup and provides you with a testing playground to develop your website until the changes are ready to be pushed to the production servers. We provide an easy way to synchronize all changes across the HTTP worker pool.
The memcache server, depending on the size of your cache, can be set on the development server or moved to a separate space with which your HTTP worker pool would communicate.