NGINX.COM
Web Server Load Balancing with NGINX Plus

Overview

In 1987, the Kenyan government established The National AIDS and STI Control Programme (NASCOP) as a frontline agency to fight against the growing HIV/AIDS epidemic. Through a variety of health information systems (including both web and mobile software applications), the agency has significantly reduced the prevalence of the disease since it was declared a national disaster in 1999.

One of the agency’s software applications, for tracking the national viral load/early infant detection (VL/EID) testing program, used a monolithic, centralized architecture built on a Windows/Apache/MySQL/PHP (WAMP) stack. The software behind this program connects NASCOP headquarters with various labs (which process HIV/AIDS tests) and hubs (which collected test samples to send to labs). The VL/EID application also enables other governmental health agencies and even the general public to access the application. As the program and the number of system users grew over time, the infrastructure couldn’t keep pace with increased demand, resulting in significant problems with performance under peak load, scalability, stability, data synchronization, and data integrity and continuity.

DataposIT, a leading IT solutions integrator in Kenya and Uganda, has been contracted by the USAID through Population Services Kenya (PSK) to consult on the design and improvement of the architecture for NASCOP’s VL/EID software system.

Challenge

In order to improve the scalability, stability, and performance of the VL/EID application, DataposIT needed to address a fundamental challenge – the application’s architecture.

The monolithic, centralized architecture (hosted only in the NASCOP’s head office) of the VL/EID application was at the root of the problems. The architecture, running on an WAMP stack, could not seamlessly handle increasing requests from the distributed labs and hub locations as well as other system users and the general public. Under peak load, the Apache web servers frequently consumed excessive resources and responded poorly to requests, especially as the application’s web frontend became richer over time.

To enable the system to handle as many user requests as possible, the NASCOP IT team often stalled user connections and limited the maximum number of httpd processes to avoid exhausting server resources. They also disabled keepalive connections (or reduced their duration) to free up httpd processes more quickly.

Another problem was that when failover was necessary, the only way to accomplish it was via DNS failover, which sometimes took up to 30 minutes to fail over services and a similar amount of time to fail back.

But a rigid Apache environment wasn’t the only issue. DataposIT had invested in F5 hardware load balancers to load balance user connections to a variety of NASCOP’s key applications. When they started to look into the cloud (distributed private clouds) as a way to better scale and stabilize the application architecture, it soon discovered that NASCOP would need to augment the F5 hardware load balancers (a critical component in the architecture design) with ones optimized for cloud environments. It quickly became clear the only viable solution was to replace the Apache web servers and augment F5 load balancers with a system managed in the cloud.

The array of NASCOP’s web applications…were slow and systems would crash often. We also lacked a proper backup and disaster recovery strategy meaning that we lost data sometimes or had a relatively high mean time to recovery (MTTR) as and when disasters struck.
– Aaron Mbowa, CTO, DataposIT Limited

Solution

To solve the VL/EID application’s issues with scalability, stability, performance, security, and data protection and integrity, DataposIT re‑architected and rebuilt the entire infrastructure using NGINX Plus and Oracle MySQL Enterprise Edition (EE) in a VMware vCloud suite private cloud environment set up on a Dell EMC vBlock Converged system, as well as a range of other server infrastructure systems running in the disaster recovery (DR) site and the labs and hubs. The NGINX Plus and Oracle MySQL EE environments run in a distributed system architecture across all facilities with active‑active high availability setups that address all single points of failure (SPOF).

This solution not only addresses the core issues with the previous monolithic architecture, it also lowers costs by leveraging vendor‑supported open source technologies.

Application performance has improved significantly as user requests are more intelligently handled by the NGINX reverse proxies and built‑in load balancers. Within the new cloud‑based architecture, the lab and hub “spokes” can be treated as independent nodes, rather than as secondaries to a single‑instance server, providing a degree of application continuity that did not exist before.

With a distributed system architecture built on NGINX Plus and Oracle MySQL EE, we have achieved increased systems performance, undisrupted operations, and actionable insights into the applications’ performance metrics real time. Additionally we have now embarked on containerization with Kubernetes clusters for Docker containers that run NGINX Plus services to improve application performance while saving on our system admin time and enabling faster code rollout.
– Aaron Mbowa, CTO, DataposIT Limited

nginx private cloud image

In addition to the application benefits provided by NGINX Plus, DataposIT is also utilizing NGINX Controller – a centralized management platform with GUI – to monitor all NGINX Plus instances in the new distributed system architecture. This gives NASCOP IT significant actionable insights into the overall health of the infrastructure and application, enabling them to proactively manage and troubleshoot problems before they turn into significant incidents.

[Editor – NGINX Controller is now F5 NGINX Management Suite.]

NGINX Controller gives us visibility into a variety of different performance metrics for both NGINX Plus load balancers and underlying operating systems. This wealth of data have helped us to troubleshoot issues in a proactive manner resulting in improved user experience.
– Aaron Mbowa, CTO, DataposIT Limited

Replacing Apache web servers and augmenting F5 load balancers with NGINX Plus has not only improved application performance and stability, and saved on immediate and long‑term operating costs. It has also facilitated the migration of key health information software systems to the cloud. NGINX Plus provides a powerful, nimble, and flexible load balancing solution that is easily deployable in the cloud. Implementing the new application architecture took little more than a day for each of the key health systems.

Results

Significantly Better Performance

NGINX Plus load balancing has significantly improved the performance of the VL/EID software by serving data requests to all users concurrently even at scale. The load balancer determines, in real time, where to forward user requests based on server resource availability and efficiency. DataposIT can easily scale the number of NGINX Plus instances as needed. The performance improvement has been most evident during peak user visits which previously were characterized by mostly slow response times and occasional downtime. The improved performance has greatly increased overall user satisfaction ratings.

Improved System Uptime

With the NGINX Plus load balancer and reverse proxy, system failover to a cloud‑based VM can now happen in milliseconds. The live activity monitoring dashboard provides metrics such as CPU and memory utilization to help DataposIT spot anomalous resource consumption and make changes before it causes unavailability or actual downtime. Keeping the system up even under the most arduous network circumstances is critical to ensuring that users can fulfill NASCOP’s core mission by entering test results and analyzing data at all times.

Enhanced Infrastructure Visibility with NGINX Controller

Before NGINX Controller, NASCOP did not have enough visibility into its systems to determine application performance or to combat issues. NGINX Controller now provides the information necessary to understand how the services are running. The insights from NGINX Controller enable DataposIT to address issues proactively and avoid system downtime. With this new visibility into application operation and performance, NASCOP IT is better able to assure application continuity and SLAs, which in turn has improved user satisfaction ratings.

Faster Time to Market

With containerization using Kubernetes clusters and Docker containers, the NGINX Plus services are always running optimally. DataposIT can react much faster to resource demands and can even roll out new code much more easily, improving the overall efficiency and productivity of NASCOP’s application developers and system admins.

About DataposIT

DataposIT Limited is a leading IT solutions integrator specializing in business apps, infrastructure, cloud, managed services, and IT consultancy. As an IT solutions integrator, it both designs and implemenw complex solutions for various organizations – big and small. The DataposIT team is comprised of highly trained professionals whose collective IT industry knowledge makes it one of the premier IT firms in the region. In addition to its headquarters in Nairobi, DataposIT has physical presence in Kampala, Uganda and Kigali, Rwanda. It has been involved in projects across Africa and beyond.

Challenges

To prevent degraded performance during peak periods and reduce overall system downtime, while increasing scalability and stability.


Overview

DataposIT manages the health information systems infrastructure for Kenya’s National AIDS and STI COntrol Programme (NASCOP), a government agency which spearheads the Ministry of Health’s efforts in the fight against HIV/AIDS. The company designs and improves web and mobile applications that collect, analyze, report, and disseminate health information.


Headquarters
Nairobi, Kenya
Founded in 2007
Use Cases
Solutions