Skip to content

Commit 8655d27

Browse files
authored
Updated documentation and artifacts, including integration with Open Data Hub. (#46)
* Updated documentation for Open Data Hub integration. * Updated stack diagram. * Resized stack diagram. * Updated README. * Updated README. * Updated links in README. * Updated README. * Added MCAD submodule. * Added CodeFlare CLI submodule. * Added CodeFlare SDK submodule. * Added CodeFlare Operator submodule. * Added Instascale submodule. * Fixed diagram picture.
1 parent cd1ec5a commit 8655d27

File tree

8 files changed

+652
-117
lines changed

8 files changed

+652
-117
lines changed

.gitmodules

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[submodule "mcad"]
2+
path = mcad
3+
url = https://github.com/project-codeflare/multi-cluster-app-dispatcher.git
4+
[submodule "codeflare-cli"]
5+
path = codeflare-cli
6+
url = https://github.com/project-codeflare/codeflare-cli
7+
[submodule "codeflare-sdk"]
8+
path = codeflare-sdk
9+
url = https://github.com/project-codeflare/codeflare-sdk
10+
[submodule "codeflare-operator"]
11+
path = codeflare-operator
12+
url = https://github.com/project-codeflare/codeflare-operator
13+
[submodule "instascale"]
14+
path = instascale
15+
url = https://github.com/project-codeflare/instascale

README.md

+48-117
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!--
22
{% comment %}
3-
Copyright 2021 IBM
3+
Copyright 2021, 2022, 2023 IBM
44
55
Licensed under the Apache License, Version 2.0 (the "License");
66
you may not use this file except in compliance with the License.
@@ -29,158 +29,76 @@ limitations under the License.
2929
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
3030
[![Build
3131
Status](https://travis-ci.com/project-codeflare/codeflare.svg?branch=main)](https://travis-ci.com/project-codeflare/codeflare.svg?branch=main)
32-
[![PyPI](https://badge.fury.io/py/codeflare.svg)](https://badge.fury.io/py/codeflare)
33-
[![Downloads](https://pepy.tech/badge/codeflare)](https://pepy.tech/project/codeflare)
34-
[![Documentation Status](https://readthedocs.org/projects/codeflare/badge/?version=latest)](https://codeflare.readthedocs.io/en/latest/?badge=latest)
3532
[![GitHub](https://img.shields.io/badge/issue_tracking-github-blue.svg)](https://github.com/project-codeflare/codeflare/issues)
33+
[![GitHub](https://img.shields.io/badge/CodeFlare-Join%20Slack-blue)](https://invite.playplay.io/invite?team_id=T04KQQBTDN3)
3634

3735
<!-- >> **⚠ UPDATE**
3836
> CodeFlare is evolving! Check our [updates](https://github.com/project-codeflare/codeflare#pipeline-execution-and-scaling) for CodeFlare Pipelines and related contributions to Ray Workflows under Ray project. -->
3937

40-
# Scale complex AI/ML pipelines anywhere
38+
# Simplified and efficient AI/ML on the hybrid cloud
4139

42-
CodeFlare is a framework to simplify the integration, scaling and acceleration of complex multi-step analytics and machine learning pipelines on the cloud.
43-
44-
Its main features are:
45-
46-
* **Simplified user experience**:
47-
Interactive and rich command line interface and live dashboards enabling automation to deploy, run and monitor end-to-end pipelines, significantly minimizing the effort and skills needed to scale AI and ML workflows.
48-
49-
* **Pipeline execution and scaling**:
50-
Integrated with Ray Workflows, CodeFlare Pipelines faciltates the definition and parallel execution of pipelines. It unifies pipeline workflows across multiple frameworks while providing nearly optimal scale-out parallelism on pipelined computations.
51-
<!--CodeFlare Pipelines facilities the definition and parallel execution of pipelines. It unifies pipeline workflows across multiple platforms such as [scikit-learn](https://scikit-learn.org/) and [Apache Spark](https://spark.apache.org/), while providing nearly optimal scale-out parallelism on pipelined computations.-->
52-
53-
* **Deploy and integrate anywhere**:
54-
CodeFlare simplifies deployment and integration by enabling a serverless user experience with the integration with Red Hat OpenShift and IBM Cloud Code Engine and providing adapters and connectors to make it simple to load data and connect to data services.
55-
56-
<p align="center">
57-
<img src="./images/codeflare_arch_diagram.svg" width="880" height="640">
58-
</p>
59-
60-
<!-- ## Release status
61-
62-
This project is under active development. See the [Documentation](https://codeflare.readthedocs.io/en/latest/index.html) for design descriptions and the latest version of the APIs.
63-
-->
40+
CodeFlare provides a simple, user-friendly abstraction for developing, scaling, and managing resources for distributed AI/ML on the Hybrid Cloud platform with OpenShift Container Platform.
6441

6542
---
66-
## Quick start
67-
68-
### Run on your laptop
69-
70-
### Installing CodeFlare client
71-
72-
See instructions [here](https://github.com/project-codeflare/codeflare-cli) for installing CodeFlare CLI and Dashboard.
73-
74-
<p align="center">
75-
<img src="./images/codeflare_cli.svg" width="150" height="150">
76-
</p>
77-
78-
#### Instaling locally
7943

80-
CodeFlare can be installed from PyPI.
44+
## 📦 Stack Components and Features
8145

82-
Prerequisites:
83-
* [Python 3.7 or 3.8](https://www.python.org/downloads/)
84-
* [JupyterLab](https://jupyter.org) *(to run examples)*
46+
CodeFlare stack consists of the following main components. This project is organized as a metarepo, gathering pointers and artifacts to deploy and use the stack.
8547

86-
We recommend installing Python 3.8.6 using
87-
[pyenv](https://github.com/pyenv/pyenv). You can find [here](https://codeflare.readthedocs.io/en/latest/getting_started/setting_python_env.html) recommended steps to set up the Python environment.
88-
89-
90-
Install from PyPI:
91-
```bash
92-
pip3 install --upgrade pip # CodeFlare requires pip >21.0
93-
pip3 install --upgrade codeflare
94-
```
95-
96-
Alternatively, you can also build locally with:
97-
```shell
98-
git clone https://github.com/project-codeflare/codeflare.git
99-
cd codeflare
100-
pip3 install --upgrade pip
101-
pip3 install .
102-
```
103-
104-
<!--
105-
#### Using Docker
106-
107-
You can try CodeFlare by running the docker image from [Docker Hub](https://hub.docker.com/r/projectcodeflare/codeflare/tags):
108-
- `projectcodeflare/codeflare:latest` has the latest released version installed.
109-
110-
The command below starts the most recent development build in a clean environment:
111-
112-
```bash
113-
docker run --rm -it -p 8888:8888 projectcodeflare/codeflare:latest
114-
```
48+
* **Simplified user experience**:
49+
CodeFlare [SDK](https://github.com/project-codeflare/codeflare-sdk) and [CLI](https://github.com/project-codeflare/codeflare-cli) to define, develop, and control remote distributed compute jobs and infrastructure from either a python-based environment or command-line interface
11550

116-
It should produce an output similar to the one below, where you can then find the URL to run CodeFlare from a Jupyter notebook in your local browser.
51+
* **Efficient resource management**:
52+
Multi-Cluster Application Dispatcher [(MCAD)](https://github.com/project-codeflare/multi-cluster-app-dispatcher) for queueing, resource quotas, and management of batch jobs. And [Instascale](https://github.com/project-codeflare/instacale) for on-demand resource scaling of an OpenShift cluster
11753

118-
```
119-
[I <time_stamp> ServerApp] Jupyter Server <version> is running at:
120-
...
121-
[I <time_stamp> ServerApp] http://127.0.0.1:8888/lab
122-
```
123-
-->
54+
* **Automated and streamlined deployment**:
55+
[CodeFlare Operator](https://github.com/project-codeflare/codeflare-operator) for automating deployment and configuration of the Project CodeFlare stack
12456

125-
<!-- #### Using Binder service
57+
With CodeFlare stack, users automate and simplify the execution and scaling of the steps in the life cycle of model development, from data pre-processing, distributed model training, model adaptation and validation.
12658

127-
You can try out some of CodeFlare features using the My Binder service.
59+
Through transparent integration with [Ray](https://github.com/ray-project/ray) and [PyTorch](https://github.com/pytorch/pytorch) frameworks, and the rich library ecosystem that run on them, CodeFlare enables data scientists to **spend more time on model development and minimum time on resource deployment and scaling**.
12860

129-
Click on the link below to try CodeFlare, on a sandbox environment, without having to install anything.
61+
See below our stack and how to get started.
13062

131-
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/project-codeflare/codeflare.git/develop)
132-
-->
63+
---
64+
## ⚙️ Project CodeFlare Ecosystem
13365

134-
---
66+
In addition to running standalone, Project CodeFlare is deployed as part of and integrated with the [Open Data Hub](https://github.com/opendatahub-io/distributed-workloads), leveraging [OpenShift Container Platform](https://www.openshift.com).
13567

136-
## Pipeline execution and scaling
68+
With OpenShift, CodeFlare can be deployed anywhere, from on-prem to cloud, and integrate easily with other cloud-native ecosystems.
13769

13870
<p align="center">
139-
<img src="./images/pipelines.svg" width="296" height="180">
71+
<img src="./images/codeflare_stack.svg" width="506" height="520">
14072
</p>
14173

142-
> **⚠ UPDATE**
143-
> As of January 2022, this feature is now built on [Ray Workflows](https://docs.ray.io/en/releases-1.9.0/workflows/concepts.html) with parts of it in [Ray core](https://github.com/ray-project/ray/releases/tag/ray-1.7.0) and the rest in a [DAG contribution repository](https://github.com/ray-project/contrib-workflow-dag). Please follow these links to contribute to CodeFlare Pipelines.
144-
145-
**CodeFlare Pipelines** reimagined pipelines to provide a more intuitive API for the data scientist to create AI/ML pipelines, data workflows, pre-processing, post-processing tasks, and many more which can scale from a laptop to a cluster seamlessly.
146-
147-
See the API documentation [here](https://codeflare.readthedocs.io/en/latest/codeflare.pipelines.html), and reference use case documentation in the Examples section.
148-
149-
A set of reference examples are provided as executable [notebooks](https://github.com/project-codeflare/codeflare/tree/main/notebooks).
74+
---
15075

151-
To run examples, if you haven't done so yet, clone the CodeFlare project with:
76+
## 🛠️ Getting Started
15277

153-
```bash
154-
git clone https://github.com/project-codeflare/codeflare.git
155-
```
78+
### Learning
15679

157-
Example notebooks require JupyterLab, which can be installed with:
158-
```bash
159-
pip3 install --upgrade jupyterlab
160-
```
80+
Watch [this video](https://www.youtube.com/watch?v=OAzFBFL5B0k) for an introduction to Project CodeFlare and what the
81+
stack can do.
16182

162-
Use the command below to run locally:
163-
```shell
164-
jupyter-lab codeflare/notebooks/<example_notebook>
165-
```
83+
### Quick Start
16684

167-
The step above should automatically open a browser window and connect to a running Jupyter server.
85+
To get started using the Project CodeFlare stack, try this [end-to-end example](https://github.com/opendatahub-io/distributed-workloads/blob/main/Quick-Start.md)!
16886

169-
If you are using any one of the recommended cloud based deployments (see below), examples are found in the `codeflare/notebooks` directory in the container image. The examples can be executed directly from the Jupyter environment.
87+
For more basic walk-throughs and in-depth tutorials, see our [demo notebooks](https://github.com/project-codeflare/codeflare-sdk/tree/main/demo-notebooks/guided-demos)!
17088

171-
As a first example of the API usage, see the [sample pipeline](https://github.com/project-codeflare/codeflare/blob/main/notebooks/sample_pipeline.ipynb).
89+
## Development
17290

173-
For an example of how CodeFlare Pipelines can be used to scale out common machine learning problems, see the [grid search](https://github.com/project-codeflare/codeflare/blob/develop/notebooks/Grid%20Search%20Sample.ipynb) example. It shows how hyperparameter optimization for a reference pipeline can be scaled and accelerated with both task and data parallelism.
91+
See more details in any of the component repos linked above, or get started by taking a look at the [project board](https://github.com/orgs/project-codeflare/projects/8) for open tasks/issues!
17492

175-
## Deploy and integrate anywhere
93+
### Architecture
17694

177-
CodeFlare is built on [Red Hat OpenShift Container Platform](https://www.openshift.com) and can be deployed anywhere, from on-prem to cloud, and integrate easily with other cloud-native ecosystems.
95+
We attempt to document all architectural decisions in our [ADR documents](https://github.com/project-codeflare/adr). Start here to understand the architectural details of Project CodeFlare.
17896

179-
See [Running with Red Hat OpenShift](./deploy/redhat_openshift) for detailed instructions on how to run CodeFlare on OpenShift Container Platform.
97+
---
18098

181-
## Contributing
99+
## 🎉 Getting Involved and Contributing
182100

183-
Join us in making CodeFlare Better! We encourage you to take a look at our [Contributing](CONTRIBUTING.md) page.
101+
Join our [Slack community][slack] to get involved or ask questions.
184102

185103
## Blog
186104

@@ -189,3 +107,16 @@ CodeFlare related blogs are published on our [Medium publication](https://medium
189107
## License
190108

191109
CodeFlare is an open-source project with an [Apache 2.0 license](LICENSE).
110+
111+
[codeflare-sdk]: https://github.com/project-codeflare/codeflare-sdk
112+
[codeflare-cli]: https://github.com/project-codeflare/codeflare-cli
113+
[mcad]: https://github.com/project-codeflare/multi-cluster-app-dispatcher
114+
[instascale]: https://github.com/project-codeflare/instascale
115+
[codeflare-operator]: https://github.com/project-codeflare/codeflare-operator
116+
[distributed-workloads]: https://github.com/opendatahub-io/distributed-workloads
117+
[quickstart]: https://github.com/opendatahub-io/distributed-workloads/blob/main/Quick-Start.md
118+
[slack]: https://invite.playplay.io/invite?team_id=T04KQQBTDN3
119+
[adr]: https://github.com/project-codeflare/adr
120+
[demos]: https://github.com/project-codeflare/codeflare-sdk/tree/main/demo-notebooks/guided-demos
121+
[board]: https://github.com/orgs/project-codeflare/projects/8
122+
[youtube-demo]: https://www.youtube.com/watch?v=OAzFBFL5B0k

codeflare-cli

Submodule codeflare-cli added at edcb654

codeflare-operator

Submodule codeflare-operator added at f9311cb

codeflare-sdk

Submodule codeflare-sdk added at 1fe04c3

images/codeflare_stack.svg

+584
Loading

instascale

Submodule instascale added at 83d89d1

mcad

Submodule mcad added at 713ac74

0 commit comments

Comments
 (0)