# 11.1 Visão geral do Kubeflow

O [Kubeflow](https://www.kubeflow.org/) é uma plataforma que suporta, do início ao fim, o ciclo de vida de implementação de Machine Learning. Os componentes principais do Kubeflow são:

* **Central Dashboard**: É a interface web (WebUI) do Kubeflow, onde é possível interagir com todos os outros componentes. Isto é, como todos os componentes do Kubeflow são recursos do Kubernetes, com a WebUI é possível configurar e operar os recursos do Kubernetes do Kubeflow.
* **Kubeflow Notebooks**: Com este componente, é possível criar Notebooks, como Jupyter, para o desenvolvimento iterativo dos modelos de Machine Learning e também usar as DSLs para manipular os outros componentes, como o Kubeflow Pipeline.
* **Kubeflow Pipeline**: É o componente principal (ou *core*) do Kubeflow. Com ele, é possível criar os pipelines para treinar os modelos de Machine Learning e efetuar o deploy.
* **Katib**: Este é o componente de AutoML do Kubeflow.
* **Training Operator**: São recursos do Kubernetes criados para facilitar o treinamento de modelos, podendo ser usados em conjunto com o Kubeflow Pipeline.
* **Multi-Tenancy**: O Kubeflow fornece suporte para isolamento de usuários e gestão de acesso.
* **External Add-Ons**: O Kubeflow se integra com ferramentas externas como KServe, Kale, Feast e outras. Nas próximas seções, vamos falar principalmente do KServe, que é o servidor de inferências do Kubeflow.

![Kubeflow](https://www.kubeflow.org/docs/started/images/kubeflow-intro-diagram.drawio.svg)

Vale destacar que existem algumas formas de se ter suporte ao Kubeflow. Alguns provedores de nuvem (Cloud providers) suportam instalações do Kubeflow, e existe uma versão Enterprise chamada [Arrikto](https://www.arrikto.com/enterprise-kubeflow/).

A arquitetura do Kubeflow é baseada no Kubernetes. Recomenda-se a leitura da [documentação](https://www.kubeflow.org/docs/started/architecture/) para aprofundamento.
