https://dagster.io/ logo
Title
h

Huib

08/16/2021, 2:48 PM
A very similar question here: what’s the go-to deployment model when dealing with multiple teams? Do you centralize the dagit instance and let teams deploy their pipelines against that central unit? Do you let each teach deploy everything for each project? How do you deal with the repositories being managed by another team?
s

sandy

08/16/2021, 8:58 PM
Hey @Huib - the recommended deployment model is a single dagit instance, that each team deploys their own repositories against
h

Huib

08/16/2021, 9:28 PM
Thanks! How does that work in practice? All the examples I’ve seen have the available repositories in the deployment of the dagit instance
Oh, and I’d like to add: great job on the framework design, so much more intuitive and elegant than airflow
❤️ 2
s

sandy

08/16/2021, 10:26 PM
@daniel - is this something you’d be able to answer? The depth of my knowledge is limited here
d

daniel

08/17/2021, 12:47 AM
Hi! we have an example here that demonstrates a separate deployment for pipeline code that could be extended in a striaghtforward way to have multiple deployments for different teams https://docs.dagster.io/deployment/guides/docker#example
h

Huib

08/17/2021, 7:06 AM
@daniel My current understanding is that the deployment flow would look something like this: A central team has a git repo containing the dagit + dagster code, keeping all the pipeline repositories in one file. Each team wanting to schedule something creates their own pipelines, and runs their own grpc server After deploying the grpc server to k8s, the team submits a pull request to the workspace.yaml file on the central git repo, requesting their new pipeline to be included in the central tool. Does this sound roughly correct?
d

daniel

08/17/2021, 1:02 PM
That sounds largely right to me, with the possible exception of each team needing to run its own gRPC server. If you're in k8s you might find this section interesting: https://docs.dagster.io/deployment/guides/kubernetes/customizing-your-deployment#separately-deploying-dagster-infrastructure-and-user-code
With a setup like that, each team would probably periodically push the latest version of their pipeline code to a Docker registry, then update the tag to use in the values.yaml of the dagster-user-deployments chart (which I imagine would be in the central repo). Then the helm chart would need to be re-deployed, and the new user code would be available in dagit
😎 1
s

sandy

08/17/2021, 2:48 PM
After deploying the grpc server to k8s, the team submits a pull request to the workspace.yaml file on the central git repo, requesting their new pipeline to be included in the central tool. Does this sound roughly correct?
Just to be clear, this should only need to happen once per team, when that team onboards, not every time that the team pushes a change or adds a new pipeline, right?
h

Huib

08/17/2021, 2:49 PM
From what I understood, yes, you would deploy the grpc server per team, which can serve multiple projects
So you’d need one redeployment of the central unit per team, not per pipeline per team. Fortunately 🙂
d

daniel

08/17/2021, 2:51 PM
Having each team deploy their own gRPC server is definitely an option. It's not currently the approach we take in our example helm chart, but the system is set up a way that would allow it
h

Huib

08/17/2021, 2:54 PM
oh wait, in your example, would you run the grpc server centralized?
d

daniel

08/17/2021, 2:56 PM
our example helm chart runs all the gRPC servers for you (based on images that could be built and tagged by each team individually using their own build and deployment process)
😛artydagster: 1
so that would typically happen in a centralized cluster for dagster
h

Huib

08/17/2021, 2:57 PM
and just for giggles: I could do something like
image_name:latest
right? and just click the refresh button in the UI whenever I made a small change to the DAG?
d

daniel

08/17/2021, 3:09 PM
you could use latest tags, yeah - we don't necessarily recommend that it might cause older queued runs to launch using the new code, which won't always be compatible
h

Huib

08/17/2021, 3:10 PM
Ah yeah. Have you run dagster in larger corporations in a centralized manner? What were the biggest pain points?
d

daniel

08/17/2021, 3:26 PM
Yeah, we have a few case studies that go into more depth about their deployment setups in production. For example, https://dagster.io/blog/shared-spaces-at-drizly - I'm not sure how deep this goes into the user code deployment side of things specifically though