Cloud Computing Part 1: Getting Started
Most of the architects, CIOs and CTOs I have run across tend to have a natural curiosity for technological trends. Kind of an obvious statement given their roles, but what I’ve also found is that these same individuals are some of the biggest skeptics you’ll find. I would include myself in that mix. Why? Because we’ve been burned, over and over again by the promise of the “next big thing” only to have them flame out as fast as they burst onto the scene. Anyone remember Oracle’s Network Computer? I’ll come back to that in a second.
As business executives and system designers, we have to weigh the risks associated with early adoption against the potential rewards that may be seen by merging into the fast lane. One of those debates that most in the industry are currently being challenged with relates to the topic of Cloud Computing.
It is arguable whether moving to the cloud is still considered a huge risk as much conversation regarding the topic has now entered the mainstream. In any event, as an architect and CTO, I see Cloud Computing as different from the traditional “risky” trends regardless of what the mainstream is currently doing. Here’s why…
- Low point of entry I’ve long been a believer in starting small and adding incremental value over time. The multitude of cloud vendors on the market today have positioned themselves to allow you to do just that. In terms of services, you can choose, in true a la carte fashion, as little or as many capabilities you want to start with and scale from there. Coupled with the competitive nature of the cloud vendors, the cost of these cloud services is quite affordable comparative to building and maintaining these yourself.
- Historically consistent pattern I mentioned earlier the Network Computer that Oracle introduced in the mid-to-late 90’s. The concept of the NC was to rely on the power of the Internet to provide applications and services to simplistic devices that were essentially dumb terminals. One can argue that the NC failed because it was simply ahead of its time. Remember that at the time this was launched, the average consumer was still utilizing the dial-up quality bandwidth. Additionally, the web was not considered mainstream until around the same time, let alone any concept of web services existing. That said, conceptually the basic concepts evangelized by the NC are the same as what we find in Cloud Computing. Granted, CC takes a much more vendor agnostic approach, but the patterns are essentially the same. As a result, to me anyway, the typical risk associated with early adoption is mitigated by the fact that CC does not represent any real innovative ideals. It simply represents a natural evolution of concepts that have existed for a long time. Now with sources for high-bandwidth readily available and quite affordable, and the full maturation of various service models, the challenges experienced by the NC have now been overcome.
- Start small with low-risk, commoditized capability. Migrating capabilities like email or various other office productivity applications to the cloud are low-risk/high-reward activities that can be performed in a relatively short amount of time. Even if you are proven wrong in your vendor selection, the pain felt with migrating to another vendor is significantly less when compared with what might be felt with more proprietary solutions.
- Diversify. To borrow a line from my financial advisor, putting all your eggs in one basket is never a good idea. As much as you may be in love with your cloud vendor, to go “all in” with any one solution is inherently risky. My typical recommendation is to create a hybrid model that blends multiple cloud vendors (assuming it is cost effective and makes architectural sense) with on-premise capabilities. This way if one vendor happens to experience an outage or security breach, you are not completely dead in the water.
- Vendor flexibility. In the selection of your cloud vendor(s), try to make sure that they provide the most flexibility as possible for future migrations. I tend to gravitate more to Microsoft Azure in this space for our clients simply because of the ability to run on both Microsoft and LAMP stack-based platforms, but you’ll need to evaluate what is right for you and your company.
- Gain Experience and move forward. Lastly, the one big complexity I run into quite frequently is in regards to the CC pricing models. As much as the vendors want to claim their simplicity, there are a lot of moving parts to these models that frequently remind me of why I hated my college calculus class so much. My typical recommendation, coupled with the “start small” concept, is to gain as much experience with what your commoditized applications cost on these platforms as possible before you go too far down one path. You may find that certain types of applications make sense to keep on-premise simply because of the cost model alone. The more data you have the better decisions you’ll make.