“Cloud” is one of the industry’s current buzz words. And while there are many good reasons to implement and use global clouds, we shouldn’t thoughtlessly push everything to such clouds. Let me explain why I say this, and some of its implications. In particular, I am going to argue that local clouds are a better solution for some problems.
A big reason for global clouds is the desire to aggregate all the data into a single cloud (OK, it may just be virtually aggregated into a single, distributed cloud infrastructure—but all the points below still apply). This use case is the poster child for “big data”. All the aggregated data can be analyzed by the global cloud, this way and that way, correlations and patterns can be found, predictive models can be constructed and validated, etc.
But a big reason against global clouds—the one that pushed me down this line of thinking—is privacy. There is a saying: “If you don’t pay for a product, you ARE the product”. How can so many large cloud infrastructures be free to users? Because cloud providers harvest and sell their users and users’ data. I don’t like paying for services anymore than the next guy, but I really don’t like be sold. Me any my data are MINE !
Another huge, industry buzz word is IoT (Internet of Things). The IoT movement starts at the opposite end of the aggregation spectrum with atomic nodes on each individual device. Each atomic node has to support a minimal set of sensors and actuators plus enough networking to enable other, more capable, nodes to read and manipulate the atomic node. Most atomic nodes do not need to also be a “compute node”, which contain a general purpose processor and (relatively) large amounts of storage. Most atomic nodes only need to communicate (directly or indirectly) with a compute node.
A common view of IoT is that the compute node should be in the global cloud. This makes some sense, because ALL of the data from ALL of the atomic nodes are available for global analysis in the global cloud. But it also gives tremendous (unfair?) advantage to the cloud owner. Typically the cloud owner claims ownership of all this data—and they certainly have legal claim to all derived data they construct from the individual data. Plus, they can reliably infer a lot of personal information from it: personal habits, when are you active, what do you like, which topics interest you, etc, etc, etc. I see this as a huge loss of personal privacy.
But do we really need to push massive oceans of data from all the atomic IoT nodes up to global clouds? Are global clouds the only viable location for compute nodes? I say, “No”.
I believe a better way—at least for some applications—is to build local compute nodes, near the atomic nodes. The local compute node(s) acts like a local cloud. But none of this data is ever pushed up to a global cloud. This achieves many of our objectives (atomic nodes remain simple, a single compute node can service multiple atomic nodes) but does not violate privacy.
I’ll have more to say about “local clouds” in upcoming posts.