NGINX and NGINX Plus Everywhere

The open source NGINX software and NGINX Plus, the commercially supported product built on NGINX, have become the application delivery platform for the most demanding web sites and applications in the world. Combined they now power over 50% of the world’s 10,000 busiest websites. NGINX and NGINX Plus provide flexibility, power, and simplicity on a scale that no other product offers.

A major reason that NGINX and NGINX Plus offer unsurpassed flexibility and simplicity is that they are pure software solutions available for popular operating systems. We will come back to this point repeatedly because it is one of the key factors driving their flexibility. Many vendors of hardware and virtual appliances highlight the capabilities of their software but what they don’t mention is that the software comes preinstalled on proprietary hardware or in a prebuilt virtual machine. You don’t get to choose the hardware or virtualization platform, nor can you choose another form factor altogether, such as a container. With pure software, like NGINX and NGINX Plus, all those choices are open to you, giving you maximum flexibility.

Their flexibility and feature set enables NGINX and NGINX Plus to cover more of your application delivery stack than other products, across multiple dimensions:

  • What you deploy – Bare metal servers, virtual machines (cloud or non‑cloud), containers

    Deploy NGINX and NGINX Plus on the platform that provides the power you need at the cost you can afford: commodity servers sized to meet your exact needs, virtual machines, and containers. And you save on software costs too – NGINX and NGINX Plus run on publicly available operating systems.

  • Where you deploy – Data centers, managed hosting, private clouds, public clouds

    You have more options than ever for where to deploy your applications, among them on‑premises data centers and colocation facilities, managed hosters, public and private clouds, or some combination. But you might find that the differences in architecture and infrastructure between the different options forces you to employ different tools in different environments, especially for load balancing. This means that you have to learn multiple tools and develop different deployment, monitoring, and management processes for each one.

    NGINX and NGINX Plus work equally well in all environments, bringing simplicity and efficiencies of scale in operation, training, and management. This can be especially valuable when migrating to the cloud or containers as you don’t have to master new tools – the NGINX and NGINX Plus functionality and configuration syntax you already know work the same way in all environments.

  • Why you deploy – For application delivery, load balancing, reverse proxying, caching, web serving, media streaming

    NGINX and NGINX Plus really shine for their broad range of capabilities, but you might not realize the full power they bring to multiple layers of the application stack, with application delivery and load balancing, reverse proxying, caching, web serving, and media streaming. If you’re used to traditional tools which normally address just a single function or possibly two, you might not be aware that it’s even possible to employ one tool across so much of the stack. With NGINX and NGINX Plus, you can, and that yields the same benefits of simplicity and efficiency as deploying them across all your environments.

  • How you deploy – Using DevOps methodologies, manually

    More and more companies are moving to DevOps methodologies for developing, deploying, and managing their applications. With NGINX and NGINX Plus you can use DevOps for the full lifecycle, from installation through configuration and management. And they fit just as naturally in a traditional, legacy environment.

  • Who you are – Deploying a low‑traffic site or a moderate‑traffic to high‑traffic site

    NGINX and NGINX Plus are an ideal, cost‑effective solution for sites with modest traffic, and at the same time provide the excellent performance needed at the busiest sites in the world. That means that no matter who you are or the size of your site, NGINX and NGINX Plus can make you successful. And as the demands on your site grow, NGINX and NGINX Plus can grow with you – the additional enterprise‑grade features and expert support included in NGINX Plus make it even more beneficial as you grow.

  • When you deploy – Now and in the future

    As the transition away from hardware-based systems continues and additional deployment options become available, it’s a good bet they will be software-based. NGINX and NGINX Plus can not only boost the performance of your existing deployments, they’re sure to do the same for whatever comes next. There is no better way to future-proof your infrastructure.

Their comprehensive coverage across many dimensions – which we could more thoroughly characterize as “NGINX and NGINX Plus everywhere, anytime, by anyone, for any reason” – means you can deploy a single solution across all your platforms and environments, to cover more of your application stack than any other solution, greatly reducing cost and complexity.

To make the point more concrete, let’s look at the landscape with and without NGINX and NGINX Plus. We’ll see how they fit across more of your stack, greatly simplifying your infrastructure and operations.

The first figure shows how single‑function solutions can’t cover all dimensions of your infrastructure, meaning you have to deploy various tools in different areas.

Without NGINX and NGINX Plus, you have to deploy multiple tools for load balancing, caching and web serving. This is includes load balancing containers.

Now let’s add NGINX and NGINX Plus to the picture. Notice how their benefits extend to every part of your application stack:

Deploying NGINX and NGINX Plus everywhere in your infrastructure simplifies app deployment: there's a single tool for web serving, reverse proxying, load balancing, caching, and more. This includes load balancing containers.

The Dimensions in Detail

Now we’ll explore each of the dimensions listed above in more depth, with respect to load balancing in particular for most of the dimensions. The load‑balancing market has traditionally been dominated by proprietary hardware or virtual appliance solutions, and here we’ll focus on the differences between them and NGINX and NGINX Plus. The additional features in NGINX Plus make it even more powerful and efficient than the open source NGINX software.

What You Deploy

Proprietary hardware or operating system software are never required with NGINX or NGINX Plus. Many vendors of hardware and virtual appliance‑based solutions build them on a customized version of Linux or FreeBSD that they don’t distribute separately. Nor do they release their software by itself, but only preinstalled on their appliances. This is a key point. Vendors often refer to their virtual appliance as a software solution, but virtual appliances are closer to hardware in concept than they are to pure software. The vendor picks the operating system, often limits what you can change, and choses the hypervisor that it can run on. So a virtual appliance solution does not equal a pure software solution.

So let’s look at the different ways modern applications are being deployed and how NGINX and NGINX Plus fit compared to traditional load‑balancing products.

  • Bare metal servers – You can use the commodity server of your choice with the operating system of your choice (Linux and FreeBSD for NGINX Plus), so your team can support the server and operating system they are comfortable with. You can move the software to a larger or smaller server as needed, allowing you to rightsize the server for your current needs and easily adapt as your needs change. Similarly, you can tailor the server with the exact amount of CPU, memory, network, and storage you need.

    With NGINX and NGINX Plus, you avoid a major downside of hardware-based solutions. You no longer have to predict your load for a number of years into the future to match an appliance refresh cycle, hoping that you don’t overestimate and thus overprovision, or worse underestimate and have to do a premature and very expensive upgrade.

  • Virtual machines (cloud and non‑cloud) – Virtual machines (VMs) can run either on your servers or in a public or private cloud. Because NGINX and NGINX Plus are pure software, you can easily create VMs in the hypervisor, public cloud, or private cloud infrastructure of your choice, or even multiple different hypervisors and clouds at the same time. You can also build the VMs using the same operating systems as for your other servers. NGINX and NGINX Plus can utilize any number of cores, are not limited in throughput, and can take full advantage of all hypervisor features, letting you achieve enterprise‑class performance in a virtual form factor, something not possible with all virtual appliances.

    Many virtual appliances are limited in the number of cores they can utilize, the bandwidth they can support, and the hypervisor features they can take advantage of, to name just some of their limitations.

  • Containers – You have two options for load balancing containerized services:

    • The load balancer is outside the containerized environment, load balancing containerized services.
    • The load balancer is inside the environment, running in a container itself.

    Containers have been a catalyst for the move to microservices. A microservices architecture involves many more endpoints to be load balanced, so having a distributed set of load balancers running in containers can be an excellent solution. (If you choose to put the load balancer outside of the container environment, then the considerations discussed previously for bare-metal servers or VMs apply.)

    NGINX and NGINX Plus can be deployed easily and naturally in a container, one benefit of a pure software solution. It is no coincidence that open source NGINX is the most popular official application image on DockerHub, and you can easily create your own NGINX Plus Docker image. And you are not limited to Docker – you can choose any container technology you like.

    Virtual appliances cannot be used inside a container, although Citrix has announced it will support Docker containers in production sometime in 2016. It is important to note that the Citrix product uses FreeBSD, so it won’t run on Docker hosts with Linux operating systems, which are far more popular.

Where You Deploy It

As software‑only products that are available as installations on popular operating systems, NGINX and NGINX Plus enjoy unsurpassed flexibility in where you can deploy them. Proprietary hardware or operating system software is never required.

Let’s look at the different environments where modern applications are being deployed and how NGINX and NGINX Plus fit in.

  • On‑premises data centers – In your own data center or colocation facility you can deploy NGINX and NGINX Plus in any form factor – bare metal server, virtual machine, or container – using the hardware, operating systems, hypervisors, and container technologies of your choice.
  • Public clouds – Here again, because NGINX and NGINX Plus are delivered as pure software, they can run in any cloud. If the cloud has a marketplace or repository of available software, NGINX is likely to be available there. NGINX Plus may or may not be, but you can always install it (or NGINX, for that matter) yourself with your preferred operating system in a cloud instance. NGINX Plus is currently available in the marketplaces of Amazon Web Services, the Google Cloud Platform, and Microsoft Azure.

    You don’t have wait for your appliance vendor to make its virtual appliance available in a particular cloud, you aren’t forced to use its designated operating system, and you’re not subject to the performance limitations often present in virtual appliances.

  • Private clouds – Private clouds are usually built with tools such as VMware vCloud Air or OpenStack. Private clouds, like public clouds, are built on top of virtualization technology, but because you own and manage the infrastructure for the private cloud, you get to choose how you do load balancing:

    • Deploy the load balancers as VMs inside the private cloud infrastructure
    • Deploy the load balancers out outside the private cloud infrastructure and interfacing with it via agents or APIs
    • Bypass the infrastructure altogether, load balancing the VM backends directly

    If you deploy hardware load balancers, the previous discussion of on‑premises data centers applies. If you use virtual appliances, the discussion of public clouds applies.

Why You Deploy It

NGINX and NGINX Plus cover more of your application stack, at scale, than any other solution. The reduced complexity, lower cost, and increased stability you get from being able to use one tool across so much of your application stack, always highly available and high performance, is one of the great values of NGINX and NGINX Plus.

This doesn’t mean you will necessarily condense the layers of your application physically, but rather that you only have to learn one product to cover all the layers. When you use NGINX Plus, you also get support from a single vendor.

The open source NGINX software has become the go‑to web server for high traffic websites, known for its extremely high performance with minimal use of system resources. NGINX is also used by many content delivery networks (CDNs) due to its high‑performance caching features. NGINX is also a very popular tool for local proxying – while acting as a local web server it can also proxy requests to a local application server, such as PHP‑FPM. This is a common way to support high‑traffic WordPress sites and takes advantage of NGINX’s great connection handling.

In NGINX Plus, we have enhanced the already powerful NGINX solution with additional features – for load balancing, management, monitoring, and high availability – giving you one tool that can do advanced load balancing, caching, local proxying, web serving, and media streaming. These areas have traditionally been addressed using a combination of proprietary hardware appliances and various software tools. NGINX and NGINX Plus address them all, while at the same time increasing flexibility and stability at low cost.

How You Deploy It

DevOps is certainly one of the major trends we are seeing in IT.

Let’s look at the differences between using DevOps with hardware or virtual appliances as opposed to NGINX and NGINX Plus. DevOps is a community‑driven initiative that takes advantage of open source software’s flexibility, openness, and ease of configuration. Software that is closed and proprietary in its core cannot take advantage of this community momentum, and DevOps integrations are delivered at the pace of the vendor. Furthermore, the speed and agility of DevOps is blunted when the components you need cannot be deployed on demand. Hardware form factors, heavy virtual appliances, and restrictive software licensing all conspire against an agile and responsive DevOps process.

As pure software with an open source core, NGINX and NGINX Plus are a natural fit for DevOps throughout the entire app lifecycle. You can install, configure, and destroy an NGINX or NGINX Plus instance at will.

Who You Are

Even if the traffic to your site is modest, handling it well is important to your business. You need a solution that is stable, available, easy to manage and monitor, and still fits in your limited budget. NGINX and NGINX Plus provide an extremely cost‑effective solution to address these needs and allow you to simplify your environment, saving you time and improving your operational efficiency. The NGINX Plus application delivery platform has the features, performance, and support of much more expensive products.

When you are deploying a mission‑critical, high‑traffic site, performance becomes paramount. The proven speed and efficiency of NGINX and NGINX Plus make them ideal tools, with NGINX Plus providing even more value.

So whether you are deploying a low‑traffic site, a moderate‑traffic site, or a very high‑traffic site, NGINX and NGINX Plus can help. And they can help as your site grows, even if it becomes one of the busiest web sites in the world.

When You Deploy It

I have discussed how NGINX and NGINX Plus can be deployed anywhere, a benefit of being available as software. As new deployment scenarios have emerged over time – first virtualization, then the cloud, and most recently containers – they have all been built around software rather than hardware. NGINX and NGINX Plus could be deployed immediately as each new technology emerged.

In contrast, there’s an inevitable lag for products based on hardware appliances to be available on these new technologies, because it takes time for vendors to port the product (usually tightly integrated with its original hardware environment and often built on a proprietary operating system variant) to the new environment. Further, the products usually work with only some variations of the technology. For example, NGINX ran in VMs long before the first virtual appliances were released. The initial release usually supported just one hypervisor, and while vendors added support for more hypervisors over time, they rarely cover all of them. These virtual appliances come with other limitations as well, as discussed in What You Deploy.

The situation with the cloud was much the same. People deployed NGINX in the various cloud environments as soon as they were introduced. Only later did hardware appliance vendors adapt their virtual appliances for a small number of cloud environments, and still with the limitations of their virtual appliances. If you want to run these vendors’ products in a hypervisor or cloud they don’t support, you are out of luck, but with NGINX and NGINX Plus you make the decision on which hypervisor and cloud to use.

Now we are seeing the same thing with containers. NGINX and NGINX Plus ran in containers on day one, and using any container technology. Today, Docker is currently the most popular container technology, so we can expect that hardware appliance vendors will eventually support it, if they can. But what if you want to use rkt instead of Docker, or some other container technology as it emerges? You’ll have to wait for your hardware appliance vendor to support it, if they ever do. That’s never a problem with NGINX and NGINX Plus.

The licensing model for tools that evolved from hardware appliances can present another challenge. Based on their history selling static appliances, vendors usually require a license key for each instance of the software as well. This becomes a problem when you want to quickly spin up an instance in a VM or a container. Vendors are attempting to address this issue, but NGINX Plus has no such limitations.

Who knows what the next big thing will be? Whatever it is, I predict that it will be software based, and that NGINX and NGINX Plus will be among the first applications available. You won’t have to look for a new tool; you can rely on what you know and what works. You can’t predict the future but you can do your best to use tools that are most likely able to be adapted to the new technologies as they emerge.

So NGINX and NGINX Plus are ready now to help you with your current infrastructure, no matter what it is, and also positioned well for your future infrastructure, whatever that turns out to be – perhaps a container‑based microservices environment, or something that hasn’t been invented yet.

Conclusion

I hope that you understand why I titled this blog post “NGINX and NGINX Plus Everywhere”. A bit of poetic license perhaps, but not too much. You really can deploy NGINX and NGINX Plus anywhere you want, in any form factor, however you want, across more layers of the application stack than any other tool, while being able to address your needs now and in the future. Whether you are replacing your hardware load balancers, migrating to the public cloud, building a private cloud, moving to containers, or all of the above, NGINX and NGINX Plus can help make your deployments successful.

Give NGINX or NGINX Plus a try. You can get a free trial of NGINX Plus to test it for yourself or you can download the NGINX open source software.

Cover image
Microservices: From Design to Deployment
The complete guide to microservices development