98% of organizations say that just an hour of downtime could cost them $100,000. Can you afford to lose that kind of money? Even if you’re not a fortune 500 corporation, downtime could be costing you a sum that you’ll never be able to estimate.
That’s because customers don’t just come back when your site is back up. When a consumer sees an unreliable site that’s constantly down they go to a competitor permanently. Today’s consumer expects your site to be available 24/7 and if it’s not you’ll be paying the price.
What is high availability and why is it important?
High availability should be a top concern for any business as it can impact you in unexpected ways. Here are some of the benefits you can expect to get from it.
● Improves your reputation with your visitors
Visitors are wary of sites which have frequent downtime. If a business can’t even keep their website up then why would visitors trust them with their money? Always being available makes customers perceive you as more reliable.
● High availability solutions can improve website performance
Many of the improvements that you’ll need for high availability can actually improve your website’s performance for visitors. This includes directing them to a server closer to their physical location which can greatly speed up your website’s loading times.
● Reduced risk of data loss
High availability solutions often include mirroring your data across multiple servers. This means that you’re at a much lower risk when it comes to data loss. This means that even if one server bites the dust you’ve still got many others preserving your website’s important data.
● Avoids server disruption during maintenance
Don’t trouble your customers with minor server maintenance. In a good high availability environment, they won’t even know that you’re working behind the scenes.
How do you create a high availability Drupal installation?
Scaling up your Drupal installation, of course, requires adding more servers to handle your growing user base, but this comes with a small issue. You need to know how to mirror the files on the servers and then find a way to access them when the user requests it.
This requires employing some creative methods to accomplish what you need to create a high availability Drupal installation with limited downtime. How exactly do you do that though?
There are four major components that you’ll require in order to deploy a high availability solution. Each one presents its own challenges that you’ll need to work through, and there are even multiple ways to handle each one.
Some solutions are tougher to use than others, but we’ll cover the basics so that you can talk to your team about deploying these expansion methods for your website.
Balancing your load
Every time someone accesses your website they are putting a strain on your servers. Your goal should be to minimize the impact that this load has on your website. You can do this by carefully balancing your server load.
When a visitor lands on your web page they should be directed to the server which is best able to respond to them, saving overworked servers from crashing and routing that traffic to those currently under less stress.
The most popular way to do this is by use of a DNS rerouting service. These applications are efficient, cost-effective, and in most cases, they can stop your site from having any downtime at all from your servers overloading.
They do a great job of distributing your traffic more evenly and saving you from disappointing your visitors. There are hardware solutions for this as well, but they’re too cost prohibitive for most applications when compared to cloud solutions.
By implementing this you’ll also likely gain the benefit of having a better performing website. That’s because your DNS rerouting will allow you to point visitors to a server that’s closer to their physical location.
Server response time is heavily dependent on this and by being smart about how you direct your traffic you can achieve a better user experience for your visitors. This can even increase your search engine rankings because Google uses speed as a ranking indicator now.
Using a shared file system
Creating a high availability Drupal installation comes with a small issue. The file system needs to be shared in order for your load balancing to be effective.
If a user uploads something on a server those changes will not automatically be reflected on the other servers. This can cause you major issues where assets are missing, and it’s something you’ll need to handle in your scaling solution.
The answer to this problem is to use something like a SAN (Storage Area Network). This moves stored resources that all of your servers will need into a high-performance environment. It gives shared access to all of your applications so that they can pull from these files.
SANs are great for distributed applications, and they can also help with data protection and security. It’s also generally easy to add additional storage capacity for SANs as your website grows and requires more and more space.
SANs also allow you to use switches which can help you to control which applications have access to what data for security reasons. While this solution is not perfect, it’s one of the simpler ways to accomplish this goal.
Managing your database better
For many Drupal based websites, an obvious way to scale is actually to decouple the web server and the database and give each one its own server. However, for very large applications this may not be enough and you will need to distribute your load across even more servers.
In this setup, you should have one master database which your Drupal installation will know it should write to first. This one will be marked as a priority in the file system, and then it will begin passing those updates to your secondary servers.
This creates a mirror of your most important data that contains the lifeblood of your website. Having a set up like this has a serious advantage over the first method we mentioned even though it’s more difficult to pull off.
That’s because you essentially have multiple copies of the same data. That means that if your master server decides to die (which all hardware eventually does) or if you suffer some sort of catastrophic failure, you’ll be able to quickly transform one of the slave databases into the master database.
Thanks to distributed file hosting you can pick up right where you left off as if nothing ever happened. If you have a good balancing solution in place your visitors likely won’t even know that your main database was ever down at all.
Deploy multiple applications
While using a distributed hosting situation has superior scaling capabilities to just splitting the database and the web server, it also comes with some unique challenges. In order for this set up to work you actually need to deploy different applications on all of your servers simultaneously.
This will likely require employing the use of some automation tools which can help you to keep everything functioning properly. Something like Drush can help you with putting these mechanisms in place.
You will, however, need to make sure that all of your servers are set up the same way so that there are no hiccups in this process. Otherwise, you might run into the frustrating problem of having only some of your servers actually functioning properly.
Drupal disaster recovery, what do you do when disaster strikes?
Damages related to cybercrime are reported to hit $6 trillion dollars annually by 2021. Literally, every single website on the internet is at risk of a cyber attack from criminals that want to steal or corrupt their file systems.
Sometimes these criminals demand a ransom for the return of files, but in other cases, they may just settle for selling your user’s private information. This can cause massive damages to a company, and in some cases, many of them won’t ever recover.
If you think that your website isn’t big enough to be the victim of a cyber attack, think again. 43% of small businesses are the target of cyber attacks and 60% of them go out of business within 6 months of an attack due to a lack of preparation.
Even if your website security is top notch, don’t think you’re safe from harm. There are plenty of other reasons that your data could be destroyed that don’t require malice.
It’s important to remember that every server is stored in a physical location. These locations are subject to natural disasters, the insolvency of their parent companies and many other scary situations that could render your data gone for good.
That’s why if you want to protect your hard work it’s important to have a disaster recovery plan in place for your website. Let’s talk about what a disaster recovery plan is and how you can create one to protect your business.
What is a disaster recovery plan?
A disaster recovery plan is a documented set of procedures set up by you or your company which gives detailed guidance on what to do in the event of a disaster. It’s intended to protect the company’s assets in emergency situations.
You’d likely structure your disaster recovery plan something like this.
● Preventative measures
A preventative measure is there to make sure that disasters don’t happen in the first place. In this section, you might evaluate your security protocols and make sure that they are capable of keeping out intruders, one of the biggest threats you’ll face.
● Detective measures
Quick detection of problems allows you to limit the damage they cause. By keeping on top of potential issues you can limit your downtime and lock down your important files if a security breach has happened.
Your plan should include some excellent monitoring tools which will keep you informed about any downtime you experience and inform you of issues before they become critical.
● Corrective measures
Corrective measures are how you recover from the disasters you’ve detected. These measures might include planning how your backups will be made and how to deploy them quickly. Do you have onsite and offsite backups?
If your security is compromised do you have a plan in place for taking back your files from the intruder? How will you access your system if someone else has control of it?
How do you create a disaster recovery plan?
The first step to creating a disaster recovery plan is to identify the threats to your website. What could really rain on your parade and ruin your business?
This could include things like DDOS attacks, server failure, and natural disasters. Are there any other issues which you should be prepared for? If so, add them to the list.
Next, you should think about how you would recover from each of these issues. How quickly would you be able to get your site online? In your current setup would your files be able to survive?
Using a distributed file system and having excellent preventative measures in place is a great place to start for disaster recovery. It allows you to recover your server data quickly and minimize any downtime.
However, if all of your data is stored in one facility then you still have the risk of a natural disaster taking out all of your information. You should have mirrors of your data in multiple locations just in case to prevent this from happening.
In conclusion, while scaling your Drupal site is no walk in the park it can be done very effectively. In fact, Drupal is one of the top choices for high availability websites and even the white house relies on Drupal for this.
If you’re not capable of setting all of this up yourself then there are services which can help you. However, in either case, it’s worth doing because of high availability and the ability to recover quickly from disasters is important for the success of any business.