In my daily interactions with clients, I am often asked what the first step should be toward Cloud Computing. Invariably, my answer is 'Standardization.' Standardization has far more importance than just being the first step to cloud, but it also makes the transition much faster and more secure. I want to spend a little time talking about why standardization is so important, then delve into how it will ease your cloud migration.
Southwest Airlines was one of few airlines (if not the only one) to retain profitability during the recent financial downturn and major events that negatively impacted the industry as a whole. In my opinion, the largest reason for Southwest Airlines success is that they standardized on only one type of aircraft - the Boeing 737. Other airlines, who fly several different aircraft, have to stock parts, train mechanics and pilots for each type of aircraft they operate. What this situation creates is a massive overhead of parts, people, certifications, training and much more. Southwest only has to stock parts for one line of aircraft, train mechanics and pilots for one type of aircraft and worry about one size of aircraft at a terminal. The routine day to day problems that they encounter will be the same and there are processes and procedures to deal with them. This is a highly streamlined way to do business, and it all is a result of standardization.
I use the Southwest Airlines example almost religiously because it shows what a company can gain when they standardize internally. In IT, there are several areas to standardize, but you will get the most 'bang for your buck' in standardizing the operating system and application stack (to include programming language). Hardware has become a commodity and most operating systems in production today can install on just about any vendor's hardware (Oracle Sun, HP, Dell, IBM, etc.) so long as the processor architecture (Intel/AMD x86, SPARC, PPC) is supported. It is best to standardize on one (or at most two) hardware platforms so that training and support for your hardware is streamlined and efficient. The same applies to the operating system as you do not want to have to hire several different people with varying skill sets to accomplish the same tasks. At the application layer, having the same application server and programming language makes deploying and maintaining the applications much easier. If you are able to standardize to the point where you can get all of the above from a single vendor, you have the ability to leverage a single support infrastructure across all product lines. Yo do not have to worry about the hardware vendor pointing at the OS vendor while they in turn point to the application stack vendor.
As an example, I use Sun Microsystems (now part of Oracle) to illustrate how this all works. I'll start in reverse order with the programming language - Java. Java is a very powerful language in and of itself, but what is more important is that it was designed to be multi-platform from the beginning. The same code can be installed onto any server with a Java Run-time Environment or Java Application Server and it will run without issue. The code is not compiled to the operating system and thus not tied to only one OS. This is also huge in terms of avoiding vendor lock-in because if you no longer want to use a certain Java Application Server, you can simply choose another and migrate over without issue. There are many Java Application Servers on the market and they all accomplish the same thing (serving up Java applications), but they do differ in additional features (such as management) offered. Sun, of course, has their own Java Application Server, and it is optimized to run on the Solaris operating system (although it does also run on various Linux distributions as well). This brings me to the next layer, the operating system. Many businesses deal with the issue of having to maintain different operating systems (such as Linux, UNIX and Microsoft), and it is probably the single largest headache and inefficiency that exists in IT today. As a matter of fact, the primary reason that VMware (and other virtualization vendors) have been so successful is that they were able to put multiple operating systems on the same hardware. This does net you some efficiencies at the hardware layer, but you still have to individually manage the operating systems of the virtual machines.
So, we've talked about keeping your programming language, application server and operating system standardized, and I have previously stated that hardware is a commodity now a days, so why not buy the hardware from the same vendor if possible? Fortunately enough, Sun does make hardware as well. Again, this provides you with the ability to point to a single vendor for support issues as well as reap the efficiencies gained where the vendor optimizes pieces of the stack to work better with each other than they would spread across different vendors. This is Oracle's new claim to fame, and they will be leading with that marketing pitch going forward. Aside from price being a sticking point (if it happens to be one) there is no reason not to employ your entire technology stack from a single vendor.
Now, how is this the first step into the cloud? The cloud as it exists today is a melding of various open source technologies that provide a platform or framework on which you can deploy your applications. The major cloud computing vendors have already optimized their stacks and offer you several areas in which to enter the cloud. You can buy infrastructure as a service and deploy your own application servers and code on top of the IaaS or you can buy the platform as a service, where the application server is already decided, and you just deploy your code on top of the platform. Lastly, you can also buy into a SaaS application and hook into an API, if provided, to leverage the software more to the needs of your business. No matter which path you take, it will be significantly easier to step into the cloud if you have standardized internally and know exactly which components you need to migrate and how those components interact with other parts of the stack. The standardization process gives you these insights as well as the ability to highly optimize your infrastructure moving forward. These same principles apply to building internal private clouds or hooking into public clouds. There are so many other things that are gained with standardization, and I will cover those in future articles, but the scope of this article was to articulate how standardization is the first step toward a successful cloud migration.
Feel free to ask any questions in the comments section or email me via the address in the "Contact Me" section.