I’ve played goaltender for ice hockey since a young age, and from very early on in my “career” I’ve had coaches telling me a seemingly oversimplified, but very true statement, movement creates holes, and holes are bad. What we are seeing in the tech industry over the past decade is a movement from desktop applications and company per company databases to Software as a Service, Computing as a Service, and Storage as a Service. In addition to these transitions, the era of personal computing has taken hold, and a number of the applications we use on our laptops, tablets, and phones rely on “the cloud” for their computing power.

What precisely is “the cloud?” This is a very difficult question to answer, and I’d say it’s a term that is too broad. Simply having a large internal network of computers constitutes a “private cloud,” in some people’s minds, but to me this is just having a private network on which you can compute. Because of the broad use of the buzz words, it is unsurprising that three different articles define cloud computing in three overlapping but non-identical ways. One article over-broadly defines it as “an efficient method of managing lots of computer servers, data storage, and networking.” Another says that it is the “applications delivered as services over the Internet and the hardware and systems software in the data centers that provide those services,” while a research paper on the ethics of cloud computing makes its definition by a laundry list of characteristics that must be met.

For me, to be doing “cloud computing” means having and using an available a pool of seemingly infinite resources to use at will to meet your storage and computing needs. Currently, only public clouds (or the private clouds of the companies that own them) can meet this definition for me as anything less than a seemingly infinite pool of resources (private cloud for a company where you can’t just ask for another machine) or where other jobs might preempt yours (condor) is in my idea of shared and distributed computing. Anything where you are not calling on those resources yourself, such as an application which uses on cloud services in the background, is not at your level cloud computing, but a service which uses cloud computing to serve its consumers and might consequently inherit some of the risks associated with cloud computing.

The issue with the public cloud is that the movement to it is creating holes in the ethics we’ve already established within the field of computing, and a research paper. This paper raises a number of ethical concerns that resonate with me, including issues of monopoly and lock-in, a scenario in which consumers put more and more data into a public cloud, but must pay for the strain on the network to transfer all of their data if they want to move to another cloud service. Other ethical issues that arise are how changes in service agreements are becoming blurred when software services which rely on the cloud fail due to a failure somewhere in the stack of cloud based services. And of course, something that always concerned me about cloud computing is the amount of data we’re putting up into supposedly but perhaps insecure hands. A hack of AWS could be devastating to both AWS and its users whose information has been lost or stolen. Companies have even gone out of business due to the FBI slowing down operations in a cloud provider which they were relying on for their day to day operations. These issues cannot all be solved or discussed here, but it is certain that the movement toward cloud computing has raised some issues that must be discussed.

I don’t personally use many SaaS such to store or back up my personal data. The only thing I backup is my Android phone’s contacts, everything else I like to keep on my local disk. I’m sure that many applications I use rely on cloud services, but it is unlikely that this will come back to bite me personally, as a number of other consumers would be effected and there would likely be a class action suit. The benefits include better service, likely at a lower cost because the service itself saves on input costs. The risks include some loss of personal data, which  I try to mitigate by avoiding applications which ask for information beyond my email address and phone number. I am slow to pick up on apps and websites which require credit card numbers until they have shown to be trustworthy with other customers’ data.

As a developer I’ve used the cloud during Professor Thain’s cloud computing class, exploring AWS and condor as part of the learning exercises. I’ve also used it for one small iPhone app that I helped develop during a hackathon that gave us a scalable database for game states. The benefits are clear, as they allow you to pay for only what you need when you need it if you are capable of writing code to respond to rises and falls in hits to your service. There were many proofs of concept of how to scale to demand presented as final projects in the cloud computing class, and they seemed to give good algorithms on how to use instances as wisely as possible and scale to demand. It also showed how it can save significant time in running parallelizable jobs, which may be worth the cost of the instances, for scientific simulations or sifting through big data. The drawbacks are the costs of a bug which accidentally instantiates many instances, the transferring of customers’ data to another company’s machines, and the potential of outages which aren’t you’re fault affecting your service. These are outweighed in my mind by the flexibility afforded by on demand instances (which would likely be more reliable than your own machines) and the ability to conserve costs and power using on demand resources.