Design¶
The runtime implements remote execution of models and jobs. The runtime is implemented as follows:
OmegaRuntime
- the client API to get access to a remote modelOmegaModelProxy
- the client API to the remote modelruntime.tasks
- the celery tasks implementing the actual execution
A OmegaRuntime
instance is available as om.runtime
:
om = Omega()
# get the OmegaModelProxy instance
model = om.runtime.model('mymodel')
# call methods on OmegaModelProxy, effecting remote task execution
model.fit('X', 'Y')
pred = model.predict('X')
Note that any method called on the model
are translated into calls
to respective celery tasks. A celery task lives in a celery worker at a remote
note. On execution a task will re-create the Omega
instance to retrieve
the X,Y data as well as the actual model.
Security concerns¶
Note that the open source omega|ml Core does not implement any security by default. The omega|ml Enterprise Edition however addresses all security concerns:
user authentication. Users authenticate to REST endpoints by username + Apikey. Communication is protected by HTTPS.
the database is protected by user/passwords. There is an admin database which uses the
MONGO_ADMIN_URL
. This URL is not exposed to users. The per-user databases are only exposed on a per-user basis.communication to the database using mongo TSL support
communication to the message broker access protection to RabbitMQ, channel encryption (TLS) and message signing.
configuration of client workstations. via userid and apikey