Three Ways NGINX Scales Applications Running in Docker Containers
Today, enterprises are modernizing their applications to support ever-growing digital business requirements. Containers are a key component of that transformation, and Docker is core to the container revolution.
Containers are the foundation for bringing portability to legacy applications, as well as a lightweight package for modern, microservices-based apps. And usage of NGINX and of Docker have grown hand in hand; the official NGINX image is one of the top downloads on Docker Hub.
Ask anyone who has deployed hundreds or even thousands of Docker containers — especially in production — and you’ll quickly find that native load balancers, API gateways, and Ingress controllers are needed to stitch together a containerized app.
That’s where NGINX comes in.
NGINX Helps Bring Containerized Apps to Life
NGINX provides a single Application Platform for running multiple application delivery technologies in containers. Customers select NGINX to scale container-based apps and microservices. Our technology is lightweight, fast, and designed for distributed environments.
It’s no surprise NGINX is one of the most widely deployed technologies in containers. We’ve had more than a billion pulls from Docker Hub. Enterprises deploying containers at scale rely on NGINX to improve resiliency, performance, scalability, and security.
I encourage folks new to NGINX to check out our existing content around Docker. It’s all still relevant, and will provide a solid foundation for NGINX in containerized environments:
- Deploying NGINX and NGINX Plus with Docker
- Monitoring Microservices in Docker Containers with NGINX Amplify
- Fun with Health Checks using NGINX Plus and Docker
What’s New with NGINX and Docker
Done reading that all? Great. Now we can touch on the new things that NGINX has done with respect to Docker platforms.
NGINX has one integrated solution that runs in Docker platforms:
- Interlock is part of Docker EE and it’s based on NGINX OSS. Interlock is the native Ingress controller for Swarm based on NGINX OSS. It ships as the built-in proxy and load balancer with the Docker commercial solution, Docker Enterprise Edition (EE).
- NGINX Kubernetes Ingress controller is the preferred solution. Docker embraced Kubernetes. and it’s the more popular container orchestration tool we’ve seen with Docker customers. There are two NGINX Kubernetes Ingress controller solutions.
All NGINX solutions run on Docker platforms, but there are two NGINX options available through Docker Hub:
- NGINX Open Source. NGINX Open Source is available in Docker Hub. NGINX Plus is not yet available in Docker Hub. However, NGINX directly supplies a container image for those looking to get started with a free trial.
- NGINX Unit. NGINX Unit was recently added to Docker Hub. There were more than 2,000 downloads in the first month. Developers and DevOps users get a dynamic, API-driven server with multi-language support. (Java is coming in the months ahead.)
Soon to ship is NGINX Controller. Controller is relevant for users looking to manage NGINX Plus with Docker Enterprise Edition, OpenShift, Kubernetes, or other container management platforms.
NGINX Controller provides monitoring, alerting, dashboards, configuration analysis, and configuration management. Controller provides the following for NGINX Plus instances running in containers:
- Management at scale: Easily monitor and manage multiple NGINX Plus instances using a centralized management interface.
- Visibility: Gain deep insights into performance KPIs for the entire NGINX Plus stack, including the OS and PHP-FPM/MySQL components.
- Control: Meet your SLAs, avoid performance issues, and troubleshoot faster with built-in guidance on NGINX Plus best practices.
- Agility: Enable application teams to deploy new applications faster by developing environment-specific policies.
- Multi-cloud support: Deploy and manage Controller on any public or private cloud; push NGINX Plus configs to all major clouds, including AWS, Azure, Google Cloud Platform, and IBM Cloud.
Three Ways NGINX Scales Docker Containers
It’s a fast-paced environment, and NGINX have done a lot to keep up with Docker’s platform evolution. With DockerCon 2018 coming up, we wanted to take a moment to highlight the three main ways NGINX helps companies succeed with the Docker initiatives:
- NGINX is the native load balancer in Docker Enterprise Edition. As mentioned above, Docker Enterprise Edition ships with NGINX as the native proxy and load balancer that powers Interlock. However, most of our customers prefer to use Kubernetes over Swarm. We’ve got you covered there, too! NGINX is the most widely deployed Kubernetes Ingress controller. Whether you choose Docker Swarm or Kubernetes, NGINX is the best choice for scaling container orchestration traffic.
- NGINX is the most widely deployed Kubernetes Ingress controller. NGINX load balances, terminates SSL, authenticates, and monitors Kubernetes pod traffic. There is a community version of the Ingress controller, which has a full set of features and relies on NGINX Open Source. We recommend that production Kubernetes environments deploy the NGINX-supplied Ingress controller, which provides additional stability, support, and advanced NGINX Plus features for security, authentication, availability, and metrics.
- NGINX Unit changes the way application servers are managed in containers. NGINX Unit is our new open source application server. It provides several benefits over traditional app servers, including a purpose-built architecture for containers and microservices, multi-language support with Go, Perl, PHP, Python, and Ruby (Java and JavaScript coming later this year), a built-in proxy, and a dynamic API. No more managing config files for your app servers! Unit is ideal for highly automated CI/CD environments and reduces the complexity and cost of managing disparate app servers. You can deploy a single infrastructure with a consistent operational experience that empowers your developers to choose the right language and framework for their apps.
Beyond Docker: NGINX is a Critical Component in a Broader Container Ecosystem
NGINX brings more to the table than just the three primary ways in which NGINX benefits Docker users. Containers are a necessary ingredient to modern applications, but they are only part of the solution. NGINX is integral to a much larger solution as companies migrate from legacy, monolithic apps to microservices. We provide load balancing, API gateway, Ingress controller, and service mesh technologies. We work on Docker, our technology is included natively in Docker, and we work across private and public clouds. For example, we’re in the AWS Elastic Container Registry (ECR) and the Red Hat Container Catalog.
Visit NGINX at DockerCon 2018!
If you’d like to learn more about NGINX and how we can scale your container applications, visit booth S22 at DockerCon 2018. We’ll have demos of NGINX Controller and NGINX Kubernetes Ingress controller.
The post Three Ways NGINX Scales Applications Running in Docker Containers appeared first on NGINX.
Source: Three Ways NGINX Scales Applications Running in Docker Containers