{"id":34055410,"url":"https://github.com/mlinfra-io/mlinfra","last_synced_at":"2025-12-14T03:00:05.690Z","repository":{"id":218597023,"uuid":"645407700","full_name":"mlinfra-io/mlinfra","owner":"mlinfra-io","description":"deploy ML Infrastructure and MLOps tooling anywhere quickly and with best practices with a single command","archived":false,"fork":false,"pushed_at":"2025-01-28T21:22:26.000Z","size":17265,"stargazers_count":110,"open_issues_count":13,"forks_count":16,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-16T00:16:45.480Z","etag":null,"topics":["distributed-ml","ml-infrastructure","mlops","platform-engineering","python","software-engineering"],"latest_commit_sha":null,"homepage":"https://mlinfra.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlinfra-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-25T15:24:26.000Z","updated_at":"2025-08-02T02:59:05.000Z","dependencies_parsed_at":"2024-03-16T11:58:29.913Z","dependency_job_id":"356ccfc9-2e1f-4c73-ab53-3f6a2d8cae0e","html_url":"https://github.com/mlinfra-io/mlinfra","commit_stats":null,"previous_names":["platinfra/platinfra","mlinfra-tools/mlinfra","mlinfra-io/mlinfra"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/mlinfra-io/mlinfra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlinfra-io%2Fmlinfra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlinfra-io%2Fmlinfra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlinfra-io%2Fmlinfra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlinfra-io%2Fmlinfra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlinfra-io","download_url":"https://codeload.github.com/mlinfra-io/mlinfra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlinfra-io%2Fmlinfra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27716157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distributed-ml","ml-infrastructure","mlops","platform-engineering","python","software-engineering"],"created_at":"2025-12-14T03:00:01.035Z","updated_at":"2025-12-14T03:00:05.669Z","avatar_url":"https://github.com/mlinfra-io.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![MLInfra Github Banner](https://github.com/mlinfra-io/mlinfra/blob/main/docs/_images/mlinfra-banner-wide.png)\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e\n    Open source MLOps infrastructure deployment on Public Cloud providers\n  \u003c/h3\u003e\n  \u003cdiv\u003e\n    \u003cstrong\u003eOpen source MLOps:\u003c/strong\u003e Open source tools for different stages in an MLOps lifecycle.\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003cstrong\u003ePublic Cloud Providers:\u003c/strong\u003e Supporting all major cloud providers including AWS, GCP, Azure and Oracle Cloud\n  \u003c/div\u003e\n  \u003c/br\u003e\n  \u003cdiv\u003e\n    \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/license/mlinfra-io/mlinfra?color=orange\"\u003e\n    \u003ca href=\"https://github.com/mlinfra-io/mlinfra/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/mlinfra-io/mlinfra?include_prereleases\u0026color=orange\" alt=\"mlinfra releases\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://mlinfra.io/development/\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-latest-orange\" alt=\"Documentation\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/mlinfra-io/mlinfra/actions/workflows/on_pr.yml?query=branch:main\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/mlinfra-io/mlinfra/on_pr.yml?\u0026label=All%20tests\u0026color=orange\" alt=\"CI test status\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/mlinfra/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/mlinfra.svg?label=pypi+mlinfra\u0026color=orange\" alt=\"mlinfra Python package on PyPi\"\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/dm/mlinfra?color=orange\" alt=\"mlinfra Python package downloads on PyPi\"\u003e\n    \u003ca href=\"https://discord.gg/8eYWVvEYmR\"\u003e\u003cimg src=\"https://img.shields.io/discord/1199078513463009321?logo=Discord\u0026logoColor=white\u0026label=Discord\u0026color=%23434EE4\" alt=\"Discord\"\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Cloud%20Providers-orange\" alt=\"cloud providers\"/\u003e\n    \u003ca href=\"https://mlinfra.io/latest/code/aws/cloud_vm/\"\u003e\u003cimg src=\"https://github.com/mlinfra-io/mlinfra/blob/main/docs/_images/aws_icon.svg\" height=\"20\" alt=\"AWS Examples\"/\u003e\u003c/a\u003e\n    \u003cimg src=\"https://github.com/mlinfra-io/mlinfra/blob/main/docs/_images/gcp_icon.svg\" height=\"20\" alt=\"GCP Examples\"/\u003e\n    \u003cimg src=\"https://github.com/mlinfra-io/mlinfra/blob/main/docs/_images/azure_icon.svg\" height=\"20\" alt=\"Azure Examples\"/\u003e\n    \u003cimg src=\"https://github.com/mlinfra-io/mlinfra/blob/main/docs/_images/alibaba_icon.svg\" height=\"20\" alt=\"Alibaba Examples\"/\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/br\u003e\n\n`mlinfra` is the swiss army knife for deploying MLOps tooling anywhere. It aims to make MLOps infrastructure deployment easy and accessible to all ML teams by liberating IaC logic for creating MLOps stacks which is usually tied to other frameworks.\n\nContribute to the project by opening a issue or joining project roadmap and design related discussion on [discord](https://discord.gg/8eYWVvEYmR). Complete roadmap will be released soon!\n\n## 🚀 Installation\n\n### Requirements\n`mlinfra` requires the following to run perfectly:\n\n- `terraform` \u003e= `1.10.2` should be installed on the system.\n\n`mlinfra` can be installed simply by creating a python virtual environment and installing `mlinfra` pip package\n```bash\npython -m venv .venv\nsource .venv/bin/activate\npip install mlinfra\n```\n\nCopy a deployment config from the [examples](https://github.com/mlinfra-io/mlinfra/tree/4d21aa465fa8d40aabcf9877f3f99c4ede687459/examples) folder, change your AWS account in the config file, configure your AWS credentials and deploy the configuration using\n\n```bash\nmlinfra terraform apply --config-file \u003cpath-to-your-config\u003e\n```\n\nFor more information, read the [mlinfra user guide](https://mlinfra.io/user_guide/)\n\n## Deployment Config\n\n`mlinfra` deploys infrastructure using declarative approach. It requires resources to be defined in a `yaml` file with the following format\n\n```yaml\nname: aws-mlops-stack\nprovider:\n  name: aws\n  account-id: xxxxxxxxx\n  region: eu-central-1\ndeployment:\n  type: cloud_vm # (this would create ec2 instances and then deploy applications on it)\nstack:\n  data_versioning:\n    - lakefs # can also be pachyderm or lakefs or neptune and so on\n  experiment_tracker:\n    - mlflow # can be weights and biases or determined, or neptune or clearml and so on...\n  orchestrator:\n    - zenml # can also be argo, or luigi, or airflow, or dagster, or prefect or flyte or kubeflow or ray and so on...\n  model_inference:\n    - bentoml # can also be ray or KF serving or seldoncore or tf serving\n  monitoring:\n    - nannyML # can be grafana or alibi or evidently or neptune or prometheus or weaveworks and so on...\n  alerting:\n    - mlflow # can be mlflow or neptune or determined or weaveworks or prometheus or grafana and so on...\n```\n\n- For examples, check out the [documentation](https://mlinfra.io/latest/code/local/kind/).\n\n- _*NOTE*_: This was minimal spec for aws cloud as infra with custom applications. Other stacks such as feature_store, event streamers, loggers or [cost dashboards](https://www.kubecost.com/) can be added via community requests. For more information, please [check out the docs](https://mlinfra.io/).\n\n## Supported Providers\n\nThe core purpose is to build for all cloud and deployment platforms out there. Any user should be able to just change the cloud provider or runtime environment (whether it be linux or windows) and have the capability to deploy the same tools.\n\nmlinfra will be supporting the following providers:\n\n#### Local machine (for development)\n  - [x] [kind](https://kind.sigs.k8s.io/)\n  - [x] [minikube](https://minikube.sigs.k8s.io/)\n  - [ ] [k3s](https://k3s.io/)\n  - [ ] [docker compose](https://docs.docker.com/compose/)\n  - [ ] [k0s](https://k0sproject.io/) (for a more hybrid approach)\n\n#### Cloud Providers (for deployment and production ready)\n- [x] [AWS](https://aws.amazon.com/)\n- [ ] [GCP](https://cloud.google.com/)\n- [ ] [Azure](https://azure.microsoft.com/en-us)\n- [ ] [AliBaba](https://www.alibabacloud.com/)\n- [ ] [Openstack](https://www.openstack.org/)\n- [ ] [Oracle Cloud](https://www.oracle.com/cloud/)\n- [ ] Bare metal (such as [Hetzner](https://www.hetzner.com/de) or [DigitalOcean](https://www.digitalocean.com/))\n\n## Supported deployment types\n\nWhen deploying on managed cloud providers, users can deploy their infrastructure on top of either:\n- `Virtual Machines` such as [EC2](https://aws.amazon.com/ec2/) on AWS Cloud, [Google Virtual machine](https://cloud.google.com/compute/docs/instances) instances on GCP Cloud and [Azure Virtual Machine](https://azure.microsoft.com/en-us/products/virtual-machines) on Azure Cloud.\n- or [Kubernetes](https://kubernetes.io/) such as [EKS](https://aws.amazon.com/eks/) on AWS Cloud, [GKE](https://cloud.google.com/kubernetes-engine) on GCP Cloud and [AKS](https://azure.microsoft.com/en-us/products/kubernetes-service) on Azure Cloud.\n\n\n## Supported MLOps Tools\n\n`mlinfra` intends to support as many [MLOps tools](https://github.com/EthicalML/awesome-production-machine-learning/) deployable in a platform in their standalone as well as high availability across different layers of an MLOps stack:\n- `data_ingestion`\n- `data_versioning`\n- `data_processing`\n- `vector_database`\n- `experiment_tracker`\n- `orchestrator`\n- `model_inference`\n- `monitoring`\n- `alerting`\n\n## Development\n\n- This project relies on terraform for IaC code and python to glue it all together.\n- To get started, install terraform and python.\n- You can install the required python packages by running `uv sync`\n- You can run any of the available examples from the `examples/` folder by running the following command in root directory `python src/mlinfra/cli/cli.py terraform \u003caction\u003e --config-file examples/\u003cdeployment-type\u003e/\u003cfile\u003e.yaml` where `\u003caction\u003e` corresponds to terraform actions such as `plan`, `apply` and `destroy`.\n\nFor more information, please refer to the Engineering Wiki of the project (https://mlinfra.io/user_guide/) regarding what are the different components of the project and how they work together.\n\n## Contributions\n\n- Contributions are welcome! Help us onboard all of the available mlops tools on currently available cloud providers.\n- For major changes, please open [an issue](https://github.com/mlinfra-io/mlinfra/issues) first to discuss what you would like to change. A team member will get to you soon.\n- For information on the general development workflow, see the [contribution guide](CONTRIBUTING.md).\n\n\n## License\n\nThe `mlinfra` library is distributed under the [Apache-2 license](https://github.com/mlinfra-io/mlinfra/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlinfra-io%2Fmlinfra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlinfra-io%2Fmlinfra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlinfra-io%2Fmlinfra/lists"}