Next-Level Apps with Snowpark Container Services and Snowflake Native Apps
The enterprise app market has been growing faster than ever before, due to the recent spike in demand for AI / ML workloads. These new types of apps operate over large sets of data, have increasingly higher compute demands, require strict data privacy protections, provide very sophisticated web experiences, and need to be secure at all stages of their life cycles.
While such apps are being created at a very fast pace, there are two main challenges:
- Many modern powerful apps utilize containers to package and use code; however, this typically requires data to be moved from protected environments, increasing data privacy and security risk.
- Meeting new enterprise customers and monetizing your product can be a challenge, especially when targeting enterprise customers.
Snowflake’s suite of app capabilities helps address these challenges, expanding the opportunities for enterprise app developers and streamlining app development. With the Snowflake Native App Framework (generally available soon on AWS and public preview soon on Azure), apps can be built, deployed and monetized to all Snowflake customers through Snowflake Marketplace. With support for Snowpark Container Services (integration in private preview), developers can now bring in existing containerized workloads for an accelerated dev cycle, or write app code in their preferred language, package it as a container, and execute it in a range of configurable hardware options, including GPUs, all within their Snowflake Native App.
Addressing the challenges of data-intensive apps
Using the combined capabilities of Snowflake Native Apps and Snowpark Container Services, you can build sophisticated apps and deploy them to a customer’s account. Because the data already resides in the customer’s account, there is no need to remove data from its protected environment (addressing challenge #1). You can build an app with a custom front end coded in your JavaScript framework of choice, as well as a back-end service coded in your preferred language, such as C++, Golang, .NET languages or others.
This means you can have different compute demands for the front-end and the back-end running in isolated compute pools owned and managed by the customer—who also controls which parts of their data the app can access.
App builders can publish and monetize their apps on Snowflake Marketplace, making it easier for customers to discover and utilize the right apps for their business needs (addressing challenge #2). Apps on Snowflake Marketplace go through a security analysis of the app core components, including the container images. Snowflake Native Apps’ rich permissions model puts the customers in control of deciding whether to allow any app activity that leverages their data. All these platform functionalities allow for providers to build trust with their consumers when running inside Snowflake. And when developing those apps, builders can choose from out-of-the-box consumption-based billing models, or create a custom model. For example, builders can charge customers based on functionality running as a service in a container.
Taking a closer look: Snowpark Container Services as part of a Snowflake Native App
Let’s dive a bit deeper into how you can utilize Snowpark Container Services as part of a Snowflake Native App.
The core components of a Snowflake Native App with Snowpark Container Services are:
- Image repository: Container image storage service to safely store and replicate content inside Snowflake
- Compute pool: Collection of nodes available in a variety of different SKUs, dedicated to a given customer and to a single app
- Service definition files: Definition of service(s) with pointers to the container images in the registry and endpoint definitions
- Snowflake Native App Package: Collection of all the content relevant to your app, which now includes container images
- Manifest file: Definition of the app, its components, version info and configuration
- Setup script: Configuration script that installs the app in the consumer’s account, including compute pool setup
Here’s what the process of building an app looks like:
How H2O.ai simplifies access to model training data with Snowflake Native Apps and Snowpark Container Services
H2O.ai, a leading machine learning company, offers its state-of-the-art ML engine, including H2O Driverless AI AutoML engine and H2O LLM Studio for fine-tuning and making custom GPTs, as a Snowflake Native App. The company's primary goal is to simplify customer access to data for model training and inferencing while safeguarding their customers’ data privacy and reducing data movement. At the same time, the Snowflake Native App Framework offers H2O the attractive potential to monetize their apps and data while keeping the customers model private.
H2O eScorer is one of the apps developed with the Snowflake Native Apps framework.
The H2O team has been developing a Snowflake Native App with Snowpark Container Service, which involves converting existing apps and models into containers and delivering them to consumers in a streamlined experience. The real benefits emerge when it’s time to distribute updates and new releases: H2O’s template-based approach makes a potentially complex process much easier. Separating code development with image update and auto bootstrap the Snowflake Native App with a template significantly reduces the development time involved. It also allows for swift deployment of updates, so both H2O and its customers can keep pace with frequent releases of new large language models (LLMs).
The Snowflake Native App Framework's target release directory feature allows H2O customers to test different model versions directly, ensuring compliance with institutions like the FCC that require specific engine versions. This integration represents a significant advancement in machine learning and data processing that allows H2O to provide efficient, scalable, and user-friendly solutions.
What’s next?
The integration of Snowpark Container Services with Snowflake Native App Framework opens up a huge set of possibilities for building apps that can be brought to customers and to the broader Snowflake Marketplace. Get a deeper dive into building with Snowflake Native Apps and Snowpark Container Services in action at BUILD 2023—register now and join other builders for demos and labs featuring these impressive products.