Enterprise‑Ready Solution Offers High Performance and Efficiency
Technology from ARM is at the heart of the world’s most advanced digital products. The company designs scalable, energy‑efficient processors and related technologies to deliver the intelligence in applications ranging from sensors to servers, including smartphones, tablets, enterprise infrastructure, and the Internet of Things. ARM licenses its technology to its extensive network of partners who use it in the design of their products. ARM technology is in use in billions of products, which touch the lives of more than 80% of the world’s population.
ARM’s interest in NGINX and NGINX Plus was driven by their participation in two projects.
Project 1 – Building Greener Data Centers
In 2013, ARM was asked to take part in a study funded by the European Union (EU) to examine the energy efficiency of ARM‑based servers for web hosting in the data center. To participate in the study, ARM provided the hardware to be tested – initially 32‑bit ARMv7 servers – and its corporate website, www.arm.com, as the real‑world application running on the servers.
In this energy efficiency study, ARM needed advanced logging capabilities, so the company added open source NGINX as a reverse proxy. NGINX enabled ARM to track and log a user request end‑to‑end. ARM developed a monitoring application that tails the NGINX logs, reads all the request information, and aligns that with the usage data from the power meters on the wall. The ARM team could see in real time how many requests the platform could handle versus how many watts of energy it was using. The study is still ongoing, but results thus far indicate nice gains in energy efficiency for the ARM platform compared to x86.
The ARM team was impressed with the lightweight efficiency of NGINX, which provided extremely fast response times while using minimal hardware resources. The ARM team strongly felt that NGINX provided good synergy with the general ARM goal of high performance with a small energy footprint. This led them to again consider NGINX as they embarked on the second project.
Project 2 – Proving Enterprise Readiness of ARM Servers
In parallel with the energy efficiency study, ARM launched a proof‑of‑concept initiative to demonstrate the enterprise readiness of its servers by moving a vital company application to a “LAMP stack” (Linux, Apache, MySQL, and PHP) on ARM‑based servers, specifically the HPE Moonshot m400 platform based on Applied Micro X‑GeneTM. From 2010 to 2013, the application was hosted on x86 Windows servers running the “WIMP stack” (Windows, IIS, MS SQL Server, and PHP), but moving the corporate application to these servers would demonstrate the enterprise‑readiness of an ARM‑based server environment. HPE Moonshot is a high‑density platform with up to 45 m400 cartridges, each cartridge with 64 GB of memory and 8 cores @ 2.4GHz. Ubuntu was the natural choice of operating system because Canonical, the company behind Ubuntu, is also a key partner of ARM’s in the enterprise server space. The companies’ engineering teams were already working together to make Ubuntu the first enterprise‑grade Linux distribution on ARM servers, and to prove that ARM‑based servers are every bit as enterprise‑ready as x86 servers.
With the choice of ARM‑based servers and Ubuntu made, ARM looked for enterprise‑ready load balancing solutions that fit into the architecture. That’s when ARM learned about NGINX Plus.
“We had internal momentum and support to move a critical, customer‑facing application from x86‑based servers and do a full rehosting of that application on ARM‑based servers and an open source LAMP stack,” says Sean Crossan, Principal Solution Designer at ARM. “As part of our active, extensive ecosystem, we partnered with HPE, Applied Micro, Canonical, Cafesoft, Accenture Digital, and NGINX on the project. With this partnership we had support across the full stack from processor to platform, through OS, identity management, solution design, reference architecture, and into the web tier with reverse proxy, security, monitoring, and caching. Canonical had already been working directly with the NGINX team on porting and tuning NGINX and NGINX Plus to ARM. As part of that porting effort, we were introduced to NGINX Plus. It was at that point that we started to see and understand its advanced capabilities, and we knew NGINX Plus would be the ideal load‑balancing solution for our new application architecture and infrastructure. It’s important to note that installation of each component of the stack was virtually identical under x86 and ARM. In terms of ease of deployment for IT admins, this is well‑worn ground. Indeed, the same unmodified Ansible playbooks were used to deploy the application to both architectures. So many of the features that differentiate NGINX from Apache, such as its nonblocking connection handling, are realized by this build.”
NGINX Plus is a complete application delivery platform that combines load balancing with other enterprise‑ready features in one easy‑to‑deploy software package. NGINX Plus was a great fit for ARM’s needs.
NGINX Plus served as the entry point for application traffic, accepting user access requests and load balancing them across the HPE Moonshot m400 cartridges on the backend.
The application is currently running NGINX Plus instances in its development, quality assurance, and production environments. Just two HPE Moonshoot chassis were needed to handle traffic for the production environment. In each chassis, NGINX Plus runs on two m400 cartridges for high availability, and load balances traffic among multiple instances of Apache HTTP server, each running on its own cartridge in the same chassis. In addition, the team ran a standby platform on x86 servers. What they found when they compared the performance metrics across the two platforms is that running the application on ARM servers provided top application performance and reliability.
“We’ve completed a journey with NGINX Plus from the 2013 proof of concept for a LAMP software stack and the efficiency of the 32‑bit ARM‑based server platform in a project funded by the EU – all the way to the 2015 deployment of a critical enterprise application powered by NGINX Plus running on 64‑bit ARMv8 servers in a production environment,” Crossan says. “At the same time, we were able to prove the readiness of ARM servers, Ubuntu, and NGINX Plus in the enterprise.”
NGINX Plus is optimized for handling large traffic volumes, and scales to handle a large number of simultaneous connections. Using NGINX Plus as an application load balancer on the ARM platform has helped the company realize the performance of the current generation of its processors.
With their enhanced I/O capabilities, ARM‑based servers are a great fit for web‑hosting arena, where application traffic is spread across multiple smaller servers providing the scale necessary to accommodate many simultaneous parallel transactions – this is achieved either within a single chassis or across multiple chassis. The high‑performance load balancing capabilities of NGINX Plus are well‑suited to that environment.
“NGINX Plus is perfect for being able to spread a high load across multiple nodes in the web‑serving layer,” says Crossan. “The clear advantage of NGINX Plus on ARM’s platform is that we have one worker process per core, but we’re still able to maintain a high number of concurrent connections. With NGINX Plus on ARM‑based servers, we see good performance, good results, and opportunities to tune for even better performance.”
Using the NGINX Plus live activity monitoring dashboard, ARM’s teams have a deeper understanding of how their multinode server architecture is working. They can easily see how much and what kind of traffic each server is handling, and where there are standard request failures as a result of common factors like network latency, database connectivity, or coding errors.
“The visibility provided by NGINX Plus’ monitoring dashboard is especially useful to my operations colleagues. They get a visualization of the number of requests coming in and going out, as well as any potential errors,” says Crossan. “Overall the visual dashboard in NGINX Plus is a great way to see what is going on in our multinode environment, and it helps us see problems early so we can respond accordingly.”
In addition, the monitoring capabilities in NGINX Plus offer ARM the potential to automate issue response in the future. “With the event‑driven model inherent in NGINX Plus, and because our platforms are fully integrated with our enterprise management system and ticketing system, when an alert is raised, we have the potential to orchestrate a response, either at the services level over our middleware platform or in real time by raising tickets through our service portal. Further automating our services with NGINX Plus aligns with our core value of improving and innovating everywhere,” adds Crossan.
When they team at ARM moved the customer‑facing application from an x86 platform to the 64‑bit ARM platform, to minimize the risk inherent in any type of migration they first deployed on x86 and then migrated to ARM‑based servers into the pool using NGINX Plus as a frontend load balancer.
“NGINX Plus gave us the ability to really configure, at the stack level, how many ARM‑based servers were in the configuration at any one time. If we wanted to see how it was working as a hybrid, or exclusively on ARM or x86, we could easily configure that,” explains Crossan.
As teams within ARM continue to use NGINX Plus, the company is looking at extending its use to take advantage of new architectural changes and feature enhancements.
As a next step, the company is evaluating NGINX Plus as the replacement for another software load balancer it currently uses. Doing this could further streamline their architecture and positively impact performance. ARM is also looking at extending its use of NGINX Plus as a load balancer for HTTP‑based TCP and database traffic as well.
ARM is also exploring NGINX Plus’ request‑limiting feature. NGINX Plus can slow the rate of requests that make it to an application, and even deny requests above a specific threshold. ARM is considering using request‑rate limiting for its software delivery mechanism, which accepts download requests both via API and from command‑line tools.
“When we release a new product, we have a lot of requests to serve at one time. NGINX Plus will allow us to throttle the bursts of requests into our backend systems so we have better control,” Crossan says.
In addition, ARM plans to expand its infrastructure provisioning to enable microservice‑based architectures and is looking at NGINX Plus to potentially play a critical role in this initiative.
ARM designs technology at the heart of the world’s most advanced digital products. The company is enabling the development of new markets and the transformation of industries and society, invisibly creating opportunity for a globally connected population. Its scalable, energy‑efficient processor designs and related technologies deliver intelligence wherever computing happens, ranging from sensors to servers, including smartphones, tablets, digital TVs, enterprise infrastructure, and the Internet of Things.
The company’s innovative technology is licensed by ARM Partners who have shipped more than 75 billion Systems on Chip (SoCs) containing its intellectual property. Together with its Connected Community, ARM is breaking down barriers to innovation for developers, designers, and engineers, ensuring a fast, reliable route to market for leading electronics companies. For more information, visit www.arm.com.