Bereitstellungen von maschinellem Lernen im Jahr 2023

Auf Geschwindigkeit ausgelegt: ~ 10 ms Latenz, auch unter Last
Unglaublich schnelle Methode zum Erstellen, Verfolgen und Bereitstellen Ihrer Modelle!
- Verarbeitet mehr als 350 RPS auf nur 1 vCPU — kein Tuning erforderlich
- Produktionsbereit mit vollem Unternehmenssupport
Die Bereitstellung von Anwendungen und Infrastruktur ist ein komplexer Prozess und erfordert die Koordination der Infra- und Anwendungsentwicklerteams. Eine interne Entwicklerplattform hilft beiden Teams, schnell und mit weniger Fehlern voranzukommen — was zu einer höheren Produktivität bei gleichzeitig höherer Stabilität führt.
Wichtige Dinge, auf die Sie bei der Bereitstellung und beim Softwarelebenszyklus achten müssen
- Dockerisierung — Das Paketieren von Abhängigkeiten mit Versionspinning ist wichtig für die Reproduzierbarkeit. Docker-Images mit unnötigen Abhängigkeiten können dazu führen, dass die Docker-Images aufgebläht werden, was zu längeren Startzeiten führt.
- Wahl des Bereitstellungsmodus: Es gibt viele Bereitstellungsoptionen — Webservices, Jobs, serverlose Methoden, statische Websites — jede von ihnen hat ihre eigenen Vor- und Nachteile und kann je nach Verkehrsmustern, Latenzanforderungen, Speicher- und CPU-Anforderungen die beste Methode sein.
- Skalierbarkeit — Die Skalierung bringt viele Probleme mit sich und erfordert die richtige Konfiguration der Skalierungsrichtlinien, die Konfiguration von Autoscalern und die Sicherstellung, dass unsere Dienste zustandslos sind — bei gleichzeitiger Kostenoptimierung.
- Überwachung und Debuggbarkeit — Wie vergleiche ich verschiedene Versionen von Software? Das Beobachten von Protokollen und Metriken, das Protokollieren benutzerdefinierter Metriken und deren Beobachtung auf Dashboards sollte sehr einfach sein.
- Verwaltung und Sicherheit von Geheimnissen — Die ordnungsgemäße Verwaltung geheimer Daten muss unterstützt werden und der Zugriff auf andere Systeme muss über Dienstkonten ermöglicht werden, anstatt Zugangsdaten in Umlauf zu bringen.
- Automatisierung und CI/CD — Eine gute CI/CD-Pipeline ist entscheidend für eine schnelle Entwicklung und das Auffangen von Fehlern. In der Lage zu sein, neue Umgebungen nahtlos mit einem Klick zu erstellen. Die Möglichkeit, automatisiert von der Entwicklung über die Bereitstellung bis hin zur Produktion überzugehen, macht den Prozess viel reibungsloser.
- Versionierung, unveränderliche Bereitstellungen und Rollbacks — Es sollte einfach sein, Bereitstellungen zusammen mit den geheimen Werten rückgängig zu machen. In allen aktuellen Systemen ist es heute fast unmöglich, eine Bereitstellung mit dem letzten Satz von Umgebungsvariablen oder geheimen Werten rückgängig zu machen.
- Mehrere Umgebungen: Die Fähigkeit, mehrere Umgebungen zu verwalten oder dynamische Umgebungen hoch/runter zu drehen, hilft Entwicklern, auf isoliertere Weise zu testen, und macht insgesamt viel schneller Fortschritte bei geringeren Kosten.
- API-Sicherheit und Authentifizierung — Authentifizierung von APIs sowohl extern als auch intern — einfache Benutzername-Passwort-Authentifizierung, OIDC-Authentifizierung, Dienstkonto, Inhaber-Token?
- Ratenbegrenzung und Load Balancer-Konfiguration — Allgemeine bewährte Verfahren, die für jede API (Load Balancer-Konfiguration) integriert werden müssen
- Geschwindigkeit und Autonomie der Bereitstellung — Entwickler sollten das Gefühl haben, die Kontrolle über die Bereitstellungen zu haben, anstatt sich von ihnen abstrahieren zu lassen. Eines der Hauptziele der Plattform ist es, sie auf dem Laufenden zu halten und sie autonom zu machen und gleichzeitig sicherzustellen, dass die Kerninfrastruktur nicht aufgrund menschlicher Fehler kaputt geht.
- Kostenoptimierung — Die Auswahl der besten Hardware und der besten Art der Bereitstellung helfen dabei, dies zu optimieren.
- Koordination von Infrastruktur- und Anwendungsänderungen: Beim Wechsel von einer Umgebung in eine andere müssen häufig auch Infrastrukturänderungen eingeführt werden — was, wenn sie verpasst werden, zum Ausfall der Anwendung in der Produktion führt.
- AB Testing//Traffic Shaping
Einführung von TrueFoundry?
Eine Bereitstellungsplattform, die als interne Entwicklerplattform für ein Unternehmen dienen kann. Das Ziel dabei ist es, Entwicklern die Bereitstellung und Wartung ihrer Anwendungen ohne detaillierte Infrastrukturkenntnisse wirklich zu erleichtern. Außerdem soll es den Infra- und DevOps-Teams leicht gemacht werden, Richtlinien zur Durchsetzung der Best Practices in den Bereichen Technik und Sicherheit zu erstellen.
Was sind die wichtigsten Designprinzipien der TrueFoundry-Plattform?
- Vollständig API-gesteuerte Architektur — TrueFoundry folgt einer vollständig API-gesteuerten Architektur, die Kubernetes sehr ähnlich ist. Auf diese Weise können Benutzer darauf aufbauend Schnittstellen, Benutzeroberflächen und Automatisierungen erstellen.
- Erweiterbares PAAS auf Kubernetes — kann mit mehreren Plugins an die Kernfunktionen von Kubernetes angepasst werden.
- Gitops-gesteuert (unterstützt auch einen Nicht-Gitops-Modus)
- Feinkörnige Zutrittskontrolle vom ersten Tag an
- Infrastructure as Code (Terraform) — kann in kürzester Zeit auf jedem Cloud-Konto eingerichtet werden.
- Standardmäßige Sicherheit — Truefoundry folgt dem POLP-Prinzip (Principle of Least Privilege) und verwendet bewährte Sicherheitsmethoden wie die Verwendung von Dienstkonten, TLS, Datenverschlüsselung im Ruhezustand und Unterstützung für Air-Gap-Umgebungen.
- Cloud Native von Natur aus — Wir wählen bewusst Komponenten aus, die von Natur aus Cloud-nativ sind und bei allen Cloud-Anbietern verfügbar sind.
Wichtige Funktionen, die in TrueFoundry unterstützt werden
Verschiedene Methoden der cloudübergreifenden Bereitstellung:
Je nach Verkehrsmuster, CPU- und Speicherverbrauch können unterschiedliche Workloads für unterschiedliche Bereitstellungsmethoden geeignet sein. Ziel ist es, eine einzige Schnittstelle für die Bereitstellung auf mehreren Systemen bereitzustellen — z. B. Service auf Kubernetes, Jobs auf Kubernetes, AWS Lambda, serverlos auf Kubernetes (Knative), Google Cloud Run, Modellserver. Truefoundry lässt sich in Git-Repositorys integrieren, um die Bereitstellung direkt von jedem Git-Repo aus zu ermöglichen.

Protokollierung und Visualisierung von Metriken und Grafiken für alle Jobs
Mit TrueFoundry können Entwickler Details, Metriken, Parameter, Bilder, Plots und Artefakte protokollieren, sodass sie Jobläufe mithilfe der detaillierten Dashboards vergleichen können.

Software Canary//Shadow Testing
TrueFoundry macht es wirklich einfach, neue Versionen der Software auf Live-Daten zu testen, ohne die bestehende Produktion zu beeinträchtigen — durch Shadow-Tests. Es ermöglicht auch die Einführung von Software durch eine schrittweise Verlagerung des Datenverkehrs auf die neuen Versionen.
Verwaltung von Geheimnissen
Entwickler werden in der Lage sein, Geheimnisse zu erstellen und sie in ihren Anwendungen zu referenzieren. Einige der wichtigsten Funktionen der Geheimnisverwaltung:
- Der geheime Speicher wird von Secretstores wie Vault, AWS Secrets Manager, Google Secrets Manager, AWS Parameter Store usw. unterstützt. Keiner der tatsächlichen Geheimwerte wird auf der Plattform selbst gespeichert.
- Die Plattform verfolgt, welches Geheimnis in welcher Anwendung verwendet wird — sodass sie Benutzer bei jeder Änderung eines Geheimnisses dazu auffordern kann, die entsprechenden Dienste erneut bereitzustellen.
- Die Plattform verwaltet geheime Versionen, die ein Rollback von Anwendungen zusammen mit den entsprechenden geheimen Versionen ermöglichen.

Zugriffskontrolle auf geheime Daten — Zuschauer können die Schlüssel von Geheimnissen sehen, aber nicht die Werte der Geheimnisse. Auf diese Weise kann das DevOps/Infra-Team die Schlüssel mit den Entwicklern teilen, ohne sich Gedanken darüber machen zu müssen, die Werte von Geheimnissen preiszugeben.
Multi-Cluster-Management und -Bereitstellung

Truefoundry ermöglicht die Integration mit mehreren Clustern und die Verwaltung der Zugriffskontrolle über diese hinweg. Truefoundry speichert die Cluster-Anmeldeinformationen nirgends bei sich selbst, sodass sie für verschiedene Benutzer im Unternehmen sicher sind.
Zugriffskontrolle auf Kubernetes für verschiedene Teams
Truefoundry macht es einfach, Kubernetes-Namespaces mit Zugriffskontrolle zu versehen und sie verschiedenen Teams mit Ressourcenkontingenten zuzuweisen. Dadurch können Entwickler autonomer arbeiten und gleichzeitig sicherstellen, dass die Infrastruktur stabil, kostenkontrolliert und sicher bleibt.

Einfache Benutzeroberflächen für Überwachung und Protokollierung, die direkt auf der Plattform sichtbar sind
TrueFoundry äußert sich nicht zu der Protokollierungs- oder Metrikplattform, die Sie verwenden möchten. Das Ziel hier ist stattdessen die Integration in einige gängige Protokollierungs- und Überwachungslösungen, sodass wir einen kurzen Blick auf die Plattform selbst werfen können. Für detailliertere und anpassbarere Ansichten empfehlen wir die Verwendung der vorhandenen Überwachungslösungen wie Prometheus, Loki, ELK, Datadog oder NewRelic.


Einheitliche Ansicht aller bereitgestellten und laufenden Dienste (Service Catalog)

Kostenschätzung und -optimierung auf Ebene der einzelnen Serviceebenen, Teams und Ingenieure.
Wir möchten es ermöglichen, Kostenschätzungen und Optimierungen auf Service- oder Teamebene zu verfolgen. Schon die Transparenz der Kosten für jeden einzelnen Techniker schafft das Bewusstsein, die Kosten zu optimieren und ein einzelnes Team zu entlasten.
Stellen Sie ein beliebiges Terraform-Modul bereit (und ermöglichen Sie so die Bereitstellung aller verwalteten Datenbank-, Warteschlangen- oder Caching-Dienste)
Wir möchten die Bereitstellung von Cloud-Diensten mithilfe von Terraform-Modulen ermöglichen, die vom DevOps- oder Infra-Team geschrieben wurden. Zum Beispiel kann das DevOps-Team ein Terraform-Modul zum Erstellen einer Datenbank erstellen, und Entwickler können eine Datenbank über die Benutzeroberfläche bereitstellen, die auf dem Terraform-Modul für RDS basiert. Dies wird auf dem unten genannten Plugin-Framework und einem Terraform-Controller auf Kubernetes basieren.
Funktioniert TrueFoundry mit meinem vorhandenen Stack?
Bei TrueFoundry wollen wir das Rad nicht neu erfinden und bestehende Systeme so weit wie möglich nutzen. Aus diesem Grund integrieren wir viele bestehende Infrastruktur-Tools, sodass Benutzer ihre eigene Infrastruktur mitbringen oder Truefoundry an ihre eigenen Bedürfnisse anpassen können.
- Cloud-Konten (AWS, GCP, Azure) — dies hilft uns, Cluster automatisch bereitzustellen, Lambda zu erstellen und verwaltete Dienste bereitzustellen.
- Git-Integration (Github, Bitbucket, Azure) — dies hilft Entwicklern, ihre Anwendung direkt aus ihren Git-Repositorys bereitzustellen.
- Secret Stores (AWS Secrets Manager, Google Secrets Manager, Hashicorp Vault) — auf diese Weise werden die tatsächlichen Werte der Secrets in den Secret Stores und nicht auf der Plattform gespeichert.
- Docker-Registrierung — Dockerhub, Google GCR, Amazon ECR, Github Docker-Registrierung
- Terraform-Integration
- Integrationen zur Überwachung: Promethues Grafana, Datadog, NewRelic
- Protokollierung von Infrastrukturintegrationen — Loki, Datadog, ELK-Stack.
- CI/CD-Integration — Truefoundry kann in bestehende CI/CD-Pipelines wie Github Actions, Jenkins, AWS Codebuild, Google Codebuild usw. integriert werden.
Wenn Sie hier auf der Liste keinen Namen sehen, arbeiten wir gerne mit Ihnen zusammen und fügen der Liste weitere Integrationen hinzu.
Wie verbessert TrueFoundry die Sicherheit?
POLP-Prinzip
Wir folgen den Infra-Teams und machen es ihnen leicht, das POLP-Prinzip im gesamten Stack durchzusetzen. Entwickler können zu allen Arbeitsbereichen hinzugefügt werden, auf die sie Zugriff benötigen — und ihre Änderungen werden auf diese Arbeitsbereiche beschränkt.
Keine Geheimnisse, Passwörter, die auf der Truefoundry-Plattform gespeichert sind
Truefoundry speichert keine vertraulichen Informationen wie Kubernetes-Anmeldeinformationen oder Geheimnisse bei sich. Alle Daten werden im REST-Modus verschlüsselt. Wir empfehlen, den gesamten Zugriff über Dienstkonten bereitzustellen
Wir planen auch, vollständige Auditprotokolle bereitzustellen, die den Teams helfen, alle plattformübergreifend ergriffenen Maßnahmen zu verstehen.
Wie ist TrueFoundry offen und anpassbar?
Der Kubernetes-Cluster liegt in Ihrer Kontrolle
TrueFoundry macht den rohen Kubernetes-Cluster verfügbar, auf dem Workloads bereitgestellt werden, und bietet Kunden vollen Zugriff (einschließlich Kubectl mit entsprechender Zugriffsberechtigung). Auf diese Weise kann jeder zusätzlich zu Truefoundry so ziemlich alles tun, was er will, ohne ihn jemals zu blockieren.
Abgesehen davon unterstützen wir auch ein Plugin-Framework, mit dem es einfach ist, weitere Plugins zu erstellen — ähnlich wie CRDs auf Kubernetes.
Erstellen benutzerdefinierter Plugins auf TrueFoundry
TrueFoundry unterstützt jede Bereitstellungsmethode als benutzerdefiniertes Plugin:
Um ein Plugin zu erstellen, muss der Benutzer 3 Teile schreiben:
- Eine Eingabe-Cue-Datei, die die Spezifikation des Eingabeschemas definiert
- Prozessor, der definiert, wie die Eingabespezifikation in eine Ausgabespezifikation konvertiert wird
- Ausgabespezifikation, die an Kubernetes gesendet wird.
Derzeit müssen die Eingabespezifikation und die Ausgabespezifikation angegeben sein Cue Lang und der Prozessor muss in Go sein. In Zukunft können wir jedoch zulassen, dass Eingabe- und Ausgabeschemas auch im JSON-Schema möglich sind, und die Prozessoren können in jeder Sprache geschrieben werden.
Wir generieren die UI und die Python-Interfaces automatisch aus den Eingabe-Cue-Dateien.
Wie kann ich bei TrueFoundry einsteigen?
Einrichtung der Infrastruktur durch Infrastruktur-/Devops-Teams:
- Erstellen Sie Kubernetes-Cluster mit Terraform. Truefoundry bietet Terraform-Beispielcode, mit dem Cluster mit einem Klick gestartet werden können, während der Terraform-Code in ein Github-Repo übertragen wird. Devops-/Infra-Teams können den Terraform-Code nach ihrer Wahl anpassen und die Terraform erneut anwenden.
- Erstellen Sie Dienstkonten über Terraform, um den Zugriff auf andere Infrastrukturen von Kubernetes-Namespaces aus zu ermöglichen.
- Fügen Sie die Dienstkonten zu Arbeitsbereichen auf der Truefoundry-Plattform hinzu und weisen Sie Arbeitsbereiche verschiedenen Teams zu.
- Truefoundry bootet den Kubernetes-Cluster mit einem Standard-Monitoring-Stack (Kube-Prometheus-Loki-Grafana-Stack), Istio (Ingress) und ArgoCD (Infra-Deployment). Truefoundry speichert die Manifestdateien in ein Github-Repository, das dann gemäß den Anforderungen des Infra-Teams geändert werden kann.
- Für die Bereitstellung einer verwalteten Infrastruktur können die Infra-Teams die Terraform-Module für DB, Warteschlange, Cache usw. bereitstellen. Entwickler können diese Infrastruktur dann mithilfe der vom Infra-Team bereitgestellten Module bereitstellen.
- Binden Sie Entwickler in die Plattform ein.
- Weisen Sie Teams/Anwendungen Arbeitsbereiche zu.
- Entwickler können dann im Handumdrehen mit der Bereitstellung beginnen, indem sie den Dokumenten folgen.
Wie funktioniert TrueFoundry?
TrueFoundry besteht aus 2 Komponenten — der Steuerungsebene und einem Workload-Cluster-Agenten. Dadurch kann TrueFoundry Workloads über mehrere Cluster hinweg orchestrieren.

Differenzierung gegenüber anderen Plattformen
Architektur
- Multi-Cluster ab Tag 1: Truefoundry unterstützt Multi-Cluster-Unterstützung vom ersten Tag an, wobei Cluster regionsübergreifend, VPCs und privat/öffentlich sein können. Dies wird in der aktuellen Architektur von Porter und Northflank sehr schwierig sein. Die Architektur von Komodor kann das, aber sie konzentrieren sich mehr auf die Kubernetes-Visualisierung und -Überwachung, die standardmäßig auf unserer Plattform enthalten ist.
- Multi-Cloud ab Tag 1: Dies gilt für Porter, Northflank, Qovery, aber nur auf der Kubernetes-Ebene. Unsere Architektur unterstützt aufgrund der Offenheit der Architektur den Aufbau von Integrationen mit viel mehr nativen Cloud-Komponenten. Argonaut tut dies auf derselben breiteren Ebene wie wir.
- Vollständige Transparenz und Gitops — Wir folgen einem Modell voller Transparenz, bei dem der Benutzer die volle Kontrolle über seine Architektur hat und zu keinem Zeitpunkt von Truefoundry blockiert wird. Im Fall von Porter, Northflank und Qovery werden größere Unternehmen aufgrund der geschlossenen Architektur über den Funktionsumfang hinauswachsen. Wir erlauben auch sowohl einen Gitops- als auch einen Nicht-Gitops-Modus, was noch niemand tut — Porter, Norhtflank, Qovery basieren nicht auf Gitops-Push, wohingegen CoSphere vollständig auf Git basiert.
Anwendung und Infrastruktur Einheitlicher Einsatz
Wir integrieren uns sehr tief in die Anwendung, die Jobs und den ML-Einsatz. Dadurch wird viel Infrastrukturwissen in die Terminologie der Entwickler übersetzt. Viele der anderen Plattformen tun dies, indem sie Abstraktionen erstellen und die Infrastrukturkonzepte reduzieren — wohingegen wir versuchen, Dinge zu vereinfachen und nichts zu verstecken.
Argonaut verfolgt diesen Ansatz, bei dem sowohl die Infrastruktur als auch die Anwendungsbereitstellung zusammengeführt werden — dies wird jedoch ein 2-3-jähriger Produktzyklus sein. Sie haben mit mehr auf der Infrastrukturseite begonnen.
Plug-ins
Unsere Plugin-basierte Architektur basiert auf dem Kubernetes CRD-Framework mit unserer eigenen CueLang-Variante. Dies gibt uns die Möglichkeit, Plugins auf CLI, UI und allen Sprachen sehr schnell zu veröffentlichen. Dies wurde vom Design von Kubevela (einem Open-Source-Repo) inspiriert — wir kennen keinen anderen Spieler, der dieses Muster herausgefunden hat. Dies ist eines unserer proprietären Dinge, das es uns auch ermöglichen wird, viel schneller als andere Spieler zu bauen.
Transparenz
Wir versuchen, so transparent wie möglich zu sein, indem wir den kompletten Quellcode herausgeben — was es wirklich einfach macht, von uns wegzumigrieren. Porter und purple.sh scheinen das nur zu garantieren — der Rest sind alle sehr geschlossene Systeme.
Einblicke
Wir bieten bereits einzigartige Einblicke und verhindern die häufigsten Fehler bei der Softwarebereitstellung, z. B. das Nichtändern von Umgebungsvariablen bei der Bereitstellung. Wir kennen keine andere Plattform, die dies tut oder das so gut wie möglich kann, da wir sowohl den geheimen Verlauf als auch den Bereitstellungsverlauf kennen. Wir können auch viele Erkenntnisse über Kosten, Stabilität und Produktivität der Entwickler gewinnen, da wir die Code-Pipeline von der Quellcodeverwaltung bis zur Produktion verfolgen.
Ersatz für das Plattformteam
Unsere Plattform ist so konzipiert, dass sie eher dem entspricht, was Plattformteams intern entwickeln. Sie befasst sich mit den wichtigsten Fragen der Ressourcenzuweisung, Sicherheit und Abstraktionen für Entwickler. Porter, Northflank sind Heroku ähnlicher. Qovery, Argonaut ist eher ein Ersatz für Devops für kleinere Unternehmen. Humanitec, Shipa sind eher für Plattformteams konzipiert, aber wir fanden es ziemlich schwierig, über ihre Abstraktionen nachzudenken und sie zu verstehen.
TrueFoundry AI Gateway bietet eine Latenz von ~3—4 ms, verarbeitet mehr als 350 RPS auf einer vCPU, skaliert problemlos horizontal und ist produktionsbereit, während LiteLM unter einer hohen Latenz leidet, mit moderaten RPS zu kämpfen hat, keine integrierte Skalierung hat und sich am besten für leichte Workloads oder Prototyp-Workloads eignet.
Der schnellste Weg, deine KI zu entwickeln, zu steuern und zu skalieren















.png)






.png)






.webp)

.webp)



