27 Punkte von xguru 2022-10-11 | 3 Kommentare | Auf WhatsApp teilen
  • 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

 
cometkim 2022-10-17

Im Fastly-Blog wurde die Prognose geäußert, dass sich rund 70 % der bestehenden Rechenzentrums-Computing-Infrastruktur an den Edge verlagern werden, haha.