online website builder

Saitodrom is a modern website builder which allows people without knowledge of programming languages creating professional websites in less than 10 minutes.

Business needs

Online website builder Saitodrom required new software and hardware architecture to support growth requirements. Old platform couldn’t handle increased number of users, websites and huge traffic.

New platform should ensure:

High performance under high load

Easy-to-Scale solution to support further growth

High availability (99,95% SLA)

Other crucial requirement included preserving the core architecture based on Java.

Challenge

The old platform was single host oriented and reached its maximum capacity. The new platform should be based on a distributed architecture to meet load requirements and should be highly available with downtimes avoidance.

The main challenges:

  • Enable distributed architecture preserving the core
  • Build highly available platform
  • Avoid downtimes during updates and unexpected failures

Solution

  • Proxmox High Availability Cluster

Proxmox Cluster is built on 3 physical hosts and ensures high availability functioning of virtual
machines. If the physical host fails the virtual machines running on it are automatically started on one of the remaining cluster nodes

  • Highly Available Storage

Highly available shared storage is built on 2 physical hosts using DRBD, heartbeat and NFS technologies. Only one host acts as an active storage providing read/write access to data that is replicated to the second passive host by using DRBD. If the active host fails it is detected by hearbeat and access to the storage is switched to passive host transparently

  • Highly Available Database

Highly available database is organized by using two physical hosts and MySQL cluster with replication. Interaction with database is performed through HAProxy that provides access to and checks availability of the master database. If the master database fails HAProxy automatically switches to the second database

  • Application Cluster

To support increasing number of users instinctools has built application cluster based on Nginx load balancer and Tomcat web servers. Nginx is used as a high performance reverse proxy, HTTP cache and load balancer. It is based on event-driven, asynchronous architecture that makes it fast, lightweight and robust under high load

The following features of Tomcat Cluster are used to avoid downtime:

  • Session In Memory Replication
    By using in memory replication session information is synchronized across cluster nodes allowing users to continue work transparently even if one of the web servers fails
  • Parallel Deployment
    Effective zero-downtime solution for deploying new version of the system. Users with active sessions can continue to use the old version and new users will be routed to the new one

To ensure overall high availability of the system:

  • single points of failure are eliminated by adding redundancy
  • Zabbix monitoring system is used to monitor the system, detect failures and apply automatic recovery

Results

New scalable and fault tolerant platform allowed the customer to:

  • serve growing demands (new users, websites)
  • increase overall performance (especially under high load)
  • ihave almost zero-downtime service (essential for providing high quality service)

Hardware infrastructure was implemented by using Hetzner hosting provider.

Do you have a similar project idea?

Anna Vasilevskaya
Anna Vasilevskaya Account Executive

Get in touch

Drop us a line about your project at contact@instinctools.com or via the contact form below, and we will contact you soon.