I was thinking the other day about the trend in software today to move more and more things to the cloud. Of course, there are many different definitions about what that means. Here are just a few of the ones I have been able to find:
IaaS – Infrastructure as a Service – This model provides physical and/or virtual machines for companies to use by subscription/rent rather than having those companies purchase the equipment themselves. Supposedly, this will save money because you only pay for the hardware you actually need and these large companies can negotiate better deals with the hardware manufactures due to the quantities of equipment they buy. In addition, they will buy the biggest hardware they can get and virtualize it across multiple users.
PaaS – Platform as a Service – This model not only provides hardware (or they ‘buy’ it from IaaS vendors), but they also provide the operating system, computer languages, databases, etc. Again, by building large systems with many users, these companies can negotiate better prices from software vendors as well as better prices on hardware than individual small companies can get.
SaaS – Software as a Service – This model extends the PaaS model by providing not just the supporting operating systems, languages, and databases, but the applications that the user needs to run.
STaaS – Storage as a Service – This model provides ‘rental’ space for storing data, files, and applications. Some common STaaS companies you probably already deal with include Box, SkyDrive, and others.
DaaS – Data as a Service – This model provides libraries of data that you can use to ‘discover’ relations in your data. Some of the libraries might include basic demographic data, census data, sales data, etc. Some of these services have been around for a long time providing data to companies who may want to perform analysis on their company’s activities. For example, back in the early 90’s I worked briefly for a company that contracted with manufacturers to perform marketing analysis on advertising promotions. We would purchase sales data from various retail chains and compare actual sales against manufacturing shipments to determine how effective sales promotions were.
There are others, but the point is that I started my IT journey working with computers back in the day when the mainframe was king and personal computers were just coming out and considered by nearly all IT professionals as nothing more than toys. In the 80’s and 90’s personal computers in business led first by IBM and then by the Compaqs, HPs, Dells, and others virtually killed the market for ‘big iron’ computing. This freed computing resources from the shackles of centralized control giving every department the freedom to use computing power to create that applications they had been asking for. Soon everyone was creating their own spreadsheets to analyze data and Access databases proliferated. The point was to decentralize computing and to get away from the ‘controlling’ environment of the centralized IT department that determined what you could have and when you could get it. Centralized software as considered ‘evil’ and decentralized software represented ‘freedom’.
Over the years, concessions were made to client-server modeling computing largely due to the need for a centralized database that everyone could access rather than dozens or even hundreds of small data files that were hard to aggregate and get a big picture of what was really going on. I won’t even go into the issues of Access databases being passed around with everyone making their own little change here and change there resulting in dozens of inconsistent versions.
Soon applications followed data to the servers again largely to provide consistency, a single place to update new releases, and because server hardware allowed for more powerful CPUs, more memory, and larger disk drives. There was also the realization that most of the ‘freelance’ software developers were not creating enterprise quality applications resulting in a lot of loss productivity when these applications failed and the original developer had moved on to their next victim….a….company.
These steps led in time to a consolidation of processing power that has not stopped, but has been accelerating and is now headed directly toward the cloud. Cloud vendors make all sorts of promises telling you how their cloud products will save you money, result in less support needs by your company, and make updated software (no matter whether you are talking about the OS or an application) available incrementally rather than with massive version updates. (Maybe another time I look at the challenge incremental updates might pose to companies testing and accepting changes that get pushed out monthly or even weekly.)
Isn’t this all similar to politics? One political party wants to centralize more power in the government and have people more dependent on what the government can provide to them rather than what the people can provide for themselves. The other political party wants to minimize the government and let the individual (or company) do what they feel is best and what works best in a ‘free’ market. Isn’t this the same trend we see over time in the computer industry? Furthermore, are these trends synchronous? And if they are synchronous, is one causative of the other or are they merely associative?
I suppose that is something to ponder as we approach another major election. My only recommendation is that if you are not registered, register, study what the candidates stand for and then get out there and vote based on your beliefs. It may not change the direction of computing going to cloud, but it could change the direction of the country.
C’ya next time.