Next Level Apps mit Snow­park Con­tai­ner Ser­vices und Snow­flake Native Apps

Der Markt für Unter­neh­mens­apps wächst schnel­ler als je zuvor, da die Nach­frage nach KI-/ML-Workloads in letz­ter Zeit stark gestie­gen ist. Diese neuen Arten von Apps arbei­ten mit gro­ßen Daten­men­gen, stel­len immer höhere Anfor­de­run­gen an die Rechen­leis­tung, erfor­dern einen stren­gen Daten­schutz, bie­ten sehr anspruchs­volle Web-Erleb­nisse und müs­sen in allen Pha­sen ihres Lebens­zy­klus sicher sein.

Wäh­rend sol­che Apps in einem sehr schnel­len Tempo erstellt wer­den, gibt es zwei große Herausforderungen:

  • Viele moderne, leis­tungs­starke Anwen­dun­gen nut­zen Con­tai­ner, um Code zu ver­pa­cken und zu ver­wen­den. Dies erfor­dert jedoch in der Regel, dass Daten aus geschütz­ten Umge­bun­gen ver­scho­ben wer­den, was das Daten­schutz- und Sicher­heits­ri­siko erhöht.
  • Neue Unter­neh­mens­kun­den zu tref­fen und Ihr Pro­dukt zu mone­ta­ri­sie­ren kann eine Her­aus­for­de­rung sein, ins­be­son­dere wenn Sie Unter­neh­mens­kun­den ansprechen.

Die App-Funk­tio­nen von Snow­flake hel­fen dabei, diese Her­aus­for­de­run­gen zu bewäl­ti­gen, die Mög­lich­kei­ten für App-Ent­wick­ler in Unter­neh­men zu erwei­tern und die App-Ent­wick­lung zu ratio­na­li­sie­ren. Mit dem Snow­flake Native App Frame­work (in Kürze all­ge­mein auf AWS und in Kürze als öffent­li­che Vor­schau auf Azure ver­füg­bar) kön­nen Apps für alle Snow­flake-Kun­den über den Snow­flake Mar­ket­place erstellt, bereit­ge­stellt und mone­ta­ri­siert wer­den. Mit der Unter­stüt­zung für Snow­park Con­tai­ner Ser­vices (Inte­gra­tion in der pri­va­ten Vor­schau) kön­nen Ent­wick­ler jetzt bestehende con­tai­ne­ri­sierte Arbeits­las­ten für einen beschleu­nig­ten Ent­wick­lungs­zy­klus ein­brin­gen oder App-Code in ihrer bevor­zug­ten Spra­che schrei­ben, ihn als Con­tai­ner ver­pa­cken und in einer Reihe von kon­fi­gu­rier­ba­ren Hard­ware­op­tio­nen, ein­schließ­lich GPUs, aus­füh­ren – alles inner­halb ihrer Snow­flake Native App.

Bewäl­ti­gung der Her­aus­for­de­run­gen von daten­in­ten­si­ven Anwendungen

Mit­hilfe der kom­bi­nier­ten Funk­tio­nen von Snow­flake Native Apps und Snow­park Con­tai­ner Ser­vices kön­nen Sie anspruchs­volle Anwen­dun­gen erstel­len und diese im Kun­den­konto bereit­stel­len. Da sich die Daten bereits im Kun­den­konto befin­den, müs­sen sie nicht aus der geschütz­ten Umge­bung ent­fernt wer­den (was die Her­aus­for­de­rung Nr. 1 dar­stellt). Sie kön­nen eine Anwen­dung mit einem benut­zer­de­fi­nier­ten Front­end erstel­len, das in einem Java­Script-Frame­work Ihrer Wahl kodiert ist, sowie einen Backend-Dienst, der in der von Ihnen bevor­zug­ten Spra­che kodiert ist, z. B. in C++, Golang, .NET oder ande­ren Sprachen.

Das bedeu­tet, dass Sie unter­schied­li­che Rechen­an­for­de­run­gen für das Front-End und das Back-End haben kön­nen, die in iso­lier­ten Rechen­pools aus­ge­führt wer­den, die dem Kun­den gehö­ren und von ihm ver­wal­tet wer­den – der auch kon­trol­liert, auf wel­che Teile sei­ner Daten die Anwen­dung zugrei­fen kann.

App-Ent­wick­ler kön­nen ihre Apps auf dem Snow­flake Mar­ket­place ver­öf­fent­li­chen und mone­ta­ri­sie­ren, wodurch es für Kun­den ein­fa­cher wird, die rich­ti­gen Apps für ihre Geschäfts­an­for­de­run­gen zu fin­den und zu nut­zen (Her­aus­for­de­rung Nr. 2). Apps auf dem Snow­flake Mar­ket­place durch­lau­fen eine Sicher­heits­ana­lyse der Kern­kom­po­nen­ten der App, ein­schließ­lich der Con­tai­ner-Images. Das umfang­rei­che Berech­ti­gungs­mo­dell von Snow­flake Native Apps gibt den Kun­den die Kon­trolle dar­über, ob sie eine App-Akti­vi­tät zulas­sen, die ihre Daten nutzt. All diese Platt­form­funk­tio­nen ermög­li­chen es Anbie­tern, Ver­trauen bei ihren Kun­den auf­zu­bauen, wenn sie inner­halb von Snow­flake lau­fen. Bei der Ent­wick­lung die­ser Anwen­dun­gen kön­nen die Ent­wick­ler aus den stan­dard­mä­ßi­gen ver­brauchs­ba­sier­ten Abrech­nungs­mo­del­len wäh­len oder ein benut­zer­de­fi­nier­tes Modell erstel­len. Zum Bei­spiel kön­nen sie Kun­den die Funk­tio­na­li­tät in Rech­nung stel­len, die als Ser­vice in einem Con­tai­ner läuft.

Ein genaue­rer Blick: Snow­park Con­tai­ner Ser­vices als Teil einer Snow­flake Native App

Las­sen Sie uns ein wenig tie­fer ein­tau­chen, wie Sie Snow­park Con­tai­ner Ser­vices als Teil einer Snow­flake Native App nut­zen können.

Die Kern­kom­po­nen­ten einer Snow­flake Native App mit Snow­park Con­tai­ner Ser­vices sind:

  1. Bild-Repo­si­tory: Con­tai­ner-Image-Spei­cher­dienst zur siche­ren Spei­che­rung und Repli­ka­tion von Inhal­ten in Snowflake
  2. Com­pute-Pool: Samm­lung von Kno­ten, die in einer Viel­zahl ver­schie­de­ner SKUs ver­füg­bar sind und einem bestimm­ten Kun­den und einer ein­zel­nen Anwen­dung zuge­wie­sen sind
  3. Ser­vice-Defi­ni­ti­ons­da­teien: Defi­ni­tion von Diens­ten mit Zei­gern auf die Con­tai­ner-Images in der Regis­try und Endpunktdefinitionen
  4. Snow­flake Native App Paket: Samm­lung aller für Ihre Anwen­dung rele­van­ten Inhalte, zu denen jetzt auch Con­tai­ner-Images gehören
  5. Mani­fest-Datei: Defi­ni­tion der Anwen­dung, ihrer Kom­po­nen­ten, Ver­si­ons­in­for­ma­tio­nen und Konfiguration
  6. Setup-Skript: Kon­fi­gu­ra­ti­ons­skript, das die App im Konto des Kun­den instal­liert, ein­schließ­lich der Ein­rich­tung des Compute-Pools

So sieht der Pro­zess der Erstel­lung einer App aus:

Wie H2O.ai den Zugang zu Modell-Trai­nings­da­ten mit Snow­flake Native Apps und Snow­park Con­tai­ner Ser­vices vereinfacht

H2O.ai, ein füh­ren­des Unter­neh­men im Bereich des maschi­nel­len Ler­nens, bie­tet seine hoch­mo­derne ML-Engine, ein­schließ­lich der H2O Dri­ver­less AI AutoML-Engine und des H2O LLM Stu­dio für die Fein­ab­stim­mung und Erstel­lung benut­zer­de­fi­nier­ter GPTs, als Snow­flake Native App an. Das pri­märe Ziel des Unter­neh­mens ist es, den Kun­den den Zugang zu Daten für das Modell­trai­ning und die Infe­ren­zie­rung zu ver­ein­fa­chen und gleich­zei­tig den Daten­schutz der Kun­den zu gewähr­leis­ten und die Daten­be­we­gun­gen zu redu­zie­ren. Gleich­zei­tig bie­tet das Snow­flake Native App Frame­work H2O das attrak­tive Poten­zial, seine Apps und Daten zu mone­ta­ri­sie­ren und gleich­zei­tig die Pri­vat­sphäre der Kun­den­mo­delle zu wahren.

Das H2O-Team hat eine Snow­flake Native App mit dem Snow­park Con­tai­ner Ser­vice ent­wi­ckelt. Dabei wer­den bestehende Apps und Modelle in Con­tai­ner umge­wan­delt und den Kun­den in einem opti­mier­ten Ver­fah­ren zur Ver­fü­gung gestellt. Die wah­ren Vor­teile zei­gen sich, wenn es an der Zeit ist, Updates und neue Ver­sio­nen zu ver­tei­len: Der Tem­p­late-basierte Ansatz von H2O macht einen poten­zi­ell kom­ple­xen Pro­zess viel ein­fa­cher. Die Tren­nung von Code-Ent­wick­lung und Image-Update sowie das Auto-Boot­strap der Snow­flake Native App mit einer Vor­lage redu­zie­ren die Ent­wick­lungs­zeit erheb­lich. Außer­dem kön­nen Updates schnell bereit­ge­stellt wer­den, so dass sowohl H2O als auch seine Kun­den mit den häu­fi­gen Ver­öf­fent­li­chun­gen neuer gro­ßer Sprach­mo­delle (LLMs) Schritt hal­ten können.

Die Funk­tion „Tar­get Release Direc­tory“ des Snow­flake Native App Frame­works ermög­licht es den Kun­den von H2O, ver­schie­dene Modell­ver­sio­nen direkt zu tes­ten und damit die Ein­hal­tung von Vor­schrif­ten von Insti­tu­tio­nen wie der FCC zu gewähr­leis­ten, die bestimmte Engine-Ver­sio­nen ver­lan­gen. Diese Inte­gra­tion stellt einen bedeu­ten­den Fort­schritt im Bereich des maschi­nel­len Ler­nens und der Daten­ver­ar­bei­tung dar, der es H2O ermög­licht, effi­zi­ente, ska­lier­bare und benut­zer­freund­li­che Lösun­gen anzubieten.

Quelle: medium.com