Wednesday, April 15, 2009

Cloud Computing - IT'S A REALLY BAD IDEA, GUYS!

My CS instructor is a believer in cloud computing, and after reading an article that he sent to me singing the praises of cloud computing, I wrote this in rebuttal of my argument. For the record, I really like my CS teacher. He's intelligent and funny and he seems to know what he's doing. I just disagree on this one point. So I thought I'd post what I wrote here, just to continue the argument I started a while back.
In truth, this article only goes to further my dislike of the concept. When we centralize processing power, when it becomes a utility that we buy into, a few things happen:
  1. The center becomes an obvious and frequent target for malicious crackers who want my data.
  2. Centralized processing providers become a corporate entity, and they become exactly as inefficient and careless as other corporations providing any other product or service (more detail in a moment).
  3. The economy on the whole takes a downturn.
  4. The experience of the individual computer user is unfairly diminished, as is the value of the non-cloud system we currently have.
In fuller detail... Data Mining I work for a company called Multimedia Games. We develop video slot machines, mostly for Indian casinos on reservations. When you play these video slots, you're really playing Bingo cleverly disguised to look like video slots. Since we are bound by a lot of legal restrictions, Bingo must be played exactly by the rules, and that means that multiple people need to be playing at once to get a game result (winners/losers), and that means that a network is involved. We have a rack of servers installed at each casino that plays the games and sends the win/loss data to the playerstations, then records financial data, gameplay data, marketing data, and a ton of other data related to casino-specific needs in a database. This data is crucial to the continued operation of my company and the individual casinos. Also due to high regulation, we go through tons of measures to make sure that this data remains secure. To host this data on shared devices or virtual machines in the public domain (meaning The Internet, not in the copyright sense), would be an extremely dangerous move with risks that propose a serious danger to our business. This is a specific case, but it's a bad idea in general. Any time that you gather data onto one set of centralized servers, those servers become an immediate target for crackers who want that data for malicious purposes. Hardly a month (or a week) goes by without some kind of attack or security failure on an email server or MySpace or Facebook or an operating system in general becoming public knowledge. Technology is not infallible. In fact, when it comes to security, the best we can do is make it difficult on attackers. No amount of protection will keep out a person with enough knowledge and determination, and that alone is reason enough to distrust a centralized, utilitized data center. Corporate Inefficiency I'll use Dell as an example here. They used to be a small company reknown for their quality computers at affordable prices, backed by a solid warranty and service center. This, of course, attracted more and more customers, and these days, almost 50% of the PC market is populated with Dell desktops and laptops. Dell has infiltrated the corporate workplace and constantly battles Hewlett-Packard for workplace market share domination. Dell became huge, and decided, as corporations inevitably will, to cut costs. Their hiring policy is now one where most entry level positions last six months before that wave of employees is fired and a new team is brought in. It keeps them from having to give raises to the largest segment of their employees. Their computers are no longer stable pieces of hardware, often installing 130 watt power supplies that bust every time there's a mild surge in power, and frequently pass excess power to their motherboards, which are made with cheap capacitors with a tendancy to explode, necessitating the purchase of an entirely new computer with surprising regularity. As an employee of a consumer electronics repair facility for two years, I can safely say that 75% of the computers we repaired were Dells, which is inconsistent with their market share, further proving their inefficency. In addition, Dell has failed to conform to well-defined computer hardware standards as a form of lock-in. The power supplies that fail all the time do not meet ATX form factor (or mini-ATX, or micro-ATX, or BTX or any other standard), which means that when one breaks, you have to pay over $100 to buy another low-wattage PSU straight from Dell. It's a way of monopolizing one's own product, despite the fact that better products exist through a million other means. It's unfair to the consumer, especially when you consider that most of their technical support is outsourced to foreign countries, which decreases customer satisfaction, but increases profit. The point is that once people adopted Dell as a trusted name, Dell grew and grew and grew until they were too large to sufficiently support their operation. This will undoubtedly happen to cloud computing within a few years of its widespread adoption. By adopting this plan of allowing corporations to run our operations, we open ourselves up to this kind of reduced functionality and constant problems, which in turn affects our own ventures. Once we're locked into contracts, or, more likely, once it becomes too expensive a prospect to move our data back onto our own private server operation, the company providing a cloud service essentially owns our business operation and controls it fully. The only goal they need to make is to ensure that the cost of keeping data and load-balanced processing through them is cheaper than the cost of returning operations to our own servers and network. In addition, a corporation must focus its attention on the customers that generate the most profit, and ignore customers that use the service, but also belong to niche markets. This can be seen in Netflix, with their on-demand digital viewing service. Up until recently, it required an Internet Explorer ActiveX control to work. People who know that this is a major security flaw complained about it. They want it to work in Firefox. Netflix has now accomodated for that by using Microsoft Silverlight instead, but nobody likes Silverlight, and this is an obvious example of instituting the DRM that nobody likes via a corporate partnership with a company that nobody likes. Still, Mac users cannot use this service, and neither can Linux users, so both of those niche markets are ignored. A centralized cloud computing service would only end up doing the same thing with more devastating results. "What? You don't like the way this all works because you're a Mac/Linux/Firefox user? Tough! You don't pay this company enough for us to care!" Economic Downturn Because of this country's corporate, enterprising outlook on literally everything, we have come to the conclusion that spending less money is the equivalent of doing better business, but this is sometimes untrue. One example that they cite in the article is that of the expense of IT professionals and the cost of running a data center. The suggestion that is made there is that if we unify our data center into one center for thousands of companies, we can pay one group of IT professionals instead of a thousand, thus lessening expense overall. The problem with this line of thinking is that it puts 999 companies worth of IT professionals out of a job. If a company needs to cut expenses, it should cut expenses related to product and physical material. It should use less paper or turn off its workstations at night or settle for cheaper workstations (since, as the article says, we're only utilizing 10-30% of their processing power anyway). It should not dispose of human capital. When citizens get paid, citizens then have money to put back into the economy. Reducing jobs is the last thing we want to do. Have we learned nothing from the current recession? When we outsource to other countries, the United States as a whole loses money because we're paying US money to foreigners, removing the cash from our economy entirely. It's only a natural Step Two, if you will. Once we've centralized a ton of data centers into one in America, a company will realize that they can just move that data center overseas, pay people less to maintain it, and not have to worry about environmental stipulations that cost money in the States. Everything about the cloud computing concept screams, "Failed economy!" Don't you think it possible (and very ironic) that the very things that allow us to be a developed country could turn us into a third-world country? Diminished User Experience When something new happens technologically, it doesn't take long for it to reach the entire community of tech users. It extends into both the workplace and the home. Currently, less than 25% of Internet users have broadband access, and this statistic does not include the nearly 50% of computer users who do not have Internet access at all. If the cloud computing concept ever hit home en masse, it would be detrimental to the vast, vast majority of computer users. Also, no matter how you cut it, there is simply no way to make centralized processing work for gamers, whose demand would be that 120 images in 1920x1080 resolution be passed to their computer over the Internet, decompressed, and displayed on their monitors every second. No broadband connection exists that can carry that kind of data that quickly, and even then, the user is still utilizing most of his CPU's power to decompress and display data. Not to mention the fact that Time Warner is about to impose download caps to make money off of people who don't know any better. Cloud computing will likely screw over anybody with this type of connection plan. Since cloud computing in the home means that a computer would require a broadband network connection, laptops would lose their primary purpose - portability. If I can't use my laptop without an Internet connection, then why even bother with one? If I can't go to a job site in Middle of Nowhere, Texas and access my data, what's the point in a laptop? There are a ton of reasons that cloud computing is a really bad idea, but the funny thing about all of it is that cloud computing already exists on a much smaller and safer scale. I utilize this for myself. I run a Linux server out of my home with a dynamic DNS address that always points to my server, despite the dynamic IP address that my provider supplies me with. I run various forms of connection back to that server - it runs Apache, an FTP server, a Samba file share, and an SSH server - but the most important is X window forwarding over SSH. It's fast enough to use, if a little slower than actually being in the presence of my computer, but I can always access my hard drive and every program running on that server as long as I have an Internet connection. But even when I don't, my client computer can still run software and save data until such a point that I can transfer the data back to the server. There's little reason for an attacker to attack my computer because I am only one person who does not store sensitive info on my hard drive. It's much better to attack, say, Google, to gather user data from millions of accounts and years of usage. I can use my server from anywhere, and I definitely benefit from this in ways that I could never benefit from an actual cloud computing service like the one defined in the article.