envd
website·Indexed 33 days ago
https://envd.tensorchord.ai/A command-line tool designed to simplify the configuration and reproduction of development environments for AI/ML applications. It automates image building and environment setup, reducing the need for manual Docker management. Features include Starlark-based configuration, support for Python and Julia, CI/CD integration via Buildkitd, and experimental support for running envd-server on Kubernetes.
What's inside envd
- envd is a tool designed to replace traditional Dockerfiles with Python-like functions to manage machine learning dependencies. It leverages buildkit for improved caching and parallel building, and provides native integration with Jupyter Notebook and VSCode to maintain a high-quality development experience while ensuring consistent containerized environments (especially for GPU/CUDA dependencies).
Overview of envd
envd is a command-line tool designed to create container-based development environments for AI/ML. It simplifies the management of complex dependencies (CUDA, Python packages, IDEs, etc.) by allowing users to declare them in abuild.envdmanifest and launch the environment with a single command.Overview of envd
envd is a command-line tool designed to simplify the creation of container-based development environments for AI/ML. It allows developers to declare system dependencies, CUDA versions, Python packages, and IDE configurations in abuild.envdfile, which is then instantiated into an isolated environment using theenvd upcommand.Overview of envd for AI/ML development
envd is a machine learning development environment tool for data science and AI/ML engineering teams. It replaces complex Dockerfiles, bash scripts, and Kubernetes manifests with a simplified build language (Starlark, a dialect of Python). Key features include:
- Multi-level Caching: Accelerates builds by sharing caches (e.g., PyPI cache) across builds.
- Cloud Native: Integrates with Docker and OCI image registries; compatible with Docker and Kubernetes.
- Reproducibility: Ensures identical environments across local laptops, cloud VMs, and containers.
- IDE Integration: Provides first-class support for Jupyter and VSCode remote extensions.
Overview of envd for team collaboration
envd allows AI/ML and infrastructure engineers to collaborate by defining environment configurations in abuild.envdfile within a git repository. AI/ML engineers can define environments using Python instead of Bash or Dockerfiles, ensuring reproducible builds across laptops, cloud VMs, and containers. Infrastructure engineers can manage these environments using standard OCI image registries (e.g., Docker Hub, Harbor, Quay) and integrate them into CI/CD pipelines like GitHub Actions, Jenkins, or Argo.Overview of envd for ML and Data Science environments
envdis a tool designed to build portable environments for machine learning and data science. It uses a Python-like syntax (Starlark) to define environments, ensuring that each project has a dedicated setup to avoid conflicts between CUDA, system packages, and virtual environments. Key capabilities include:- Multi-target support: Unifies development and production environments.
- Container Integration: Compatible with Docker and Kubernetes.
- Dataset Management: Can be used to download and preprocess datasets.
Overview of envd-server and Kubernetes workflow
envd-server is the backend server for envd that manages environments on Kubernetes and supports multiple concurrent users. The workflow for creating an environment is as follows:
- User creates an environment via the envd console.
- envd-server validates and prepares the environment for provisioning.
- envd-server provisions the environment on Kubernetes.
- User is notified when the environment is ready.
- User attaches to the environment via SSH, using containerssh as an SSH proxy to forward the connection to the specific pod.
Overview of envd for AI/ML development
envd is a machine learning development environment tool for data science and AI/ML engineering teams. It replaces complex Dockerfiles, bash scripts, and Kubernetes manifests with a Python-like build language (Starlark). Key features include:
- Multi-level Caching: Accelerates builds by sharing caches (e.g., PyPI cache) across builds.
- Cloud Native: Integrates with Docker and OCI image registries; compatible with Docker and Kubernetes.
- Reproducibility: Ensures identical environments across local laptops, cloud VMs, and containers.
- IDE Integration: Provides first-class support for Jupyter and VSCode remote extensions.
Manage multiple builder instances with envd contexts
Anenvdcontext contains the endpoint and security information required to manage a specific builder instance. A builder instance runs a separate buildkit daemon responsible for building images and storing the build cache. A singleenvdCLI can manage multiple contexts, allowing users to switch between different builder environments.Understand the internal execution flow of `envd up`
envdprocesses thebuild.envdfile by executing thebuild()function. Function calls (e.g.,install.python_packagesorconfig.jupyter) register metadata into an in-memory static graph.envdthen transforms this graph into a Buildkit LLB (Low-Level Builder) DAG graph to build the final image.Develop machine learning environments using envd-server on Kubernetes
Theenvd-serverallows developers to create and maintain machine learning development environments directly within a Kubernetes cluster. This ensures environment consistency across multiple machines, enables reproducibility for teammates, and reduces the gap between development and production by allowing online model serving images to be built directly from the development environment. For administrators, resource usage can be monitored via theenvddashboard, and Kubernetes ResourceQuota can be used to manage resource allocation and RBAC.Monitor envd container statistics
Use thetopcommand to display real-time statistics about the containers currently managed by the envd environment.envd top