One of my favorite parts of working here at Rackspace is getting to work directly with startups. I love the energy, the enthusiasm and the culture (I worked for three startups in a row before coming to Rackspace). Having seen startups both thrive and fail, I now see a startling reality: The number one killer of small businesses isn’t failure, but success. When startups haven’t planned for the amount of traffic that they can get at a venue like SXSW Interactive, their moment in the spotlight can be more damaging than good. Don’t let success at SXSWi crush your dreams. Take action today to prepare your project for success.
CDN all the things
Compute is the most expensive part of the cloud - don't waste those resources on the distribution of your content. The cloud has an entire infrastructure set up to not only ensure that your content is delivered speedily, but is also cached geographically for the next request. This outsources a sizable load on your server onto a cloud feature that is perfectly suited for this task.
Pro Tip: To prevent a total loss of connectivity, create a static landing page for your domain. If all else fails, your landing page will always be available.
If you’re in the cloud, use cloud architecture
More often than not, when we see a customer’s site fall down during a high traffic event, they’re hosting on a single server. Performance and stability on the cloud requires a distributed architecture to protect against any single point of failure and to leverage the infinite scalability that the cloud has to offer.
The easiest way to do this is to set up a Cloud Load Balancer in front of your configuration. Why? Because it will provide you a persistent IP for DNS, an extra layer of content caching, the ability to use custom error pages and, most importantly, the ability to be agile with your environment at a moment’s notice.
Don't create a single point of failure, and don't create several potential single points of failure all over your application. Instead, distribute your application into a tiered architecture.
Separate your web and database functions by creating multiple web nodes behind a load balancer, and separate nodes for your database(s). Every piece of your application should be redundant; as many pieces as possible should be on redundant, fault tolerant platform services, i.e. Cloud Load Balancers.
Pro Tip: If you think your traffic might be extra “spikey,” have some “hot spare” nodes already spun up and ready to be added to an existing load balanced cluster. Use a configuration manager like Chef or Puppet to assign the spares where needed.
Take a few minutes to set up monitoring
You can make all of the necessary changes to make your application strong and redundant, but if something does goes wrong, you need to know about it. Rackspace provides several different methods for monitoring your application - ping, port, HTTP Status, web page content and our third party partners also offer application level monitoring that can help you find problems before they take you down completely.
Pro Tip: Since most cloud-centric monitoring platforms, including our own, have hooks for an API, you can add in some code to your application to automatically respond to monitoring alerts with an appropriate reaction – i.e. spinning up a new web node when traffic spikes, and spinning it down as traffic subsides.
Create an emergency plan and conduct a “fire drill”
So what about when something unexpected happens? Your launch will go much more smoothly if you turn the unexpected into something expected. This means having a contingency plan in case your site becomes unavailable. Once you have your configuration set up, be sure to load test it. Find out what happens when you kill a server right as people are accessing your application, or how the site reacts when you add a server image. What if you perform a reboot? Simulate high traffic events, make note of what happens and have the appropriate measures in place. Do you need to beef up your database? Or spin up additional web nodes? After you make those changes or additions, test it again! Also don't forget to backup! You can never backup enough…go do it now, we are not kidding. Do it. Allow yourself ample time for this process so you're as ready as possible for the big day.
Move your blog to Cloud Sites
Your application may be the bread and butter of your business. Keep your focus on your business by offloading the management of your blog to Cloud Sites. The Cloud Sites platform takes care of many of the single points of failure, but your blog may need to adjust to Cloud Sites. For example, serving dynamic MySQL / PHP every time will only beat on the shared Cloud Sites platform and limit your scalability, if not doom you. HTML is still the gold standard, and plug-ins like WordPress SuperCache will help you to stay afloat. Remember, CDN all the things!
Let us know about your High Traffic Event
You don't have to do it on your own - we're here to help. Call your hosting provider and let them know about your event. From our end, a launch beyond your wildest dreams looks a lot like a DDoS attack. If we know in advance, we can better respond. We can help you implement the suggestions mentioned and provide additional advice. Plus, we want to cheer you on! Call us today at 1-800-480-3163 to get started.
Allison Henslee and Jason Swindle from the Cloud Launch team contributed to this article.
Be sure to check out the Top 5 Reasons Startups Love The Open Cloud.