本地开发服务器#
何时需要使用此功能?¶#
为了快速测试Syft功能或在部署前对服务器设置进行实验,本地开发服务器会非常有用。这些开发服务器类似于内存服务器,提供简单的启动和关闭功能。
这个本地开发服务器拥有自己的SQLite存储,用于保存服务器的元数据和数据,其名称与服务器的唯一名称相同。如果您启动一个已有存储的服务器,该存储将被一并加载,这意味着您可以在更长的开发周期中使用它。
步骤#
要部署本地开发服务器,您只需要使用syft,它附带了一个名为orchestra的特殊模块。通过orchestra,您可以尝试单服务器部署,甚至模拟容器工作负载。
安装#
Python 版本
请确保您已安装并可使用 Python 3.10+ 版本。
pip install -U syft
启动开发服务器#
import syft as sy
server = sy.orchestra.launch(
name="my_special_server",
reset=True,
port=8093,
)
server.deployment_type
返回的对象sy.ServerHandle允许获取关于您部署的本地服务器的具体信息,例如url或deployment_type。这里的部署类型是PYTHON,因为服务器运行在Python进程中。值得注意的是sy.orchestra还允许用户尝试更多本地容器化部署方式,相关内容将在后续详细介绍。
客户端还提供了更多API以便于测试,例如register、login_as_guest等。
server.url
server.port
可以传递更多参数来配置您希望使用开发服务器的方式:
dev_mode: True/False,表示在使用服务器进行调试时是否需要详细日志记录server_type:enclave,domain或gatewayserver_side_type:high或low,用于声明您的服务器是用于托管私有数据(high)还是仅模拟数据(low)。高安全级别的服务器对数据使用方式有更严格的防御措施。local_db: True/False,是否要初始化本地数据库create_producer: True/False,表示您的服务器是否可以实例化其他内存服务器来模拟与多个容器的协作n_consumers: 模拟的内存工作节点数量,能够消费调度的工作负载。这是启动和运行作业所必需的,并且要求create_producer设置为True。thread_workers: True/False,是否应使用线程模拟内存中的工作进程association_request_auto_approval: True/False,表示是否应自动批准与其他服务器关联的请求(例如从一个服务器路由到另一个服务器)
或者从命令行运行:
$ syft launch --name=my-server --port=8080 --reset=True
访问客户端并登录#
data_owner_client = sy.login(url="localhost:8093", email="[email protected]", password="changethis")
data_owner_client
服务器着陆(关闭)#
server.land()
更多关于如何使用此Datasite服务器的信息,请参阅Datasite指南和组件部分。