39 Punkte von xguru 2024-05-16 | 6 Kommentare | Auf WhatsApp teilen
  • Ein Reverse-Proxy für Tunneling in externe Netzwerke
  • Verarbeitet Traffic auf Produktionsniveau und ist so konzipiert, dass Hosting einfach ist (insbesondere auf Kubernetes)
  • Kann Kundennetzwerke, Dienste in BYOC-(Bring Your Own Cloud)-Services exponieren oder Verbindungen zu IoT-Geräten herstellen
  • Kann als Node-Cluster gehostet werden, um Fehlertoleranz, Skalierbarkeit und Zero-Downtime-Deployments zu ermöglichen

Wie Piko funktioniert

  • Upstream-Services verbinden sich mit Piko und registrieren Endpunkte
  • Piko leitet Anfragen für Endpunkte über ausschließlich ausgehende Verbindungen an die registrierten Upstream-Services weiter
  • Das bedeutet, dass sich Services exponieren lassen, ohne öffentliche Ports zu öffnen
  • Eingehende HTTP(S)-Anfragen identifizieren die ID des Zielendpunkts über den Host-Header oder den x-pico-endpoint-Header
  • Wenn mehrere Upstream-Services denselben Endpunkt registriert haben, verteilt Piko die Anfragen für diesen Endpunkt per Load Balancing auf die registrierten Upstreams

Pikos Designziele

Verarbeitung von Produktionstraffic

  • Piko ist für die Verarbeitung von Produktionstraffic ausgelegt, nicht als Test- oder Entwicklungstool
  • Mit Piko lassen sich Kundennetzwerke erreichen, BYOC-Lösungen aufbauen und IoT-Geräte anbinden
  • Zur Unterstützung dessen kann Piko als Node-Cluster für Fehlertoleranz, horizontale Skalierung und Zero-Downtime-Deployments betrieben werden
  • Außerdem stellt es Observability-Tools für Monitoring und Debugging bereit

Einfaches Hosting

  • Piko ist so konzipiert, dass es sich leicht auf Kubernetes hosten lässt
  • Ein Piko-Cluster kann als Kubernetes StatefulSet hinter einem HTTP-Load-Balancer oder Kubernetes Gateway gehostet werden
  • Verbindungen von Upstream-Services und Anfragen von Proxy-Clients können per Load Balancing auf alle Nodes im Cluster verteilt werden, während Piko die Weiterleitung an den richtigen Upstream übernimmt

Sicherheit

  • Upstream-Services verbinden sich über ausschließlich ausgehende Verbindungen mit Piko
  • Piko leitet sämtliche Anfragen über diese Verbindungen an die Upstreams weiter
  • Dadurch müssen Upstreams keine Ports öffnen, um Anfragen zu empfangen
  • Piko unterstützt die Authentifizierung von Upstream-Services, bevor diese Endpunkte registrieren
  • Piko kann selbst gehostet werden und im selben Netzwerk wie Proxy-Clients laufen, sodass keine Anfragen aus externen Netzwerken angenommen werden müssen
  • So können sich zum Beispiel authentifizierte Upstream-Services per TLS über das Internet registrieren, während nur Proxy-Clients im selben Netzwerk wie Piko interne Routen erhalten

6 Kommentare

 
halfenif 2024-05-17

Das bedeutet, dass sich ein Dienst exponieren lässt, ohne einen öffentlichen Port zu öffnen

Mich würde interessieren, was das konkret bedeutet bzw. welche Anwendungsfälle es dafür gibt.

 
secret3056 2024-05-17

Nehmen wir zum Beispiel an, der Informatik-Student A arbeitet an einem Projekt.
A hat fleißig entwickelt und möchte den Dienst nun, da der Präsentationstermin näher rückt, vorführen.
Allerdings kann A gerade erst Server programmieren und weiß nicht, wie man überhaupt irgendeinen Server oder eine Instanz startet.
Außerdem wohnt A im Wohnheim und kann den Dienst daher nicht per Port-Forwarding öffentlich erreichbar machen.
An dieser Stelle kommt Tunneling ins Spiel.
Wenn man auf dem Laptop im Wohnheim ngork http 8080 eingibt, wird eine zufällige URL erzeugt, und wenn sich bei der Vorführung im Hörsaal ein Benutzer mit dieser URL verbindet, wird die HTTP-Anfrage vom ngrok-Server über den ngrok-Client an As Serverprogramm weitergeleitet, sodass sich der Dienst auch ohne zusätzliches Port-Forwarding öffentlich bereitstellen lässt.

 
lastorder 2024-05-16

https://github.com/andydunstall/piko/pull/20

Der Projektname wurde offenbar von Pico in Piko geändert. Es scheint, dass die Änderung wegen eines Konflikts erfolgte, da es bereits einen Editor namens pico gibt.

 
dontdieych 2024-05-18

Als ich die Antwort sah, dass jemand den pico-Editor nicht kannte, wurde mir bewusst, wie alt ich schon bin. Vor nano gab es pico T_T

 
xguru 2024-05-16

Ich hatte das gestern recherchiert, zusammengefasst und gepostet ... inzwischen hat es sich schon wieder geändert ;_; Ich habe es korrigiert.