Latenzfrei mit Edge Computing

26.10.2020 Raffael Schneider
Cloud Tech edge-computing iot serverless headless paas

Laut dem diesjährigen The Internet of Things Report prognostiziert Business Insider über 41 Milliarden aktive IoT-Geräte. Dies entspricht etwa 5 Geräten pro Mensch, die mit dem Internet verbunden sein werden, und konstant Daten versenden und somit Traffic generieren.

Die Idee bei Edge Computing ist, Rechenleistung so nah wie möglich am Bedarfsort bereitzustellen, anstatt diese in einer geografisch weit entfernenden Cloud zu bewerkstelligen.

Dabei werden auch kleinere Geräte, welche im heutigen Verständnis nicht als Server gelten, dafür ausgelegt, um Daten zu verarbeiten. Dabei zählen Geräte wie Router, Raspberry Pi oder auch smarte Kühlschränke als potenzielle Servereinheiten, die durch ihre Nähe zum Endgerät –on the Edge oder am Ende des Netzwerks– kurze Lebenszyklen der Daten ermöglichen.

Eine für die Edge ausgelegte Infrastruktur ermöglicht zahlreiche Vorteile im Vergleich zu klassischen, zentralisierten Cloud-Clustern wie gesteigerte Kosteneffizienz, native Datensicherheit und besonders stark reduzierten Latenzzeiten.

Daten werden somit nicht mehr in ihrer Gesamtheit in der Cloud verarbeitet, sondern verteilen sich auf unterschiedliche, kundennahe Geräte. So werden die Kosten der Rechenleistung auf die Endgeräte abgewälzt, die Daten haben kürzere Laufzeiten und sind somit sicherer und schneller. Die Etablierung von smarten Geräten und einem hohen Dichtegrad von CPU-Leistung in allen möglichen Bereichen ermöglichen erst Edge-Computing.

Edge Computing in der Praxis

Edge-Computing versteht sich als Paradigma das dem Endkunden eine perfomantere und nahtlosere User Experience bietet, indem Daten und Content so kundennah wie möglich bereitgestellt werden. Eine einheitliche Gesamtlösung, die das alles bewerkstelligt, gibt es noch nicht. Zudem sind die heutigen Ansätze noch nicht genug etabliert. Es gibt noch viel Potenzial Edge Computing effizient einzusetzen. Konkrete Ansätze zur Umsetzung einer Edge-freundlichen Infrastruktur lassen sich grob in drei Anwendungsfällen aufteilen. Diese sind wie folgt:

  • Edge cloud hosting vereint das Konzept des klassischen Cloud-Hosting mit der Möglichkeit Applikationen und Services global verteilt zu hosten, sodass beim Zugriff auf die Applikation das nächstgelegene Datacenter angesprochen wird.
  • Micro cloud (auch Edge cluster genannt) ist ein kleines Cluster von Nodes mit lokalem Storage und Netzwerk. Dieses Mikro-Cluster ist nicht in riesigen Rechenzentren vorzufinden, sondern befindet sich per Definition am Rande on the Edge des Netzes wo ein Cluster vor Ort notwendig ist.
  • IoT Gateway ist ein Knotenpunkt der ein dezentrales Netz von IoT-Geräten zentralisiert, filtert, visualisiert, Rechenoperationen aggregiert und diese für weitere Dienste bereitstellt.

Genau wie bei den Cloud-Technologien ist auch die Edge bemüht Schnittstellen zu standardisieren. Eine Vielzahl von Open-Source Projekte treiben das Edge-Paradigma mit visionären Projekten voran. Hier werden wir ein paar Beispiele des heutigen Stands des Edge-Stacks gemeinsam anschauen.

Edge cloud hosting

Traditionelles Cloud-Hosting erfolgt über ein Datacenter. Diese Datacenter werden zwar an einem Standort gespiegelt befinden sich aber dennoch in geographischer Nähe. Beispielsweise hat Amazon ein AWS-Datacenter in Frankfurt an 3 verschiedenen Räumlichkeiten, die geographische Nähe dieser 3 Datacentern ist dennoch in relativer Nähe zueinander.

Edge hosting wäre dann erreicht, sobald das Load Balancing einer Applikation in einem globalen Set von möglichen Standorten erfolgen lässt. Das heisst, dass das CNAME (?)

AWS CloudFront und Lambda@Edge

Genau wie Appfleet, Fastly oder Fly ermöglicht Amazon die Rechenleistung mit AWS CloudFront an den Endkunden zu bringen. Dabei werden Cloud-Services in die jeweilige Region-Zone gebracht und per Static asset caching entsprechend persistiert.

###MicroK8s und K3S MikroK8s entspricht dem Micro cloud-Ansatz. Canonical's MicroK8s ist ein vollwertiger Kurbernetes mit kleinstmöglichen Footprint und nutzt die Best Breeds der Cloud-Welt wie Ingress, Istio, Prometheus, sowie weiteren Technologien. Dabei wird besser mit der unregelmässigen Verfügbarkeit der Nodes umgegangen. So können zum Beispiel Funktürme, selbstfahrende Autos oder sonstige Single-board Computers als Nodes genutzt werden. Aus diesem Grund unterstützen Micro cloud-Lösungen wie MicroK8s ARM-Prozessoren die oft in Kleinstgeräte verbaut sind.

Akri

Akri ergänzt den Micro cloud-Ansatz. Mit Akri lässt sich ein Cluster aufbauen der Device-aware ist. Akri stellt eine Kubernetes-Schnittstelle bereit wobei eingebettete Systeme als Cluster-Node exponiert werden können. Damit kann die aggregierte CPU/GPU-Leistung von Kleinstgeräten wie Sensoren, (Mikro)Controllern oder MCUs für das Clustering ausgeschöpft werden. Diese Geräte werden dann Leaves, Englisch für Blätter, genannt.

Das Motto von Akri ist "Simply put: you name it, Akri finds it, you use it". Dazu wird das Kubernetes device plugin framework genutzt. Normalerweise sind Kleingeräte wie Kameras, Controller oder Microcontroller zu klein um Kubernetes laufen zu lassen, aber durch eine neue Abstraktionsebene durch das Container Network Interface (CNI) können auch diese Geräte als leaf devices für Nodes genutzt werden. Näher an der Edge geht nicht mehr.

OpenShift Gateways

(?) Auch etablierte Plattformen bieten mittlerweile Edge-Lösungen an. Red Hat stellt beispielsweise für ihre Container-Plattform OpenShift Gateways bereit die für eine Implementation einer Edge-fähigen Cluster nötig sind.

Edge Computing steht erst am Anfang

Egal wohin die digitalisierte Reise geht, wir bei b-nova sehen stets aufs Neue eine Opportunität Mehrwert durch Innovation und Technologie für unseren Kunden zu generieren.

Weiterführende Links:

Der Ansatz von Red Hat für das Edge computing | RedHat

What’s the deal with edge computing? | Canonical

From Cloud Computing to Edge Computing | Medium @OpenSourceVoices

Raffael Schneider – crafter, disruptor, free spirit. As a fervent software craftsmanship, Raffael likes to write about programming languages and software resilience in modern distributed systems. Be it DevOps, SRE or systems architecture, he always got a new way of approaching things.