What the heck am I talking about?
Everyone who is doing anything at massive scale in today’s world is using some sort of “cloud” technology to accomplish these tasks. This technology can range from private/public clouds or even some internally built app based around cloud principals. The thing that a lot of people are trying to capture is infinite scale as well as application portability and resiliency. Notice I didn’t say cost as if you do a study on how much the cloud costs it will probably end up costing you more that just doing a colo or two in the long run. The thing that most people miss on is the fact that whoever’s or whatever type of cloud you are using will and probably has failed. You need to design you apps for this so that the app can handle these types of failures internally without disruption to the end user. This type of solution can be handy in the event of a region of a cloud going down. But what happens if the entire cloud goes down? The answer is to create the cloud of clouds. A cloud of clouds is basically the process of making multiple clouds act as one from a management and from a user standpoint. So you take you code that you have reworked to allow for failures to be handled within the app and you apply it to the cloud of clouds template and all of a sudden you realize that now you can lose a entire cloud and still be working. Add three or four different cloud providers to this mix along with automated scaling that you get from your management piece and all of a sudden you have created a cloud that is as resilient and scalable as anyone without a huge CapEx expense upfront. OpEx is going to feel the burden of funding this bill but you will only be paying for what you use. Obviously if you need to scale out than business is going good and should be able to handle the extra costs as they are incurred.
How is this accomplished?
So one thing you have to realize is that this is not a strictly IT endeavor creating this cloud of clouds. This is a project that will take a team of IT, DBA’s and developers all working together to get this project to the point where it is infinitely scalable and resilient without manual interaction. It probably is possible to do this in a silo’d type environment but it would take an order of magnitude longer. Create you team of rock stars from the three areas and let them create something great.
How are you going to manage this environment?
Rightscale and Enstratus as two huge players in this area right now. If I were you I would be reaching out to one of them to figure out if they are the right fit for you. There are some alternatives like Chef and Puppet that have a lot of the capabilities you need as well so check them out too.
What’s my take?
This type of approach truly has the ability to bring scale and resiliency to the small and medium sized players in any industry that have typically been reserved to the big guys like Google and Facebook. We all need to start embracing these ideas and try and move the needle on what we all can accomplish.