Edge Computing
dtprinciples.blogspot.com
dtprinciples.blogspot.com
1. Set-it-and-forget-it scalability
2. Compliance with data locality laws
#2 is going to be the absolute wave of the future. Not just in Europe, but everywhere. Every country is going to introduce laws that mean their citizens' data needs to stay in region or in country. A widely distributed edge will make that easy to handle because it can be a configuration option.
I agree. But it also means that it's mostly unrelated to the edge, or edge computing; with the same constraints the code can run anywhere.
To me the promise of edge is that it could work quite well with decentralized apps (not limited to blockchain-based). The work you guys are doing with IPFS is a great start.
Add: When you think about it, most current apps are centralized and it's unsurprising that they can work well with the cloud (AWS/Azure/Google); edge is just mostly CDN for now. Decentralized is when those models become incompatible, and where edge can show strength.
Decentralized apps is not really related, though one can really employ edge datacenters to achieve so..
However, that changes with decentralized apps since they place a different set of architectural demands, and don't have centralized datasources. For instance, a search in p2p space might involve connecting to a lot of peers - latency matters. Data (often signed chains) might need to be fetched from dozens of different sources, combined and queried locally - again latency matters. Clusters of people who you talk to are often co-located, edge wins again.
Latency doesn't matter when it's a hand countable number of simultaneous queries (as in current apps). We can even work around it with approaches like batching, as with GraphQL.
The point of edge computing is exactly to incentivize facilities/companies to not keep data on premises, or at least to ship some data (i.e. non sensitive) out of it. It doesn’t scale the way most companies need it to.
Latency is key for some important applications like self-driving cars and industrial automation, not really to make some queries in GraphQL..
The fundamental problem is where the data resides. Microservices are well understood today, but taking them to the edge isn't; there isn't a path to do that for typical apps. So most microservices which are being used at the edge are doing caching/transcoding/resizing etc.
> Latency is key for some important applications like self-driving cars and industrial automation
They keep compute on-vehicle or on-prem. For data services (not media delivery), latency is:
a) either supremely important to be fully local (vehicles, automation)
b) or it doesn't matter enough to be on a 3rd party edge network. The diminishing returns in typical apps is what the article is alluding to.
> not really to make some queries in GraphQL
You're misrepresenting what I said - and it seems deliberate.
I mentioned GraphQL as one of the attempts to solve latency issues in typical apps.
For example, some apps use graphql/dataloader[1] because it can "coalesce all individual loads which occur within a single frame of execution before calling your batch function with all requested keys. This ensures no additional latency while capturing many related requests into a single batch."
So in typical apps, there isn't a big benefit to putting general compute on the edge - because the network calls are chunky and not chatty, and their data is centralized. GraphQL (along with libs/frameworks) being one way to turn chatty into chunky.
If an application follows a Microservice architecture, then it is possible to containerize it and enable its autonomic management through frameworks like Kubernetes and Docker Swarm, which is one way forward to improve performance efficiency of typical apps.
Yes, the problem is where the data resides. Migrate portions of it nearer to clients to the Edge, and clients will have the illusion of lower latency. Maintaining data consistency and coherence are yet problems not properly tackled, but in edge computing it means computations happen in these migrated portions of data, and not "all the way" at the cloud (higher latency) anymore.
> They keep compute on-vehicle or on-prem. For data services (not media delivery), latency is:
Not always. They will use the Edge mostly for inference and for learning from others (transfer learning), but sometimes also for training and model updates. And in cases like this (known as Mobile Edge Cloud), the ability to obtain granular and immediate control by supporting custom logic at the edge of a network is particularly useful in routing traffic to the microservices that make up a service.
I agree, GraphQL helps reducing latency, mostly because the amount of data is now "granular" and it is one way to overcome limitations in 'traditional' apps (e.g. Rest APIs). Coalescing may be useful in some cases, but perhaps not in situations where one needs to maintain 95th/99th percentiles up to certain threshold constraints. Together with Edge (as I guess you mentioned), it is a win-win performance-wise. But then again, maintaining consistency and coherence are yet problems to be tackled.
And guess what, applications still need to be updated to use GraphQL and use its features. Just like people will do when developing for the Edge.
[1] http://www.cs.cmu.edu/~15849g/readings/kephart03.pdf (2003)
I can't wait for all these special snowflakes laws. And then the whining that locals players are all getting wiped out by foreign competitors that got their start in much larger unified markets where they could benefit from economies of scale.
#1 ownership and control over access to one's own data (privacy)
#2 access to one's own data (accessibility and queryability)
So IMO cloud providers having presence in all the big telco hubs is the future of "edge". Or at least a future.
Disclosure, used to work at Azure Edge Zones.
My guess is edge business model will be more like long term commitment than spin up and down at will.
Of course a "build it and they will come" argument can be made in favour of something we haven't yet been able to imagine but it's starting to feel far fetched. Or maybe it's just a question of how far-edgy it makes sense to be vs cost (the original idea IIRC was building capacity colocated with the base stations).
That said, that's kind of "boring edge", companies that just want one closer datacenter to run stuff. But, that's probably where the most money is.
I wouldn't be surprised if it takes a while to open up to general public where you can dynamically scale up and down though (beyond what e.g. Cloudflare workers provides) due to the capacity challenges I mentioned elsewhere.
https://en.wikipedia.org/wiki/Arthur_C._Clarke#Geostationary...
I'm having trouble finding any unclassified examples of this, but you can read about TechSat-21, which was supposed to be a proof of concept back in 2004 but the program was canceled because of cost overruns: https://ml.jpl.nasa.gov/papers/the_techsat-21_autonomous_sci...
I guess "Azure Stack" is sort of that now, but that's not targeted at the small to medium-sized business market (yet).
Chik-Fil-A has a great write up of how they run K8s on racks in every restaurant: https://medium.com/@cfatechblog/edge-computing-at-chick-fil-...
Typical small businesses don't have the resources of needs to do any of that. They are already far more likely to invest in turnkey technology like Salesforce, Square, etc than provision anything at all in the cloud on their own.
I personally work on their edge team to deliver backend services for their next-gen offering.
But latency (mostly) aside, there seem to be a lot interesting use cases for what is more or less programmable CDN configuration. Particularly when you have a relatively straightforward application (architecturally at least), but want to tap into the very distributed, very scalable CDN layer for little bits of critical functionality.
I used Lambda@Edge last week to smooth some rough edges between CloudFront and S3.
S3 is just a HTTP server for CloudFront and S3 in itself is a rather dumb HTTP server. Lambda@Edge allowed me to add some additional features to that integration to make S3 a bit more bearable, like automatic index files and path cleanups.
I also have a fantasy tests for OS. Check what happens when camera feeds the monitor input back on monitor keeping monitor's pixel vales as input to this fictional visual OS