|
1 |
| -# beamstack |
2 |
| -<img src="https://github.com/BeamStackProj/beamstack-cli/blob/main/logo/beamstack.png" width="300"> |
3 |
| ----- |
| 1 | +<p align="center"> |
| 2 | + <picture> |
| 3 | + <source media="(prefers-color-scheme: light)" srcset="./assets/beamstack-logo.png"> |
| 4 | + <img width="300" height="260" src="./assets/beamstack-logo.png"> |
| 5 | + </picture> |
| 6 | + <h1 align="center" style="font-size: 24px;">Kubernetes Framework for deploying ML and GenAI Apache Beam workflows</h1> |
| 7 | +</p> |
4 | 8 |
|
5 |
| -beamstack is a revolutionary tool that has been meticulously crafted to simplify and revolutionize |
6 |
| -the deployment of machine learning (ML) workflows on [Kubernetes](https://kubernetes.io/docs/concepts/overview/). It offers a holistic solution by |
7 |
| -introducing abstraction layers that streamline the deployment of diverse components |
8 |
| -of ML pipelines, data processing workflows, and deployment infrastructure. |
| 9 | +<p align="center"> |
| 10 | + <a href="https://beamstack.netlify.app/docs/" rel="nofollow"><strong>Explore Beamstack Documentation »</strong></a> |
| 11 | + <a href="https://beamstack.netlify.app/community/"><strong>Join Beamstack Community »</strong></a> |
| 12 | + <a href="https://beamstack.netlify.app/blog/"><strong>Explore Blogs »</strong></a> |
| 13 | + <a href="https://discord.gg/fYNnNVaEFK"><strong>Join Discord Channel</strong></a> |
| 14 | +</p> |
9 | 15 |
|
| 16 | +</p> |
| 17 | +<p align="center"> |
| 18 | +<a href="https://discord.gg/fYNnNVaEFK"><img src="https://img.shields.io/badge/Join%20us%20on-Discord-e01563.svg" alt="Join Discord"></a> |
| 19 | +<a href="http://golang.org"><img src="https://img.shields.io/badge/Made%20with-Go-1f425f.svg" alt="made-with-Go"></a> |
10 | 20 |
|
11 |
| -At the heart of beamstack's capabilities lie Kubernetes Custom Resource Definitions (CRDs). These CRDs |
12 |
| -serve as a powerful mechanism for extending the Kubernetes API, enabling the seamless integration |
13 |
| -of ML-specific resources into the Kubernetes ecosystem. Through this innovative approach, |
14 |
| -beamstack empowers users to leverage the robust features and functionalities of |
15 |
| -Kubernetes while unlocking the immense potential of ML. |
| 21 | +## **Beamstack Features** |
16 | 22 |
|
17 |
| ----- |
| 23 | +<style> |
| 24 | + details { |
| 25 | + margin-bottom: 10px; |
| 26 | + } |
| 27 | + details summary { |
| 28 | + cursor: pointer; |
| 29 | + font-weight: bold; |
| 30 | + } |
| 31 | + details ul { |
| 32 | + margin: 0; |
| 33 | + padding-left: 20px; |
| 34 | + list-style-type: disc; |
| 35 | + } |
| 36 | +</style> |
18 | 37 |
|
19 |
| -## minikube |
20 |
| -```sh |
21 |
| -minikube delete && minikube start --kubernetes-version=v1.23.0 --memory=6g --bootstrapper=kubeadm --extra-config=kubelet.authentication-token-webhook=true --extra-config=kubelet.authorization-mode=Webhook --extra-config=scheduler.bind-address=0.0.0.0 --extra-config=controller-manager.bind-address=0.0.0.0 |
22 |
| -``` |
23 |
| -## To start using beamstack |
| 38 | +<details> |
| 39 | + <summary><b>Simplified ML Workflow Deployment</b></summary> |
| 40 | + <ul> |
| 41 | + <li>Beamstack simplifies the deployment of machine learning workflows on Kubernetes.</li> |
| 42 | + </ul> |
| 43 | +</details> |
24 | 44 |
|
25 |
| -Basic to advanced knowledge on kubernetes is advised. |
| 45 | +<details> |
| 46 | + <summary><b>Holistic Solution</b></summary> |
| 47 | + <ul> |
| 48 | + <li>Beamstack offers an all-encompassing solution for managing machine learning pipelines, data processing workflows, and deployment infrastructure.</li> |
| 49 | + </ul> |
| 50 | +</details> |
26 | 51 |
|
27 |
| -## Installing beamstack |
| 52 | +<details> |
| 53 | + <summary><b>Abstraction Layers:</b></summary> |
| 54 | + <ul> |
| 55 | + <li>Beamstack introduces abstraction layers that streamline the deployment of various components within ML pipelines.</li> |
| 56 | + </ul> |
| 57 | +</details> |
28 | 58 |
|
29 |
| -``` |
| 59 | +<details> |
| 60 | + <summary><b>Leveraged Kubernetes Custom Resource Definitions (CRDs):</b></summary> |
| 61 | + <ul> |
| 62 | + <li>Beamstack uses Kubernetes CRDs to extend the Kubernetes API, allowing smooth integration of machine learning-specific resources.</li> |
| 63 | + </ul> |
| 64 | +</details> |
| 65 | + |
| 66 | +<details> |
| 67 | + <summary><b>Seamless Integration with Kubernetes:</b></summary> |
| 68 | + <ul> |
| 69 | + <li>Beamstack empowers users to leverage Kubernetes' features while incorporating machine learning capabilities into the Kubernetes ecosystem.</li> |
| 70 | + </ul> |
| 71 | +</details> |
| 72 | + |
| 73 | +<details> |
| 74 | + <summary><b>Easily Monitor and Visualize Deployed Workflows:</b></summary> |
| 75 | + <ul> |
| 76 | + <li>Beamstack seamlessly integrates with Prometheus and Grafana to visualize the states of the deployed workflows in real time.</li> |
| 77 | + </ul> |
| 78 | +</details> |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +## **Architecture of beamstack** |
| 83 | +<p align="center"><img src="./assets/beamstack-arch.png"></p> |
| 84 | + |
| 85 | +--- |
| 86 | + |
| 87 | +<style> |
| 88 | + ul { |
| 89 | + padding-left: 0; |
| 90 | + list-style-position: inside; |
| 91 | + } |
| 92 | + li { |
| 93 | + margin-left: 0; |
| 94 | + } |
| 95 | +</style> |
| 96 | + |
| 97 | +## **Components of Beamstack** |
| 98 | +<ul> |
| 99 | + <li>Beamstack CLI</li> |
| 100 | + <li>Beamstack Custom Transforms</li> |
| 101 | + <li>Apache Beam YAML</li> |
| 102 | +</ul> |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +## **Installation** |
| 107 | + |
| 108 | +### Setup Kubernetes cluster: |
| 109 | +To be able to work with beamstack-cli, an active Kubernetes cluster is required. |
| 110 | + |
| 111 | +A local Kubernetes cluster can be setup using minikube. |
| 112 | + |
| 113 | +```bash |
| 114 | +minikube delete && minikube start --kubernetes-version=v1.23.0 --memory=6g --bootstrapper=kubeadm --extra-config=kubelet.authentication-token-webhook=true --extra-config=kubelet.authorization-mode=Webhook --extra-config=scheduler.bind-address=0.0.0.0 --extra-config=controller-manager.bind-address=0.0.0.0 |
| 115 | +``` |
| 116 | + |
| 117 | +### Clone beamstack-cli resources: |
| 118 | + |
| 119 | +```bash |
30 | 120 | git clone https://github.com/BeamStackProj/beamstack-cli.git
|
| 121 | +``` |
| 122 | + |
| 123 | +### Install beamstack-cli: |
| 124 | + |
| 125 | +```bash |
31 | 126 | cd beamstack-cli
|
32 | 127 | make install
|
33 | 128 | ```
|
| 129 | +--- |
| 130 | + |
| 131 | +## **Examples of beamstack commands** |
| 132 | + |
| 133 | +### Initialize a Kubernetes Cluster with Beamstack & Monitoring tools: |
| 134 | + |
| 135 | +```bash |
| 136 | +beamstack init -m |
| 137 | +``` |
| 138 | + |
| 139 | +### Get the current kubernetes cluster context and profile info: |
| 140 | + |
| 141 | +```bash |
| 142 | +beamstack info |
| 143 | +``` |
| 144 | + |
| 145 | +### Display the name, status and age of a cluster: |
| 146 | + |
| 147 | +```bash |
| 148 | +beamstack info cluster |
| 149 | +``` |
| 150 | + |
| 151 | +### Create a runner cluster: |
| 152 | + |
| 153 | +```bash |
| 154 | +beamstack create [runner-cluster] [cluster-name] |
| 155 | +``` |
| 156 | + |
| 157 | +### Open runner UI: |
| 158 | + |
| 159 | +```bash |
| 160 | +beamstack open [runner] [runner-cluster-name] |
| 161 | +``` |
| 162 | + |
| 163 | +### Deploy a pipeline: |
| 164 | + |
| 165 | +```bash |
| 166 | +beamstack deploy pipeline [FILE] [flags] |
| 167 | +``` |
| 168 | + |
| 169 | +### Create a vector store: |
| 170 | + |
| 171 | +```bash |
| 172 | +beamstack create vector-store --type=elasticsearch |
| 173 | +``` |
| 174 | + |
| 175 | +### Get help: |
| 176 | + |
| 177 | +```bash |
| 178 | +beamstack --help |
| 179 | + |
| 180 | +beamstack [command] --help |
| 181 | +``` |
| 182 | + |
| 183 | +## **Support, Contribution, and Community** |
| 184 | + |
| 185 | +### :busts_in_silhouette: Community |
| 186 | + |
| 187 | +Get updates on Beamstack's development and chat with project maintainers, contributors, and community members |
| 188 | +- Visit the [Community Page](https://beamstack.netlify.app/community/) |
| 189 | +- Raise feature requests, suggest enhancements, and report bugs in our [GitHub Issues](https://github.com/BeamStackProj/beamstack-cli/issues) |
| 190 | +- Articles, Howtos, Tutorials - [Beamstack Blogs](https://beamstack.netlify.app/blog/) |
| 191 | + |
| 192 | +### :handshake: Contribute |
| 193 | + |
| 194 | +Take a look at our [contributing guidelines](https://beamstack.netlify.app/docs/contribution-guidelines) for information on how to open issues, adhere to coding standards, and understand our development processes. We greatly value your contribution. |
0 commit comments