- Das Web begann auf einem einzigen Computer
- 32 Jahre sind vergangen, aber wir entwickeln noch immer so, als wäre es ein einziger Computer
- In den vergangenen Jahren wurden statische Sites über CDNs an Orten nahe bei den Nutzern ausgeliefert
- Jetzt passiert dasselbe auch mit dynamischen Web-Apps. Sie können nun überall bereitgestellt werden
Was ist Edge?
- Wenn Menschen von "The Edge" sprechen, bedeutet das, dass deine Site oder App auf mehreren Servern bereitgestellt wird, die weltweit jeweils nahe bei den einzelnen Nutzern stehen
- Wenn jemand deine Site/App anfordert, wird er zum nächstgelegenen Server geleitet
- Diese verteilten Server können nicht nur statische Site-Assets cachen, sondern auch benutzerdefinierten Code ausführen, der dynamische Web-Apps unterstützt
- Diese Verlagerung auf nahegelegene Server ist auch ein Versuch, die Latenz zu optimieren
- Je länger das Laden einer Seite dauert, desto höher ist die Wahrscheinlichkeit, dass Nutzer abspringen
- Wenn man etwa auf Heroku bereitstellt, landet man in einem AWS-Rechenzentrum in Nordamerika, und in Europa oder anderen Städten wird die TTFB (Time to First Byte) langsamer
- Wenn man aber Deno.com testet, das in unserem Edge Network Deno Deploy läuft, ist die TTFB deutlich schneller
- Das Konzept des Servers wurde erstmals 1969 in einem RFC vorgestellt
- Die NeXT-Maschine im Büro von Tim Berners-Lee war der erste Webserver. Das Internet lief zu diesem Zeitpunkt allerdings bereits seit mehr als 20 Jahren
Inhalte nahe beim Nutzer cachen
- Die Server-Architektur funktionierte lange gut, aber als das Web ab Ende der 90er stark wuchs, traten Probleme auf
- Akamai führte 1998 als erstes Unternehmen ein CDN ein
- Das CDN von Akamai cachte Inhalte in einem verteilten System von Servern
- CDNs sind zu einem wichtigen Baustein des modernen Web geworden
Weniger Server, mehr Serverless
- Server haben auch auf der anderen Seite des Problems von "Überlastung" Schwierigkeiten: mangelnde Auslastung
- Server können nicht einfach ausgeschaltet werden, sie müssen 100 % der Zeit laufen, und all das kostet Geld
- Serverless lindert dieses Problem. Es startet nur bei Bedarf und fährt danach wieder herunter
- Aber "Serverless" ist ein irreführender Name. Es gibt nicht keine Server, sie sind weiterhin beteiligt
- Es gibt nur keinen dedizierten Server mehr, der ständig läuft
- Das erste weit verbreitete Serverless-Framework war AWS Lambda
- Serverless hat zwei Vorteile
- Man bezahlt nur für das, was man nutzt
- Man muss sich nicht um das Management der Server kümmern. Keine Planung, keine Verwaltung, keine Wartung
- Der Nachteil ist meist die Performance
- Das Problem des "Cold Start"
- Und die Server sind noch immer zentralisiert, daher gibt es weiterhin lange Round-Trips
- So sind wir beim aktuellen Stand angekommen
Livin's on the edge
- Das Schöne am Edge ist, dass es die Vorteile von CDNs (Nähe zum Nutzer) und die Vorteile von Serverless (Funktionen ausführen) zusammenbringt und kombiniert
- Mit Edge kann man also benutzerdefinierten Code nahe beim Nutzer ausführen. Das bringt viele Vorteile
Bessere Performance
- Das ist die einzige Sache, die Nutzer wirklich interessiert
- Wenn eine Site oder App auf einem Edge-Server nahe beim Nutzer läuft, ist sie schneller als auf einem zentralen Server
- Aber die Performance-Vorteile hören dort nicht auf
- Compute läuft am Edge statt im Browser des Nutzers
- Die App benötigt auf der Maschine des Nutzers weniger Ressourcen
- Es wird weniger Payload an den Nutzer übertragen, daher wird auch weniger Bandbreite genutzt
- Weil Funktionen in einer kontrollierten Umgebung laufen, verhalten sich Funktionen und APIs konsistenter
Bessere Sicherheit
- Wenn man Berechnungen vom Client/Gerät auf serverlose Edge-Infrastruktur verlagert, verkleinert das die Angriffsfläche der App
- DDoS-Angriffe werden schwieriger
Bessere Developer Experience
- Derzeit ist das Schreiben von Code für Edge unnötig kompliziert
- Die meisten Probleme entstehen durch die hybride Natur der Edge-Entwicklung
- Viele Frameworks wurden nicht Edge-First entwickelt, deshalb müssen Entwickler auswählen, ob jede Funktion oder Seite am Edge oder im Browser ausgeführt wird
- Neue Frameworks wie Fresh vereinfachen das jedoch mit SSR und der Islands-Architektur
- Wenn man Fresh zusammen mit Deno Deploy nutzt, ist es durch Latenzoptimierung möglich, eine perfekte Lighthouse-Bewertung zu erreichen
- Edge ist die nächste Iteration des Internets
Der nächste Schritt, um das Web schneller zu machen, und ein sichererer Ort für Nutzer und Entwickler
3 Kommentare
Im Fastly-Blog wurde die Prognose geäußert, dass sich rund 70 % der bestehenden Rechenzentrums-Computing-Infrastruktur an den Edge verlagern werden, haha.
https://www.youtube.com/watch?v=yOP5-3_WFus
Deno Deploy Beta 1
Deno Deploy Beta 2
Fresh – das Web-Framework der nächsten Generation