-
Notifications
You must be signed in to change notification settings - Fork 792
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
Add Kubeflow Components Overview Diagram #3650
Add Kubeflow Components Overview Diagram #3650
Conversation
cc for the review on the Kubeflow high-level architecture. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we store the drawio source file as well so it's easier to modify later
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andreyvelich Also, I dont know why/how but this image is somehow interactively linked to draw.io: https://deploy-preview-3650--competent-brattain-de2d6d.netlify.app/docs/started/architecture/
I recommend we raster it down to an SVG to ensure compatibility.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, your diagram should make it clear that any Kubernetes cluster will work, so perhaps we should replace the minikube logo with the Kubernetes one?
Or, perhaps the Kubernetes logo should replace the "SDKs", "Web UI", and "Kubectl" layer, to indicate that Kubeflow runs on Kubernetes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I think the components should be ordered by popularity, or possibly the order in which you use them.
For example:
- Top-Left: Kubeflow Pipelines
- Top-Right: Kubeflow Notebooks
- Mid-Left: Central Dashboard
- Mid-Right: Katib (AutoML)
- Bottom-Left: Training Operator
- Bottom-Right: KServe (Serving)
(You also missed central dashboard, which is a pretty important component).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we store the drawio source file as well so it's easier to modify later
@terrytangyuan If you upload this image to drawio, you can modify it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
isn't the Web UI the Central Dashboard ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jbottum @andreyvelich perhaps we should re-word the "Web UI" to "Web Dashboard"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andreyvelich I think we can swap the "layers" to more logically represent what runs "on top" of what.
My idea for ordering (from top to bottom):
- Libraries (Jupyter / Tensorflow / Torch / ...)
- Yellow Horizontal Bar
- Interfaces (SDKs / Web Dashboard / Kubectl)
- Blue Arrow
- Kubeflow
- Blue Arrow
- Kubernetes
- Yellow Horizontal Bar
- Platforms (AWS / GCP / On-Prem / ...)
Some other notes:
- Minikube is not really a platform, so we can remove it (or possibly replace it with "Local Deployment", with a picture of a laptop).
- We should put a dotted line around the "Platforms" group, like the "Libraries" one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Web UI is the combination of all UI that Kubeflow offers today (e.g. Central Dashboard, Katib, Pipelines, Volumes, Tensorboards, etc.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@thesuperzapper I agree that Kubernetes should go above the platforms and I can change minikube to local deployment, but I am not sure if SDK/Web UI/kubectl should be between Kubeflow and libraries.
My thoughts are that interfaces (SDK, Web UI, and kubectl) is a layer between Kubeflow components and Kubernetes. For example, when user run create_job
Training Operator SDK API, it creates resources in Kubernetes clusters.
Or when user clicks create Experiment button on the Katib UI it creates custom resources in Kubernetes.
Any thoughts @thesuperzapper @jbottum @johnugeorge @vikas-saxena02 ?
@andreyvelich I thought your diagram going to be used on the "introduction" page rather than the "architecture"? And that we would use a diagram like this one on the "architecture" page: |
Yes, let me move it to introduction for now. I hope, we have time to discuss it during tomorrow's community call to hear the feedback from others. |
@@ -10,6 +10,13 @@ recreate other services, but to provide a straightforward way to deploy | |||
best-of-breed open-source systems for ML to diverse infrastructures. Anywhere | |||
you are running Kubernetes, you should be able to run Kubeflow. | |||
|
|||
The following diagrams shows the main Kubeflow components to cover each step of ML lifecycle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small typo.
The following diagrams shows the main Kubeflow components to cover each step of ML lifecycle | |
The following diagram shows the main Kubeflow components to cover each step of ML lifecycle |
@andreyvelich , the diagram looks great to me!! |
That's good point @vikas-saxena02. I will make this change to the diagram. |
6d83f94
to
b042ea0
Compare
@thesuperzapper @terrytangyuan @johnugeorge @tenzen-y @hbelmiro @vikas-saxena02 @jbottum Any other suggestions before we can merge this initial diagram ? |
/lgtm |
@hbelmiro: changing LGTM is restricted to collaborators In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/lgtm |
@andreyvelich I like where you are going but I think it can still be made more clear. I have taken a stab at it based on your design, I went back and forward on keeping the "Web UI" box, but settled on replacing "ML Metadata" with "Central Dashboard" because that's similar to what we do on the kubeflow.org homepage. The following file is in SVG draw.io format if you want to modify it further: PS: we should use SVG rather than PNG for the website (don't forget to click "embed images" when exporting from draw.io) Here is a compressed version of the PNG format, incase GitHub comments break the image draw.io compatibility: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work! We can always improve/iterate later.
/lgtm
Sure @thesuperzapper, that sound good, I made the appropriate changes. |
@andreyvelich based on your comment I think we can add the "Model Training" / etc labels underneath each component to help new users understand what each box means. I also think that it makes sense to put the development tools on the left side (the same order we use on the homepage). And the compressed file version: |
@andreyvelich Based on a few comments I have made the labels a lot less prominent |
I made the final changes based on the discussion. |
/lgtm Thank you @andreyvelich and everyone for your help on this PR! |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: andreyvelich, hbelmiro, terrytangyuan, zijianjoy The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@andreyvelich Thank you for this improvement! This looks great :) |
This diagram shows high-level diagram for Kubeflow components, so users can see which part of MLOps lifecycle Kubeflow covers today.
We can edit this diagram in the future by simply import it to: https://www.drawio.com/
We showed this diagram in the latest Kubeflow Summit: https://youtu.be/HBBJYa4JTNY?list=PL2gwy7BdKoGdrkYIWGeAdKi9ntfxq8FYt
Related: #3536
/hold for review