Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.

mlstacks blog announcement #170

Merged
merged 11 commits into from
Sep 1, 2023
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
layout: post
author: "Alex Strick van Linschoten"
title: "Introducing mlstacks: a refreshed way to deploy MLOps infrastructure"
description: "Introducing mlstacks: a refreshed way to deploy MLOps infrastructure"
category: zenml
tags: mlstacks production mlops zenml evergreen tooling
publish_date: September 1, 2023
date: 2023-09-01T08:05:51Z
thumbnail: /assets/posts/mlstacks/mlstacks_logo.png
image:
path: /assets/posts/mlstacks/mlstacks_logo.png
---
**Last updated:** September 1, 2023

We're excited to launch [the new `mlstacks` Python package](https://mlstacks.zenml.io). MLStacks builds on
the work done to create [Stack Recipes](https://github.com/zenml-io/mlstacks/tree/release/0.6.1#readme), allowing you to quickly spin up MLOps
infrastructure using Terraform. It is designed to be used with ZenML, but can be
used with any MLOps tool or platform.

You can use `mlstacks` [directly as a Python package](https://pypi.org/project/mlstacks/), deploying infrastructure
with the CLI after defining your stacks in YAML. Alternatively, you can let
ZenML handle writing the stack and component specification files by [using the
ZenML CLI](https://docs.zenml.io/stacks-and-components/stack-deployment) to define which components you want to deploy. We currently support
modular MLOps stacks on AWS, GCP and K3D (for local use).

We reworked the previous way of doing things to be more stable and reliable. We
even added new features like the ability to get a cost estimate for your MLOps
stacks.

![](/assets/posts/mlstacks/mlstacks_breakdown.png)

We were inspired by [the work done by the FuzzyLabs team on Matcha](https://github.com/fuzzylabs/matcha) as well as by
conversations with users of the old `mlops-stacks` repository / functionality.
In that spirit, MLStacks is also designed to be able to work as a standalone deployment
option independent of ZenML. All of this is available in the new `mlstacks`
Python package and with [ZenML's latest release (0.44.1)](https://github.com/zenml-io/zenml/releases/tag/0.44.1).

## How can I try it out?

To use `mlstacks` directly you'll want to create .yaml files to define your
stack and the individual components in your stack. (Examples of how to do this
can be found in [the dedicated `mlstacks` documentation
site.](https://mlstacks.zenml.io/getting-started/quickstart))

<div style="position: relative; padding-bottom: 65.0994575045208%; height: 0;"><iframe src="https://www.loom.com/embed/1a37379a5e1c463d914041b9124afa78?sid=feaf1422-708a-442c-9cd6-a6814858d4d9" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div>

Using `mlstacks` with ZenML is easier as you aren't required to define your
stacks and components in .yaml files; ZenML handles all of that for you. As a
quick example, you can run:

```bash
zenml stack deploy -p gcp -a -n my_mlstacks_stack -r us-east1 -t env=dev -x bucket_name=my-new-bucket -x project_id=zenml
```

This would deploy a stack to GCP that has an artifact store created for you in
the `us-east1` region. It will also import that stack (with the name
`my_mlstacks_stack`) into ZenML ready for you to use.

<div style="position: relative; padding-bottom: 65.0994575045208%; height: 0;"><iframe src="https://www.loom.com/embed/cf73550229ce488eba6c071b7c61b1f4?sid=2d428b25-8e8d-4711-8c24-a6c6c1292b54" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div>

Most of the examples shown here are fairly simple as they allow you to try
things out without needing to wait for too long or to incur significant cloud
costs, but you're encouraged to try it out for stacks that suit your needs!

## How it works

<div style="position: relative; padding-bottom: 89.99999999999999%; height: 0;"><iframe src="https://www.loom.com/embed/4fd5c428728b4f729234cb4c96f8d5a5?sid=cf73a6c1-b099-4723-8e19-31ff3f09625f" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div>

MLStacks works by taking stack and component specification files and parsing
them into Terraform files which are in turn deployed to your cloud (or local, in
the case of `k3d`) infrastructure. Our Python package will validate your
specification files to ensure that you're not using invalid or unsupported
combinations of components.

![](/assets/posts/mlstacks/mlstacks.jpg)

If you find something that we don't yet support but that you need for your work,
we encourage you to contribute to the project!

When using `mlstacks` through ZenML, you don't have to do the work of writing
the stack specification .yaml files. You simply need to compose the CLI command
that specifies which components you need in your stack.

![](/assets/posts/mlstacks/zenml-with-mlstacks.jpg)

We're working to provide other (easier) ways to deploy your infrastructure using
ZenML but for now CLI deployments offer all the flexibility of the `mlstacks`
package without the need to write your own stack and component specifications!

## Try it out!

We encourage you to try out `mlstacks` and to deploy MLOps stacks, either
through ZenML or by writing your own stack specifications. Full guides for both
options are available in our documentation:

- To spin up infrastructure using ZenML, [start with our
introduction](https://docs.zenml.io/stacks-and-components/stack-deployment/deploy-a-stack-component)
to deploying individual stack components via the CLI
- To try out `mlstacks` directly and see how easy it is to specify your stacks
using the .yaml specification files, [check out one of our QuickStart
guides](https://mlstacks.zenml.io/getting-started/quickstart) appropriate to
your favorite cloud platform (or use the `k3d` guide to test deployment
locally)

We'd love to hear your feedback, good and bad! Please [let us
know](https://zenml.io/slack-invite) how you got on with `mlstacks` [in
Slack](https://zenml.io/slack-invite). Happy deploying!
Binary file modified assets/android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/email/signup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/01_detection.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/01_performance.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/01_predictive.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/01_riskfactor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/01_rootcause.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/ab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/og-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/raw_ai.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/raw_data-warehouse-four.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/illustrations/raw_predictions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/clients/adac.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/golden_ticket_render.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/impressions/02_sailing.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/impressions/03_sailing.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/impressions/04_sailing_group.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/impressions/05_digitalgipfel.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/impressions/06_tabletennis.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/impressions/08_menage.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/team/adam_latest.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/team/baris-web.jpg
Binary file modified assets/images/team/ben_latest.jpg
Binary file modified assets/images/team/hamza_latest.jpg
Binary file modified assets/logo_sq.png
Binary file modified assets/logo_sq_maiot.png
Binary file modified assets/logo_transparent.png
Binary file modified assets/posts/aggregating-kpis/kpi.jpg
Binary file modified assets/posts/ben-wilson/Wilson_Ben_S20NA.jpg
Binary file modified assets/posts/customer-churn/poster.jpg
Binary file modified assets/posts/dl_is_broken_02.jpg
Binary file modified assets/posts/emeli-dral/1583238086348.jpeg
Binary file modified assets/posts/emmanuel-ameisen/portrait.jpg
Binary file modified assets/posts/github_todos/post_its.jpg
Binary file modified assets/posts/iva-gumnishka/1623738321208-2.jpeg
Binary file modified assets/posts/karthik-kannan/1561516119854.jpeg
Binary file modified assets/posts/labeling/cover.jpg
Binary file modified assets/posts/labeling/os-cover.jpg
Binary file modified assets/posts/lazy-loading-integrations/sam_frustrated.jpg
Binary file modified assets/posts/lazy-loading-integrations/sam_zen_mode.jpg
Binary file modified assets/posts/matt-squire/matt-squire-profile.jpeg
Binary file modified assets/posts/ml-pipelines/pipes.jpg
Binary file modified assets/posts/ml-pipelines/zenml-is-the-glue.jpeg
Binary file modified assets/posts/mlflow-tracking/mlflow-logo.jpeg
Binary file added assets/posts/mlstacks/mlstacks.jpg
Binary file added assets/posts/mlstacks/mlstacks_breakdown.png
Binary file added assets/posts/mlstacks/mlstacks_logo.png
Binary file added assets/posts/mlstacks/zenml-with-mlstacks.jpg
Binary file modified assets/posts/pipelines-from-start/pipeline-unsplash.jpeg
Binary file modified assets/posts/predicting_winner_dota/dota_scene.jpeg
Binary file modified assets/posts/pytorch_wandb/meme.jpg
Binary file modified assets/posts/release_0_10_0/release-zero-ten-balloon.jpg
Binary file modified assets/posts/release_0_5_4/luca-upper-Z-4kOr93RCI-unsplash.jpg
Binary file modified assets/posts/release_0_5_5/balloons-pixabay_0_5_5.jpg
Binary file modified assets/posts/release_0_5_6/balloons-unsplash-0-5-6.jpeg
Binary file modified assets/posts/release_0_5_7/yoksel-zok-H9Un6az4rno-unsplash.jpg
Binary file modified assets/posts/release_0_5_x/balloons.jpg
Binary file modified assets/posts/release_0_6_2/hybrid-uGP_6CAD-14-unsplash.jpg
Binary file modified assets/posts/release_0_6_2/rich-tables.jpeg
Binary file modified assets/posts/release_0_7_0/balloons.jpg
Binary file modified assets/posts/release_0_7_1/ian-dooley-DuBNA1QMpPA-unsplash.jpg
Binary file modified assets/posts/release_0_7_2_and_3/balloons.jpg
Binary file modified assets/posts/richify-your-cli/rich-tables.jpg
Binary file modified assets/posts/sandbox/blupus_waiting.jpg
Binary file modified assets/posts/step-operators-training/clouds.jpg
Binary file modified assets/posts/technical_debt.jpg
Binary file modified assets/posts/testing-glasses.jpg
Binary file modified assets/posts/three-pointer-prediction/hoop.jpg
Binary file modified assets/posts/tristan-zajonc/tristan.jpeg
Binary file modified assets/posts/vertex/lockin.jpg
Binary file modified assets/test.png
Loading