The end of cloud computing [video]
a16z.com
a16z.com
In the talk, he says that the reason we need to do the compute "on the edge" is because the latency between the cloud is insufficient for real-time devices. So what happens when network speeds improve again (better fibre infrastructure, LiFi, etc.)? Will we bring the compute back in to centralized data centres? Will we continue to bounce back and forwards forever, as network and hardware technology leapfrog each other? Is one model better than the other?
Well, for one thing, a lot of the examples such as self-driving cars, drones, and any wearable clearly don't allow for use of fiber. Lifi may have some use cases, but again I don't see how Lifi could help something like a drone or self-driving car.
But another point is availability. Wireless connections can drop in and out and our vulnerable to being slowed down by increased demand. Not to mention that the centralized service itself may fail, due to catastrophic power failure, DOS attacks, or any number of other reasons.
If that centralized service or choppy wireless connection is providing you with your todo-list or family photo album, its probably not a big deal to have occasional outages. If the system is making decisions for self-driving vehicles, that will be an unmitigated disaster.
Even if it is only enough logic to help an unconnected car pull over to the side of the road, a self-driving car needs to be able to operate offline, so one way or another, these cards will need powerful computers inside.
And of course, distributed nodes can also fail. A single car's computer may fail, and that's not good. But the AI of every car in an entire area failing simultaneously because power to the local radio tower goes out is going to be way worse.
The other thing, is that as we have with processing speeds, we will eventually hit limits in bandwidth. Using bandwidth efficiently will become a larger priority (as scarcity increases, so will the cost) and the centralized model clearly has a drawback in terms of bandwidth usage.
So, all in all, I don't think it's just a pendulum that swings back in forth forever, but that the future will be a hybrid, but heavily distributed world out of necessity.
All I'm suggesting is that future improvements to connection reliability and speed will give way to another round of SaaS products, perhaps then able to service real-time needs but still not preferred for life-critical tasks. As much as I hate to say it, the first example that comes to mind is surveillance/tracking.
If you think very long-term, like say data-transfer-via-quantum-entanglement, then you could imagine data transfer being insignificant compared to compute time for real-time requirements, so you will naturally offload the compute to the biggest most powerful computer you can get your hands on.
Not to mention how wireless connections themselves are vulnerable, jamming radio frequencies is easy and cheap.
It actually is task-dependent. There will always be tasks that work best at a centralized mainframe (e.g. weather forecast requires a supercomputer), while others will benefit from distributed local processing (moving the pointer on the screen following mouse input).
For the tasks in between, the changing ratios between processing and transmission speed in the distributed points will influence where it's most practical to do the computing, which is the effect you have seen.
Ex: you could watch anything on YouTube or Netflix but someone will always be knowing when you start, pause, stop, and possibly the volume you set. Or you could download all of YouTube onto your God-phone and watch to your heart's content without realtime surveillance.
As hardware improves on both ends, the decision between centralized and decentralized will rely less and less on the constraints of the hardware, and more on things like consumer preferences.
This doesn't matter so much for AI in apps, but certainly for self driving cars all critical computation needs to be on the edge. Once you have every car carrying multiple GPUs, the distributed computing power in cars probably is pretty comparable to a data center. You can run a lot of things in the idle time while the car is parked if you need to do training or things of that nature.
We've seen gradual movement away from the traditional cloud with several models I call "proto-PAO," such as Microsoft's Continuum. And many applications provide one-off PAO-like experiences by connecting multiple clients to a central server you administrate. But there is so much more to do. I am definitely getting excited, though, that the centralized cloud will likely be replaced in my lifetime.
The cloud is appealing for a number of reasons. The two biggest seem to be it takes care of the infrastructure and some of the stack. When and if those become trivial accomplishments, I can see a shift.
PAO concept seams neat, and actually buy it - it will happen to some degree.
BUT - many features are inherently 'centralized' in their nature, and will be service oriented, and thus they will stay on the cloud.
I think we'll see more 'cloud/personal' and more 'IoT' - but the traditional cloud will continue to grow quite rapidly.
I think it's more likely people will instead carry identities that describe the applications they have access to, and be able to load those on devices for their identity only, down to the point of being able to walk up to a new PC, attaching the identity, and then having access to the apps on that new PC.
It'll be a 90% solution that's forced to deal with DRM and safe enough remote execution, but it'll also allow you to access your documents from anywhere with a connection.
I know you specifically disagree with the idea of synchronization, but that's more feasible than what you're suggesting imo. synchronizing a document is going to be as simple as saving it into the cloud and fetching a delta at the endpoints.
This will necessarily not work for certain types of applications, no one is probably going to try and do actual CAD work on the go, although they may view it. But for most things it'll work well enough.
In every case he described current devices (cars, watches) - they are increasing in 'cpu/storage' - but they always have been doing this.
Is their something that inherently changes the topology?
Not really.
Cars will be able to id stop signs - which is naturally a local function, just like 'backup cameras' are a local function today ... but some things like messaging, gps services, customer data, big data - it's going to be on a server somewhere.
Why would your car need to talk directly to your blender?
'The cloud' has really more to do with local/small/office servers moving into consolidated centres with virtualization.
'Logical organization' has not changed: some stuff on 'servers' , some stuff done 'locally'.
Sure.
But my car does not need to talk to my blender. :)
I don't think a self driving car is a data-center on wheels. It will not have 100(!) servers built in it. It will have one (or two for redundancy) PCBs with just the right enough of processing power in whatever form makes sense, multiple cores, ASICs, etc. (which would be less than 100 server worth).
I would agree that the more compute cycles will move out to the edge. This is already have been happening with smartphones and will continue with other intelligent devices. The more computers we have in our environment the more the overall portion of cycles move to the edge. The depiction of a smartphone as a dumb terminal isn't that accurate. A smartphone can and does do a lot of things locally. My bet is there is a lot more compute power in all the phones today than in AWS EC2. (though maybe not compute $'s)
The comments on machine learning don't make sense. There is a lot more data for machine learning in the aggregate of all the devices so it will naturally happen in some centralized location. While there can be some machine learning in the edge machine learning is a lot more effective on the aggregate centralized data. So data from the edge will get pulled to central large scale systems. The result of this learning can be pushed back out to the edge to be applied (e.g. in the car).
EDIT: He later on modifies his statement about machine learning happening in the edge and rather some "selection" of the data will be used for machine learning in the cloud... Still doesn't quite add up.
What will certainly going to happen is that we will see more devices online and many of them will be IOT. ESP8266 can be bought for at little as the cost of a double espresso. The hobby electronics industry is booming in the face of Arduino and Raspberry Pi. It is happening.
I am more in agreement with the idea that data analysts jobs will grow. Also think that a lot of apps will have their own databases but instead of ignoring the cloud they will need to occasionally sync with the cloud as opposed to real time access.
I think that RESTful data services will become more of a commodity and that most developers will need a data service, an authentication service, a telecom service and a payment service (and perhaps a few more) to construct a program.
We're not too far off from it happening and the opportunity exists for an ambitious company to offer a Microsoft Office style suite of services to developers. I'd personally prefer it be Stripe or Twilio as opposed to Microsoft or Google that ends up doing it.
I should be able to download entire systems on local devices (a cache hub, a router, a personal cache hotspot, a smartphone), and have them work offline if necessary.
However, this will require a new computing paradigm altogether, powered by a new language. This kind of seamless caching demands a language with superior semantics (API auto-discoversbility) and logic-programming influence. I imagine some kind of predicate store should do the job.
Whatever. Down with the cloud!