-
Notifications
You must be signed in to change notification settings - Fork 121
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extract Python components into their own packages
The following packages were introduced: * "indexify-python-utils" with common functionality for components written in Python. Not published to PyPi. It currently includes: ** Logging configuration for services written in Python (used by Function Executor and Executor). ** HTTP client utils (used by Python SDK and Executor). ** Common build and testing scripts for all other Python packages. * "indexify-python-sdk" for Python SDK library. Not published to PyPi. * "indexify-function-executor" for Function Executor. Not published to PyPi. * "indexify-executor" for Executor. Not published to PyPi. * "indexify" (depends on all the 4 packages above ^ and includes the CLI). Published to PyPi. This is the same "all in one" package we were using right now. It should be compatible with all existing customer UX. The idea is that "indexify" package combines all Open Source Indexify components in one package and customers can use the package to develop their workflows and to run local or distributed Indexify clusters using the CLI and also to build their function images. Also added README.md for all the packages and their tests to clarify what functionality belongs where and how the packages relate to each other. Versioning: "indexify-python-sdk" package has the current latest version 0.2.48. "indexify" package has the same current version 0.2.48. All other packages have version 0.1.0 as it's not as important to keep their versions the same as the current 0.2.48. The versioning policy from now on is the following: * Versions of all the packages are independent except "indexify" package. * When a package version gets incremented then "indexify" package version gets incremented too. ** This ensures that all important enough updates in any Indexify component results in user visible version change. Also update github actions to: * Work with "indexify" package folder instead of python-sdk package folder. * Run all the linter checks and tests in all the packages. Testing: make check make test
- Loading branch information
Showing
133 changed files
with
9,587 additions
and
918 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"python.analysis.extraPaths": [ | ||
"./python-sdk/src", | ||
"./function_executor/src", | ||
"./executor/src", | ||
"./indexify/src", | ||
"./python_utils/src" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
include ../python_utils/common.mk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
## Overview | ||
|
||
Executor registers at Indexify Server and continiously pulls tasks assigned to it from the Indexify Server | ||
and executes them. While registering it shares its capabilities like available hardware with the Indexify | ||
Server and periodically updates the Server about its current state. Executor spins up Function Executors | ||
to run customer functions. Executor should never link with Indexify Python-SDK. It should not know anything | ||
about programming languages and runtime environments used by Indexify Functions. Function Executor is | ||
responsible for this. | ||
|
||
## Deployment | ||
|
||
An Executor can run in a Virtual Machine, container or a in bare metal host. Each vm/container/bare metal | ||
host in an Indexify cluster deployment runs a single Executor daemon process. | ||
Open Source users manage the Executors fleet themself e.g. using Kubernetes, any other cluster | ||
orchestrator or even manually. | ||
|
||
An Executor can be configured to only run particular functions. This allows to route certain Indexify | ||
functions to only particular subsets of Executors to e.g. implement a load balancing strategy. | ||
|
||
This package doesn't provide an executable entry point that runs an Executor. This is intentional | ||
as Executor has many configurable subcomponents. `indexify` package provides a cli with `executor` | ||
command that runs Executor with functionality available in Open Source offering. | ||
|
||
## Threat model | ||
|
||
A VM/container/bare metal host where an Executor is running is fully trusted. This works well for single | ||
tenant deployments where customer functions' code is fully trusted. If this is not the case then Function | ||
Executors that run customer functions need to get isolated from Executor using e.g. Virtual Machines. | ||
This functionality is not included into the Open Source offering. |
File renamed without changes.
Oops, something went wrong.