Bi-annually (and by that I mean twice a year, not once every two years) I plan a Disney vacation. It is a time consuming process (both painful and pleasurable) of planning, and re-planning the itinerary in detail based on a number of factors:
- The “mood” of the vacation, which of course determines the purpose: A food-cation, where the goal is to entertain our taste buds and maximize the value of our free deluxe dining plan *OR* a relax-cation, where the goal is to SLOW DOWN and enjoy the sights and sounds of the Disney resort and shopping eco-system *OR* a maxi-cation, where the goal is to take a hard run at each and every ride within each and every park with no breaks other than the occasional mickey bar
- The crowd calendar: on a scale of 1-10, how busy will each theme park be on each day of the trip to minimize the potential average ride wait time, which of course creates the day-to-day itinerary
- Which fine dining establishment we would enjoy that happens to be in spitting distance of the exact location where we will be standing at the exact moment we will be hungry between the times of 11:45 and 12:15, and 4:45 and 5:15 each day. Reserve and add special instructions as needed
Appreciating that I may have more of a post-graduate understanding of the Disney trip planning and execution process, most families wouldn't have to go through this kind of upfront work. In fact, there is one common thread among all Disney vacations: ANY Disney vacation will be a magical experience. Disney understands that for the most part, families don’t want to book a hotel, reserve a restaurant, schedule a ride time, all the individual details of a vacation. Families just want a vacation at the happiest place on earth. The same “understanding” is also true of creating your home entertainment system. Overall, you are not looking to buy a television, amplifier, speakers, network connection, and cable provider. You simply just want watch your favorite TV show. Likewise (and the reason for the blog), the same “understanding” is also true of creating infrastructure platform. Overall, you are not looking to buy compute, storage, networking, and a co-location provider. You simply just want a place to run your applications. Let’s see what I mean:
- When you design your home entertainment system, you:
- Start with the goal: I want to watch my sitcoms on the big screen tv in my living-room, my kids want to watch their cartoons on their tablets in their bedrooms, and my wife would like to watch her movies on her laptop in the office. All at the same time.
- Identify multiple solutions that satisfy the goal: I could simply extend the rabbit ears on my TV *OR* I could implement a full home theatre that streams content from all over the world. I could buy a DVR *OR* have my computer record the shows *OR* always download form the Internet. I could buy all the components from the Big Box store *OR* find the best price/quality from individual boutique stores. Considering I need to access all media with several devices simultaneously, I probably need a means to store them centrally.
- Components must be independent: Assume anything can break for any reason (thunderstorm, flood, over active wii game). If my combo tv/dvd/surround sound sparks into Neverland, I don’t want to rebuild the entire system. Also, it’s probably not a good idea to have the TV be the connectivity hub, If it breaks, I don’t want to completely rewire the system ground up.
- Can do the simple stuff on your own but may need help for the harder parts: While I’m pretty sure I could plug most of the components together, I am far from an expert in sound and picture quality for 7.1 surround sound and 1080p quality movie playback. They have people to help with that right?
- Will always be upgrading parts of it: I will need to keep up with the awesomeness of innovation. There will always be a better way to access content, there will always be a better resolution to view, there will always be a new device to watch it on. I have to assume it will grow and change constantly.
- Need to assume mobility: Considering its quite unlikely that I will live in the same house for the next 50 years, I need to presume the system can easily be recreated in another location, or at the very least my content is never lost if I want to rebuild a whole new system in my mansion by the sea.
- When you design your infrastructure platform, you:
- Start with the goal: My users want to access all their applications from all their locations wherever they are
- Identify multiple solutions that satisfy the goal: I could simply install all of my applications on a very big single site physical server *OR* I could implement a fully functional hybrid cloud across multiple geographies. I could buy a converged stack *OR* implement scale out equipment with OpenStack software *OR* always use the Public cloud for all computing needs. I could buy all the components from a single provider (if one actually existed) *OR* find the best price/quality from individual technology experts. Alternatives are a necessity because business requirements are different.
- Components must be independent: Assume anything can break for any reason (power outage, HVAC issues, extreme utilization changes). If my core routers breaks, I don’t want to rebuild the data centre. It’s probably a good idea to implement abstraction/virtualization throughout the system (application, operating system, storage, network). If anything breaks, I don’t want to completely rewire the system.
- Can do the simple stuff on your own but may need help for the harder parts: While I’m pretty sure I could plug most of the components together, I am far from an expert in application and infrastructure detailed configuration, and performance tuning. They have people to help with that right? Probably best to go to the people that engineered the products.
- Will always be upgrading parts of it: I will need to keep up with the awesomeness of innovation. There will always be a better way to access applications, there will always be a faster processeser, there will always be a new standard or protocol to enable. I have to assume it will grow and change constantly.
- Need to assume mobility: Considering its quite unlikely that I will need to manage the same portfolio, with the same business users, and the same clientele for the next 50 years, I need to presume that all 400 applications can easily be recreated or moved to another location, or at the very least my data is never lost if I want to rebuild a whole new system in my data centre by the sea.
See what I mean? I just want a place to run my applications.