Taking a look at upcoming Baruwa Enterprise Edition release 2.0.7 Part 3

March 18, 2015 at 12:00 PM | categories: 2.0.7, Baruwa, Releases, Baruwa Enterprise, BaruwaOS, Baruwa Enterprise Edition

We will be releasing Baruwa Enterprise Edition version 2.0.7 on Monday 23rd March 2015.

This update has greatly improved the clustering functionality. In the past the documentation of Baruwa Enterprise Edition clustering was not up to scratch. This has been fixed in this release.

The article is part of a series introducing the features available in Baruwa Enterprise Edition release 2.0.7. To read the other articles in this series go to https://www.baruwa.org/blog/category/2.0.7/

Clustering in Baruwa Enterprise Edition

Baruwa is capable of running in a cluster. Full Baruwa functionality is available from any member within a Baruwa cluster and all cluster members have equal status. This allows you to provide round robin access either using Load Balancers or DNS configuration.

All cluster profiles are supported by BaruwaOS and baruwa-setup. This greatly simplifies configuration.

Clustered Topologies

The supported clustered topologies are described below.

Distributed Backend Distributed Frontend

In this topology all the backend components are each installed on standalone systems and the frontend components are also installed on standalone systems. This solution is the recommended for very large environments as it performs better and scales out and in easily.

/imgs/shots/cluster-distributed-backend-distributed-frontend.png

Distributed Backend Hybrid Frontend

In this topology all the backend components are each installed on standalone systems and the frontend components are combined on to a node. Scaling is achieved by adding additional frontend nodes.

/imgs/shots/cluster-distributed-backend-hybrid-frontend.png

Single Backend Distributed Frontend

In this topology all backend components are installed on a single system and the frontend components are each installed on standalone systems. Scaling is achieved by adding additional frontend nodes.

/imgs/shots/cluster-single-backend-distributed-frontend.png

Single Backend Hybrid Frontend

In this topology all backend components are installed on a single system and the frontend compontents are combined on to a node. Scaling is achieved by adding additional frontend nodes.

/imgs/shots/cluster-single-backend-hybrid-frontend.png

System Profiles

Baruwa Enterprise Edition can be installed on a standalone server or distributed with various components on different servers. A distributed setup is required if you want to run a cluster.

The available cluster system profiles are described below.

Backend System

This setup installs all the backend components on to one server, the backend components that are installed are:

  • Database Server
  • Message Queue Server
  • Search Index Server
  • Cache Server

This setup can be used with a clustered setup of several nodes. You have to setup one server as a backend system in a basic cluster setup.

Web and Mail System

This is a frontend system it provides the mail and web interfaces, mail is delivered to the server and at the same time it serves as the web interface for both administration as well as end user access. This system requires a backend system or distributed backend systems. You can have several of these nodes scaling up or down as demand grows or drops.

Mail System

This is a front-end system that is dedicated to processing mail, it does not provide a web interface for administration as well as user access. You setup this kind of system if you want dedicated servers processing mail only. You can have several of these nodes scaling up or down as demand grows or drops.

Web Interface System

This is a front-end system that is dedicated to providing web interface access for administration as well as user access. You setup this kind of system if you want dedicated servers providing only web access. You can have several of these nodes scaling up or down as demand grows or drops.

Search Index System

This is a backend server in a distributed system, it provides the backend indexing functionality. You setup this profile if you want a dedicated server providing search indexing.

Database System

This is a backend server in a distributed system, it provides the backend database functionality. You setup this profile if you want a dedicated server providing database functionality.

Message Queue System

This is a backend server in a distributed system, it provides the message queue functionality. You setup this profile if you want a dedicated server providing message queue functionality.

Cache System

This is a backend server in a distributed system, it provides the cache functionality. You setup this profile if you want a dedicated server providing cache functionality.

Load Balancers

Baruwa Enterprise Edition can be setup to use load balancers that support the Proxy-protocol, the most popular being Haproxy.

To use Baruwa Enterprise Edition SMTP servers with these load balancers you need to specify the load balancer IP addresses in the Load Balancer IP’s field on the MTA Settings screen in baruwa-setup

A sample configuration for haproxy with both HTTP and SMTP being load balanced is below.:

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        maxconn 4096
        chroot /var/lib/haproxy
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        option redispatch
        retries 3
        maxconn 2000
        timeout connect      5000
        timeout client      50000
        timeout server      50000

listen http :80
        mode tcp
        option tcplog
        balance roundrobin
        server web1 192.168.1.20:80 check
        server web2 192.168.1.23:80 check

listen https :443
        mode tcp
        option tcplog
        balance roundrobin
        server web1 192.168.1.20:443 check
        server web2 192.168.1.23:443 check

listen smtp :25
        mode tcp
        no option http-server-close
        option tcplog
        timeout server 1m
        timeout connect 5s
        balance roundrobin
        server smtp1 192.168.1.22:25 send-proxy
        server smtp2 192.168.1.24:25 send-proxy