Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve and restructure deployment docs #3021

Closed
wants to merge 30 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
762e2ab
move secrets down into how-to
strickvl Sep 17, 2024
64e2a97
Make secrets flow better
strickvl Sep 17, 2024
7e5c1ac
remove secrets from the TOC
strickvl Sep 17, 2024
2a0c93d
how goes below
strickvl Sep 17, 2024
599c605
further restructuring
strickvl Sep 17, 2024
dc98c13
fix links (maybe?)
strickvl Sep 17, 2024
13fc6e7
more basic fix
strickvl Sep 17, 2024
969a975
delete unused duplicate files
strickvl Sep 17, 2024
0ff257e
fix broken links
strickvl Sep 17, 2024
05eada4
docs: update image paths in deploying-zenml.md
strickvl Sep 17, 2024
b7bb8c0
fix image url
strickvl Sep 17, 2024
04fbb56
add intro page for deployment section
strickvl Sep 17, 2024
c744375
remove references to scenarios
strickvl Sep 17, 2024
0be842d
Merge branch 'develop' into doc/improve-deployment-docs
strickvl Sep 17, 2024
aff6ec8
Merge remote-tracking branch 'origin/develop' into doc/improve-deploy…
strickvl Oct 14, 2024
96ae599
fix image links
strickvl Oct 14, 2024
a72c0c8
test link checker
strickvl Oct 14, 2024
12e1350
remove broken link
strickvl Oct 14, 2024
d435e09
restructure
strickvl Oct 14, 2024
d68258d
fix broken links
strickvl Oct 14, 2024
cb85f3d
update TOC emoji
strickvl Oct 14, 2024
447a1e7
fix broken links
strickvl Oct 14, 2024
6740d4b
move user-management
strickvl Oct 14, 2024
e0bae4e
updates
strickvl Oct 14, 2024
18af594
docs updates
strickvl Oct 14, 2024
21f4829
fix broken image links
strickvl Oct 14, 2024
c83e898
Fix broken image link in system-architectures.md
strickvl Oct 14, 2024
1bb7a81
remove hybrid scenario
strickvl Oct 14, 2024
4278961
update images with draft versions
strickvl Oct 14, 2024
cb534e2
fix broken link
strickvl Oct 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/book/.gitbook/assets/cloud_architecture_scenario_1.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 docs/book/.gitbook/assets/cloud_architecture_scenario_2.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 not shown.
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/book/getting-started/core-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ To use _stack components_ that are running remotely on a cloud infrastructure, y

#### Server Deployment

In order to benefit from the advantages of using a deployed ZenML server, you can either choose to use the [**ZenML Pro SaaS offering**](zenml-pro/zenml-pro.md) which provides a control plane for you to create managed instances of ZenML servers, or [deploy it in your self-hosted environment](deploying-zenml/README.md).
In order to benefit from the advantages of using a deployed ZenML server, you can either choose to use the [**ZenML Pro SaaS offering**](zenml-pro.md) which provides a control plane for you to create managed instances of ZenML servers, or [deploy it in your self-hosted environment](deploying-zenml/README.md).

#### Metadata Tracking

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,61 @@ Moving your ZenML Server to a production environment offers several benefits ove
2. **Reliability**: Production-grade infrastructure ensures high availability and fault tolerance, minimizing downtime and ensuring consistent performance.
3. **Collaboration**: A shared production environment enables seamless collaboration between team members, making it easier to iterate on models and share insights.

Despite these advantages, transitioning to production can be challenging due to the complexities involved in setting up the needed infrastructure.
Despite these advantages, transitioning to production can be challenging due to
the complexities involved in setting up the needed infrastructure.

## Components

### ZenML Server

When you first get started with ZenML, it relies with the following architecture on your machine.
When you first get started with ZenML, you have the following architecture on your machine.

![ZenML default local configuration](../../.gitbook/assets/Scenario1.png)
![ZenML default local configuration](../.gitbook/assets/Scenario1.png)

The SQLite database that you can see in this diagram is used to store information about pipelines, pipeline runs, stacks, and other configurations. Users can run the `zenml up` command to spin up a local REST server to serve the dashboard. The diagram for this looks as follows:
The SQLite database that you can see in this diagram is used to store
information about pipelines, pipeline runs, stacks, and other configurations.
This default setup allows you to get started and try out the core features but
you won't be able to use cloud-based components like serverless orchestrators
and so on.

![ZenML with a local REST Server](../../.gitbook/assets/Scenario2.png)
Users can run the `zenml up` command to spin up a local REST server to serve the
dashboard. For the local REST server option, the `zenml up` command implicitly connects the client to the server. The diagram for this looks as follows:

{% hint style="info" %}
For the local REST server option, the `zenml up` command implicitly connects the client to the server.
{% endhint %}
![ZenML with a local REST Server](../.gitbook/assets/Scenario2.png)

{% hint style="warning" %}
Currently the ZenML server supports a legacy and a brand-new version of the dashboard. To use the legacy version simply use the
following command `zenml up --legacy`
Currently the ZenML server supports two versions of the dashboard: a legacy view
and a brand-new view. To use the legacy version simply use the following
command: `zenml up --legacy`.
{% endhint %}

In order to move into production, the ZenML server needs to be deployed somewhere centrally so that the different cloud stack components can read from and write to the server. Additionally, this also allows all your team members to connect to it and share stacks and pipelines.

![Deployed ZenML Server](../../.gitbook/assets/Scenario3.2.png)
![Deployed ZenML Server](../.gitbook/assets/Scenario3.2.png)

You connect to your deployed ZenML server using the `zenml connect` command and
then you have the full benefits and power of ZenML. You can use all the
cloud-based components, your metadata will be stored and synchronized across all
the users of the server and you can leverage features like centralized logs
storage and pipeline artifact visualization.

### ZenML Client

The ZenML client is a Python package that you can install on your machine. It
is used to interact with the ZenML server. You can install it using the `pip`
command. This Python package gives you [the `zenml` command-line interface](https://sdkdocs.zenml.io/latest/cli/) which
you can use to interact with the ZenML server for common tasks like managing
stacks, setting up secrets, and so on.

If you want to have more fine-grained control and access to the metadata that
ZenML manages, you can use the Python SDK to access the API. This allows you to
create your own custom automations and scripts and is the most common way teams
access the metadata stored in the ZenML server. Our full documentation for the
Python SDK can be found [here](https://sdkdocs.zenml.io/latest/). Our full HTTP
API documentation can also be found by adding the `/doc` suffix to the URL when
accessing your deployed ZenML server.

### Deploying a ZenML Server
## Deploying a ZenML Server

Deploying the ZenML Server is a crucial step towards transitioning to a production-grade environment for your machine learning projects. By setting up a deployed ZenML Server instance, you gain access to powerful features, allowing you to use stacks with remote components, centrally track progress, collaborate effectively, and achieve reproducible results.

Expand All @@ -50,7 +79,7 @@ Currently the ZenML server supports a legacy and a brand-new version of the dash

Both options offer distinct advantages, allowing you to choose the deployment approach that best aligns with your organization's needs and infrastructure preferences. Whichever path you select, ZenML facilitates a seamless and efficient way to take advantage of the ZenML Server and enhance your machine learning workflows for production-level success.

## How to deploy ZenML
### How to deploy ZenML

Documentation for the various deployment strategies can be found in the following pages below (in our 'how-to' guides):

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ productivity. No matter your specific needs, the hosting options for ZenML Pro
range from easy SaaS integration to completely airgapped deployments on your own
infrastructure.

A ZenML Pro deployment consists of the following moving pieces for both the SaaS
A [ZenML Pro deployment](./zenml-pro.md) consists of the following moving pieces for both the SaaS
product as well as the self-hosted version.:

* **ZenML Pro Control Plane**: This is a centralized MLOps control plane that includes a
Expand All @@ -35,12 +35,14 @@ product as well as the self-hosted version.:
ML metadata such as tracking and versioning information about pipelines and
models.

## Deployment Scenarios

The above four interact with other MLOps stack components, secrets, and data in
varying scenarios described below.
the two scenarios described below.

## Scenario 1: Full SaaS
### Scenario 1: Full SaaS

![Scenario 1: Full SaaS deployment](../../.gitbook/assets/cloud_architecture_scenario_1.png)
![Scenario 1: Full SaaS deployment](../.gitbook/assets/cloud_architecture_scenario_1.png)


In this scenario, all services are hosted on infrastructure hosted by the ZenML Team,
Expand All @@ -53,7 +55,7 @@ model tracking and versioning information) is stored. All the actual ML data
artifacts (e.g. data produced or consumed by pipeline steps, logs and
visualizations, models) are stored on the customer cloud. This can be set up
quite easily by configuring
an [artifact store](../../component-guide/artifact-stores/artifact-stores.md)
an [artifact store](../component-guide/artifact-stores/artifact-stores.md)
with your MLOps stack.

Your tenant only needs permissions to read from this data to display artifacts
Expand All @@ -66,12 +68,9 @@ This scenario is meant for customers who want to quickly get started with ZenML
and can to a certain extent allow ingress connections into their infrastructure
from an external SaaS provider.

## Scenario 2: Hybrid SaaS with Customer Secret Store managed by ZenML

![Scenario 2: Hybrid SaaS with Customer Secret Store managed by ZenML](../../.gitbook/assets/cloud_architecture_scenario_2.png)

This scenario is a version of Scenario 1. modified to store all sensitive
information on the customer side. In this case, the customer connects their own
{% hint style="info" %}
We also offer a hybrid SaaS option where customer secrets are stored on the
customer side. In this case, the customer connects their own
secret store directly to the ZenML server that is managed by us. All ZenML
secrets used by running pipelines to access infrastructure services and
resources are stored in the customer secret store. This allows users to
Expand All @@ -80,23 +79,11 @@ and the [secrets API](../../how-to/interact-with-secrets.md) to authenticate
ZenML pipelines and the ZenML Pro to 3rd party services and infrastructure
while ensuring that credentials are always stored on the customer side.

Even though they are stored customer side, access to ZenML secrets is fully
managed by ZenML Pro. The individually deployed ZenML Servers can also allowed to use some of those
credentials to connect directly to customer infrastructure services to implement
control plane features such as artifact visualization or triggering pipelines.
This implies that the secret values are allowed to leave the customer
environment to allow their access to be managed centrally by the ZenML Pro and
to enforce access control policies, but the ZenML users and pipelines never have
direct access to the secret store.

All access to customer secrets is, of course, regulated through authentication
and RBAC, so that only authorized users can access the secrets. This deployment
scenario is meant for customers who want to use the ZenML Pro but want to keep
their secrets on their own infrastructure.
{% endhint %}

## Scenario 3: Fully On-prem
### Scenario 2: Fully On-prem

![Scenario 3: Fully on-premises deployment](../../.gitbook/assets/cloud_architecture_scenario_5.png)
![Scenario 2: Fully on-premises deployment](../.gitbook/assets/cloud_architecture_scenario_2.png)

In this scenario, all services, data, and secrets are deployed on the customer
cloud. This is the opposite of Scenario 1, and is meant for customers who
Expand All @@ -106,4 +93,10 @@ require completely airgapped deployments, for the tightest security standards.
Are you interested in ZenML Pro? [Sign up](https://cloud.zenml.io/?utm\_source=docs\&utm\_medium=referral\_link\&utm\_campaign=cloud\_promotion\&utm\_content=signup\_link)
and get access to Scenario 1. with a free 14 day trial now!

## ZenML Pro vs ZenML Open Source

TODO: add diagram + feature differences
also more on architectural distinctions


<figure><img src="https://static.scarf.sh/a.png?x-pxid=f0b4f458-0a54-4fcd-aa95-d5ee424815bc" alt="ZenML Scarf"><figcaption></figcaption></figure>
84 changes: 84 additions & 0 deletions docs/book/getting-started/zenml-pro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# ☁️ ZenML Pro

The Pro version of ZenML comes with a number of features that expand the
functionality of the Open Source product

### Role-based access control and permissions

Utilizing ZenML Pro provides you with access to a robust control plane that
unifies user management and optimizes your workflows. Efficiently manage access
and permissions through centralized user administration. Create fine-grained
permissions for resources such as stacks, pipelines, models, etc.

See the section on [user management](../how-to/use-zenml-pro/user-management.md) to learn more.

### A brand-new, modern MLOps experience

![Walkthrough of ZenML Model Control Plane](../.gitbook/assets/mcp_walkthrough.gif)

We have built the ZenML Pro experience from the ground-up. With ZenML Pro, you get
access to a new dashboard, with a better experience. The new dashboard features
more functionality such as
the [Model Control Plane](../user-guide/starter-guide/track-ml-models.md)
and [Artifact Control Plane](../user-guide/starter-guide/manage-artifacts.md).

### Run templates for running your pipelines from the dashboard or the API

ZenML Pro enables you to [create and run templates](../how-to/trigger-pipelines/README.md#run-templates).
This way, you can use the dashboard or our Client/REST API to run a pipeline with updated configuration
which allows you to iterate quickly with minimal friction.

### Triggers, CI/CD, Reports and more

Additionally, ZenML Pro users get exclusive access to an array of
cloud-specific features, such as triggers, integrating with your code
repository CI/CD system, generating usage reports and more.

### Managed ZenML Server (Multi-tenancy)

ZenML Pro (SaaS solution) simplifies your machine learning workflows, enabling you to deploy a
managed instance of ZenML servers with just one click. This eradicates the need
to handle infrastructure complexities, making the set-up and management of your
machine learning pipelines a breeze. We handle all pertinent system updates and
backups, thus ensuring your system stays current and robust, allowing you to
zero in on your essential MLOps tasks. As a ZenML Pro user, you'll also have
priority support, giving you the necessary aid to fully utilize the platform.

### Maximum data security

At ZenML Pro, your data security and privacy are our top priority. The
platform enables a secure connection to your infrastructure, tracking only
metadata via an encrypted connection to maintain the confidentiality of your
sensitive information. ZenML Pro integrates smoothly with your cloud services
via service connectors, allowing a straightforward connection with various cloud
resources without sacrificing data security. We hold your confidential
information in a secure and isolated environment, offering an extra degree of
protection. If desired, you can
even [supply your own secret store](../how-to/interact-with-secrets/use-a-custom-secret-store.md).

Learn more about ZenML Pro on the [ZenML Website](https://zenml.io/pro).

## Managed ZenML (SaaS)

One of the most straightforward paths to start with a deployed ZenML server is
to use [ZenML Pro](https://zenml.io/pro). The ZenML Pro offering eliminates the need
for you to dedicate time and resources to deploy and manage a ZenML server,
allowing you to focus primarily on your MLOps workflows.

<div data-full-width="false">

<figure>.gitbook/assets/zenml-cloud-tenant-overview.png" alt=""><figcaption><p>ZenML Pro comes equipped with powerful pro-only dashboard features</p></figcaption></figure>

</div>

{% hint style="info" %}
If you're interested in assessing ZenML Pro, you can simply create
a [free account](https://cloud.zenml.io/?utm\_source=docs\&utm\_medium=referral\_link\&utm\_campaign=cloud\_promotion\&utm\_content=signup\_link).
Learn more about ZenML Pro on the [ZenML Website](https://zenml.io/pro).
{% endhint %}

Click [here](./system-architectures.md) to understand about the ZenML Pro system
architecture.

<!-- For scarf -->
<figure><img alt="ZenML Scarf" referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=f0b4f458-0a54-4fcd-aa95-d5ee424815bc" /></figure>
40 changes: 0 additions & 40 deletions docs/book/getting-started/zenml-pro/README.md

This file was deleted.

57 changes: 0 additions & 57 deletions docs/book/getting-started/zenml-pro/zenml-pro.md

This file was deleted.

Loading