by Daniel Willems
So you just finished shopping at a busy store and you have the dreaded decision of which line to use to pay. Which line should you choose?
The goal is just to pay right? Not to use a certain line. Every cashier does pretty much the exact same thing. So what do you do? You look at the length of the lines. How fast are they moving? Did someone just turn off the light, and is not taking anymore shoppers? Did a line just open up?
Your thought process on which line to take is similar to how a load balanced system works with multiple servers behind it.
This is a brief, high level explanation on the setup of our system, but it is similar to many/most out there. Your website, we call them BrandHubs is a small part of a computer on many computers (they are also called servers) running in “the cloud.”
Why is my one BrandHub running on many servers?
Well think back to our shopping scenario. We have users constantly arriving and looking to “pay” or visit your site. They just want to get to your BrandHub the fastest and most consistent way possible.
So your site, along with others is duplicated and dispersed across these servers. If there was only one it could never go on break, take lunch or have a sick day.
Each one of these servers has an IP address, I will come back to that later, it is important.
As I mentioned before, the load balancer is the decision maker. It is the brain that decides what is the fastest way to get to the site.
A Load Balancer doesn’t provide an IP.
Load balancers have an endpoint, which is basically a url or web address.
To simplify it is like a website that manages the traffic to all the possible duplicate versions of your site and it is really good at doing that.
How do I setup my BrandHub with this FunnelAmplified?
Our platform will walk you through setting up a CNAME record at your DNS provider with verification steps along the way so I won’t go into depth on the steps of how to do it here.
However, I will walk you through what all of these abbreviations mean, because they can be confusing.
Ok so DNS, is a Domain Name Servers and a DNS provider is typically where you buy your domain. It can also manage how the internet views your domain or be the authority for that domain.
To expand on the shopping example let’s say the store is in the mall. The internet is the mall. There are millions of stores. If users need to find a store they use the mall directory. DNS is like a mall directory.
The CNAME record is a type of record at the DNS provider that will point a subdomain at a url.
What is a subdomain?
Think of how sites in the past always used to have “www.” at the beginning of them.
www is just a subdomain and can be used as the CNAME record to point at a load balancer.
Occasionally we will have a client ask if they can use their root url in our system. A root domain is just your domain without a subdomain. This adds complexity and we typically recommend against using it.
Why can’t I use my root url?
Well the DNS providers, especially the bigger ones like GoDaddy don’t let you point a root domain at a url. You can only point an A record at an IP address.
If you think back to our mall comparison and you look at the directory (DNS) and look at an A record it will only point at a single IP (our cashier). So that will get you to the store, but once you get there you have to use the cashier from the directory.
Remember their rigid IP makes them the only one that can service you. If he or she is gone for the day, then your customers need to wait, keep trying, or leave and say they won’t shop in that store again.
Again the CNAME record is the option that would point at a url. This is where our load balancer comes in. So we could say once your customers get to the store they can use any cashier, whoever is working that day and is available to take their money.
The only requirement of a CNAME is that the domain has a subdomain.
Is there anyway to still use a root url?
Some progressive DNS providers will allow you to point a root domain at a URL, they may call them alias or ANAME records, but as mentioned, oftentimes this is not the case.
One solution we recommend if your DNS provider does not permit this is to redirect root domain traffic to a subdomain.
So for instance you could redirect “mycooldomain.com” to “www.mycooldomain.com” and use a CNAME for “www.” pointing at the load balancer. We often use this option with GoDaddy.
All that being said, we could track down an IP address for you to use in your setup, but this comes with some large limitations. Your site could/will go down. At least I can guarantee it has a much higher chance to. Your site will definitely be slower. We only have a few IPs that we can use, so any other sites requesting to use IPs will move more traffic to this single server. In the event that an IP is no longer usable we would require you change to a new one. That would be unlikely but it would definitely be a possibility. Until the change is made in your DNS your site would be completely unavailable.
Is my BrandHub secure?
The last large piece of our service you lose using an IP address for your setup is SSL encryption.
Our system, like many others manages SSL certificates at the Load Balancer. The reasons for this are beyond the scope of this post, but essentially, we offer SSL encryption as part of our service when traffic is handled through the load balancer.
What this means is that we could not serve your site at https without adding your certificate directly to the server of the IP address you are using – which we currently do not support.
As you can see a load balanced system has its benefits in distributing traffic to a highly available and scalable system. It has some constraints but with minimal adjustments, it works with the large majority of our customers.
If you have any questions about our system or want me to address a topic in a future post please feel free to email me.
Happy site building!