Cloud Architectures With NGINX Plus
Cloud Architectures With NGINX Plus
Learn how Nginx can help you orchestrate cloud bursting, local load balancing, and global load balancing.
Join the DZone community and get the full member experience.Join For Free
Are you thinking about moving to the cloud? There are a number of benefits of moving to cloud, as well as a few drawbacks. For some enterprises, hosting any data outside of the corporate firewall is a deal breaker. For most, however, the advantages of not having to manage your own hardware far outweigh downsides such as the loss of absolute control. Recent research indicates this is becoming increasingly apparent to IT directors — one third of enterprise IT spending is expected to go to the cloud over the next two years.
If you are looking to move to cloud, or even if you aren’t, now is a good time to begin thinking about your application architecture. Rather than blindly migrating an application to the cloud along with the its well-known problems, why not update your application stack to work more fluidly within this new type of environment? Your application delivery strategy is a great place to start the reevaluation process. Good application delivery is the difference between a loyal customer for you and a new customer for your competitors.
If you’re hosting your application on premise, you’re most likely using a hardware application delivery controller (ADC). While a hardware ADC might work well within an on-premise deployment, you can’t take hardware to the cloud. Most legacy hardware ADC vendors do have virtual versions of their products, but if you are moving to the cloud why not try out a modern ADC that was written with the cloud in mind?
NGINX Plus is an enterprise-grade software application delivery controller born in the modern web. NGINX Plus is lightweight with all the features you need to deliver your applications flawlessly, without forcing you to pay for features you’ll never use. NGINX Plus is available at a fraction of the cost of your hardware ADC, with no bandwidth or SSL limits to slow you down.
To help you get started on your investigation into cloud computing, here are some cloud architectures that leverage the power of NGINX Plus.
Simple Cloud Bursting
If migrating everything to the cloud at once seems too risky, consider a hybrid deployment as a less disruptive approach. In this type of deployment you use both on-premise and cloud services to deliver your applications.
With NGINX Plus’ Least Time load-balancing algorithm you can create a “cloud bursting” deployment where traffic is sent to the cloud when all of your on-premise servers are busy.
NGINX Plus sends traffic to the cloud when the local servers are all busy
With the Least Time algorithm, NGINX Plus mathematically combines two metrics for each server – the current number of active connections and a weighted average response time for past requests – and sends the request to the server with the lowest value. Least Time tends to send more requests to the local servers because they respond faster. When the local servers get loaded to the point where responses from cloud servers are faster even with the added network latency, NGINX Plus begins directing requests to them. When local servers become less loaded again, NGINX Plus goes back to sending most requests to them.
Local Load Balancing
Many public cloud vendors have regional data centers all over the world, and you can host your application in any or all of them. Amazon Web Services, for example, has nine data centers across North America, South America, Europe, and Asia. For fault tolerance, cloud vendors provision “availability zones” in each regional data center. An availability zone has its own physically isolated racks of hardware with separate power, networking, cooling, and so on. If one availability zone fails, for example by losing power, the availability zones that continue to run can pick up the slack. You make your application highly available by replicating it across availability zones.
Duplicating your application across availability zones provides high availability
In the cloud architecture diagram above, the cloud vendor’s native load balancer (ELB on Amazon Web Services, Azure Traffic Manager in Microsoft Azure, or the Load Balancer in the Google Cloud) spreads traffic across the different availability zones. Within each availability zone, NGINX Plus load balances to your application servers. The application behind NGINX Plus can be a monolith, a microservices-based application, or something in between.
Global Load Balancing
Replicating your application across multiple availability zones provides great high availability within a region. The next step is to host your application in multiple regions. Moving the application closer to the user reduces the effects of network latency, leading to an overall better user experience. There are many ways to build a globally distributed application; one common method is using a geographic location-based DNS (GeoDNS) solution. With a GeoDNS solution, the authoritative DNS server for a domain factors in the location of the client when forming its response, sending clients to the data center closest to them.
NGINX Plus along with GeoDNS creates a globally distributed application
There are many Geo DNS solutions available, such as Route 53 from Amazon. Combining them with NGINX Plus you can create a globally distributed and scalable application. In the diagram above, GeoDNS directs users in California to the US West data center, while users in New York are directed to the US East data center. Within each data center, NGINX Plus distributes the incoming traffic across the application servers.
If you’re considering moving to the cloud, it makes sense to reconsider your application delivery strategy as well. Hardware ADCs might work well for on-premise deployments, but they can’t be part of a cloud architecture. Though most hardware ADC vendors offer virtual versions of their appliances, they are unnecessarily expensive, forcing you to pay for features you don’t need in the cloud. Moreover, the virtual versions are usually supported only in select clouds, whereas NGINX Plus runs in any cloud.
NGINX Plus is a software ADC designed to run in the cloud. It’s available at a fraction of the cost of virtual hardware ADCs, but with all the functionality you’ll actually need.
Published at DZone with permission of Patrick Nommensen , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.