{"id":13639578,"url":"https://github.com/bodywork-ml/bodywork-core","last_synced_at":"2025-04-19T22:33:06.993Z","repository":{"id":37738935,"uuid":"313600420","full_name":"bodywork-ml/bodywork-core","owner":"bodywork-ml","description":"ML pipeline orchestration and model deployments on Kubernetes.","archived":true,"fork":false,"pushed_at":"2023-08-18T06:42:48.000Z","size":3698,"stargazers_count":433,"open_issues_count":21,"forks_count":22,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-04-29T04:21:27.551Z","etag":null,"topics":["batch","cicd","continuous-deployment","data-science","devops","framework","kubernetes","machine-learning","mlops","orchestration","pipeline","python","serving"],"latest_commit_sha":null,"homepage":"https://bodywork.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bodywork-ml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-11-17T11:38:17.000Z","updated_at":"2024-04-04T13:03:17.000Z","dependencies_parsed_at":"2024-01-14T11:06:52.145Z","dependency_job_id":"0c3428b8-c5d0-410a-bba8-a6a1cf63683b","html_url":"https://github.com/bodywork-ml/bodywork-core","commit_stats":{"total_commits":796,"total_committers":5,"mean_commits":159.2,"dds":0.4396984924623115,"last_synced_commit":"8b9227796f7c1ac3fdf894fab94155f5a6bef7c7"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodywork-ml%2Fbodywork-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodywork-ml%2Fbodywork-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodywork-ml%2Fbodywork-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodywork-ml%2Fbodywork-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bodywork-ml","download_url":"https://codeload.github.com/bodywork-ml/bodywork-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223430340,"owners_count":17143624,"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","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":["batch","cicd","continuous-deployment","data-science","devops","framework","kubernetes","machine-learning","mlops","orchestration","pipeline","python","serving"],"created_at":"2024-08-02T01:01:02.265Z","updated_at":"2024-11-09T09:31:13.258Z","avatar_url":"https://github.com/bodywork-ml.png","language":"Python","funding_links":[],"categories":["Github","数据管道和流处理"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://bodywork-media.s3.eu-west-2.amazonaws.com/website_logo_transparent_background_full.png\"/\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://pepy.tech/badge/bodywork\"/\u003e\n\u003cimg src=\"https://img.shields.io/pypi/pyversions/bodywork\"/\u003e\n\u003cimg src=\"https://img.shields.io/github/license/bodywork-ml/bodywork-core?color=success\"/\u003e\n\u003cimg src=\"https://circleci.com/gh/bodywork-ml/bodywork-core.svg?style=shield\"/\u003e\n\u003cimg src=\"https://codecov.io/gh/bodywork-ml/bodywork-core/branch/master/graph/badge.svg?token=QGPGZHVH9H\"/\u003e\n\u003cimg src=\"https://img.shields.io/pypi/v/bodywork.svg?label=PyPI\u0026logo=PyPI\u0026logoColor=white\u0026color=success\"/\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://bodywork-media.s3.eu-west-2.amazonaws.com/bw-v3-terminal-demo-readme.png\"/\u003e\n\u003c/div\u003e\n\nBodywork is a command line tool that deploys machine learning pipelines to [Kubernetes](https://en.wikipedia.org/wiki/Kubernetes). It takes care of everything to do with containers and orchestration, so that you don't have to.\n\n## Who is this for?\n\nBodywork is aimed at teams who want a solution for running ML pipelines and deploying models to Kubernetes. It is a lightweight and simpler alternative to [Kubeflow](https://www.kubeflow.org), or to building your own platform based around a workflow orchestration tool like [Apache Airflow](https://airflow.apache.org), [Argo Workflows](https://argoproj.github.io/workflows/) or [Dagster](https://www.dagster.io).\n\n## Pipeline = Jobs + Services\n\nAny stage in a Bodywork pipeline can do one of two things:\n\n- [x] **run a batch job**, to prepare features, train models, compute batch predictions, etc.\n- [x] **start a long-running process**, like a Flask app that serves model predictions via HTTP.\n\nYou can use these to compose pipelines for many common ML use-cases, from serving pre-trained models to running continuous training on a schedule.\n\n## No Boilerplate Code Required\n\nDefining a stage is as simple as developing an executable Python module or Jupyter notebook that performs the required tasks, and then committing it to your project's Git repository. You are free to structure your codebase as you wish and there are no new APIs to learn.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://bodywork-media.s3.eu-west-2.amazonaws.com/project_structure_map.png\"/ alt=\"Git project structure\"\u003e\n\u003c/div\u003e\n\n## Easy to Configure\n\nStages are assembled into [DAGs](https://en.wikipedia.org/wiki/Directed_acyclic_graph) that define your pipeline's workflow. This and other key [configuration](user_guide.md#configuring-a-project-for-deployment-with-bodywork) is contained within a single [bodywork.yaml file](https://github.com/bodywork-ml/bodywork-ml-pipeline-project/blob/master/bodywork.yaml).\n\n## Simplified DevOps for ML\n\nBodywork removes the need for you to build and manage container images for any stage of your pipeline. It works by running all stages using Bodywork's [custom container image](https://hub.docker.com/repository/docker/bodyworkml/bodywork-core). Each stage starts by pulling all the required files directly from your project's Git repository (e.g., from GitHub), pip-installing any required dependencies, and then running the stage's designated Python module (or Jupyter notebook).\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://bodywork-media.s3.eu-west-2.amazonaws.com/ml_pipeline.png\"/\u003e\n\u003c/div\u003e\n\n## Get Started\n\nBodywork is distributed as a Python package - install it from [PyPI](https://pypi.org/project/bodywork/#description):\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://bodywork-media.s3.eu-west-2.amazonaws.com/get_started_1_v2.png\"/\u003e\n\u003c/div\u003e\n\nAdd a [bodywork.yaml](https://bodywork.readthedocs.io/en/latest/user_guide/#configuring-a-project-for-deployment-with-bodywork) file to your Python project’s Git repo. The contents of this file describe how your project will be deployed:\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://bodywork-media.s3.eu-west-2.amazonaws.com/get_started_2_v2.png\"/\u003e\n\u003c/div\u003e\n\nBodywork is used from the command-line to deploy projects to Kubernetes clusters. With a single command, you can start Bodywork containers (hosted by us on Docker Hub), that pull Python modules directly from your project’s Git repo, and run them:\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://bodywork-media.s3.eu-west-2.amazonaws.com/get_started_3_v2.png\"/\u003e\n\u003c/div\u003e\n\nYou don’t need to build Docker images or understand how to configure Kuberentes resources. Bodywork will fill the gap between executable Python modules and operational jobs and services on Kubernetes.\n\nIf you’re new to Kubernetes then check out our guide to [Kubernetes for ML](https://bodywork.readthedocs.io/en/latest/kubernetes/#getting-started-with-kubernetes) - we’ll have you up-and-running with a test cluster on your laptop, in under 10 minutes.\n\n## Documentation\n\nThe documentation for bodywork-core can be found [here](https://bodywork.readthedocs.io/en/latest/). This is the best place to start.\n\n## Deployment Templates\n\nTo accelerate your project's journey to production, we provide [deployment templates](https://bodywork.readthedocs.io/en/latest/template_projects/) for common use-cases:\n\n- [batch scoring data](https://github.com/bodywork-ml/bodywork-batch-job-project)\n- [deploying a prediction service with a REST API](https://github.com/bodywork-ml/bodywork-serve-model-project)\n- [scheduling a continuous-training pipeline](https://github.com/bodywork-ml/bodywork-ml-pipeline-project)\n\n## We want your Feedback\n\nIf Bodywork sounds like a useful tool, then please send us a signal with a GitHub ★\n\n## Contacting Us\n\nIf you:\n\n- Have a question that these pages haven't answered, or need help getting started with Kubernetes, then please use our [discussion board](https://github.com/bodywork-ml/bodywork-core/discussions).\n- Have found a bug, then please [open an issue](https://github.com/bodywork-ml/bodywork-core/issues).\n- Would like to contribute, then please talk to us **first** at [info@bodyworkml.com](mailto:info@bodyworkml.com).\n- Would like to commission new functionality, then please contact us at [info@bodyworkml.com](mailto:info@bodyworkml.com).\n\nBodywork is brought to you by [Bodywork Machine Learning](https://www.bodyworkml.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodywork-ml%2Fbodywork-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbodywork-ml%2Fbodywork-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodywork-ml%2Fbodywork-core/lists"}