Next Level Apps mit Snowpark Container Services und Snowflake Native Apps
Der Markt für Unternehmensapps wächst schneller als je zuvor, da die Nachfrage nach KI-/ML-Workloads in letzter Zeit stark gestiegen ist. Diese neuen Arten von Apps arbeiten mit großen Datenmengen, stellen immer höhere Anforderungen an die Rechenleistung, erfordern einen strengen Datenschutz, bieten sehr anspruchsvolle Web-Erlebnisse und müssen in allen Phasen ihres Lebenszyklus sicher sein.
Während solche Apps in einem sehr schnellen Tempo erstellt werden, gibt es zwei große Herausforderungen:
- Viele moderne, leistungsstarke Anwendungen nutzen Container, um Code zu verpacken und zu verwenden. Dies erfordert jedoch in der Regel, dass Daten aus geschützten Umgebungen verschoben werden, was das Datenschutz- und Sicherheitsrisiko erhöht.
- Neue Unternehmenskunden zu treffen und Ihr Produkt zu monetarisieren kann eine Herausforderung sein, insbesondere wenn Sie Unternehmenskunden ansprechen.
Die App-Funktionen von Snowflake helfen dabei, diese Herausforderungen zu bewältigen, die Möglichkeiten für App-Entwickler in Unternehmen zu erweitern und die App-Entwicklung zu rationalisieren. Mit dem Snowflake Native App Framework (in Kürze allgemein auf AWS und in Kürze als öffentliche Vorschau auf Azure verfügbar) können Apps für alle Snowflake-Kunden über den Snowflake Marketplace erstellt, bereitgestellt und monetarisiert werden. Mit der Unterstützung für Snowpark Container Services (Integration in der privaten Vorschau) können Entwickler jetzt bestehende containerisierte Arbeitslasten für einen beschleunigten Entwicklungszyklus einbringen oder App-Code in ihrer bevorzugten Sprache schreiben, ihn als Container verpacken und in einer Reihe von konfigurierbaren Hardwareoptionen, einschließlich GPUs, ausführen – alles innerhalb ihrer Snowflake Native App.
Bewältigung der Herausforderungen von datenintensiven Anwendungen
Mithilfe der kombinierten Funktionen von Snowflake Native Apps und Snowpark Container Services können Sie anspruchsvolle Anwendungen erstellen und diese im Kundenkonto bereitstellen. Da sich die Daten bereits im Kundenkonto befinden, müssen sie nicht aus der geschützten Umgebung entfernt werden (was die Herausforderung Nr. 1 darstellt). Sie können eine Anwendung mit einem benutzerdefinierten Frontend erstellen, das in einem JavaScript-Framework Ihrer Wahl kodiert ist, sowie einen Backend-Dienst, der in der von Ihnen bevorzugten Sprache kodiert ist, z. B. in C++, Golang, .NET oder anderen Sprachen.
Das bedeutet, dass Sie unterschiedliche Rechenanforderungen für das Front-End und das Back-End haben können, die in isolierten Rechenpools ausgeführt werden, die dem Kunden gehören und von ihm verwaltet werden – der auch kontrolliert, auf welche Teile seiner Daten die Anwendung zugreifen kann.
App-Entwickler können ihre Apps auf dem Snowflake Marketplace veröffentlichen und monetarisieren, wodurch es für Kunden einfacher wird, die richtigen Apps für ihre Geschäftsanforderungen zu finden und zu nutzen (Herausforderung Nr. 2). Apps auf dem Snowflake Marketplace durchlaufen eine Sicherheitsanalyse der Kernkomponenten der App, einschließlich der Container-Images. Das umfangreiche Berechtigungsmodell von Snowflake Native Apps gibt den Kunden die Kontrolle darüber, ob sie eine App-Aktivität zulassen, die ihre Daten nutzt. All diese Plattformfunktionen ermöglichen es Anbietern, Vertrauen bei ihren Kunden aufzubauen, wenn sie innerhalb von Snowflake laufen. Bei der Entwicklung dieser Anwendungen können die Entwickler aus den standardmäßigen verbrauchsbasierten Abrechnungsmodellen wählen oder ein benutzerdefiniertes Modell erstellen. Zum Beispiel können sie Kunden die Funktionalität in Rechnung stellen, die als Service in einem Container läuft.
Ein genauerer Blick: Snowpark Container Services als Teil einer Snowflake Native App
Lassen Sie uns ein wenig tiefer eintauchen, wie Sie Snowpark Container Services als Teil einer Snowflake Native App nutzen können.
Die Kernkomponenten einer Snowflake Native App mit Snowpark Container Services sind:
- Bild-Repository: Container-Image-Speicherdienst zur sicheren Speicherung und Replikation von Inhalten in Snowflake
- Compute-Pool: Sammlung von Knoten, die in einer Vielzahl verschiedener SKUs verfügbar sind und einem bestimmten Kunden und einer einzelnen Anwendung zugewiesen sind
- Service-Definitionsdateien: Definition von Diensten mit Zeigern auf die Container-Images in der Registry und Endpunktdefinitionen
- Snowflake Native App Paket: Sammlung aller für Ihre Anwendung relevanten Inhalte, zu denen jetzt auch Container-Images gehören
- Manifest-Datei: Definition der Anwendung, ihrer Komponenten, Versionsinformationen und Konfiguration
- Setup-Skript: Konfigurationsskript, das die App im Konto des Kunden installiert, einschließlich der Einrichtung des Compute-Pools
So sieht der Prozess der Erstellung einer App aus:
Wie H2O.ai den Zugang zu Modell-Trainingsdaten mit Snowflake Native Apps und Snowpark Container Services vereinfacht
H2O.ai, ein führendes Unternehmen im Bereich des maschinellen Lernens, bietet seine hochmoderne ML-Engine, einschließlich der H2O Driverless AI AutoML-Engine und des H2O LLM Studio für die Feinabstimmung und Erstellung benutzerdefinierter GPTs, als Snowflake Native App an. Das primäre Ziel des Unternehmens ist es, den Kunden den Zugang zu Daten für das Modelltraining und die Inferenzierung zu vereinfachen und gleichzeitig den Datenschutz der Kunden zu gewährleisten und die Datenbewegungen zu reduzieren. Gleichzeitig bietet das Snowflake Native App Framework H2O das attraktive Potenzial, seine Apps und Daten zu monetarisieren und gleichzeitig die Privatsphäre der Kundenmodelle zu wahren.
Das H2O-Team hat eine Snowflake Native App mit dem Snowpark Container Service entwickelt. Dabei werden bestehende Apps und Modelle in Container umgewandelt und den Kunden in einem optimierten Verfahren zur Verfügung gestellt. Die wahren Vorteile zeigen sich, wenn es an der Zeit ist, Updates und neue Versionen zu verteilen: Der Template-basierte Ansatz von H2O macht einen potenziell komplexen Prozess viel einfacher. Die Trennung von Code-Entwicklung und Image-Update sowie das Auto-Bootstrap der Snowflake Native App mit einer Vorlage reduzieren die Entwicklungszeit erheblich. Außerdem können Updates schnell bereitgestellt werden, so dass sowohl H2O als auch seine Kunden mit den häufigen Veröffentlichungen neuer großer Sprachmodelle (LLMs) Schritt halten können.
Die Funktion „Target Release Directory“ des Snowflake Native App Frameworks ermöglicht es den Kunden von H2O, verschiedene Modellversionen direkt zu testen und damit die Einhaltung von Vorschriften von Institutionen wie der FCC zu gewährleisten, die bestimmte Engine-Versionen verlangen. Diese Integration stellt einen bedeutenden Fortschritt im Bereich des maschinellen Lernens und der Datenverarbeitung dar, der es H2O ermöglicht, effiziente, skalierbare und benutzerfreundliche Lösungen anzubieten.
Quelle: medium.com