Managing External Services
How to manage external, longer-lived services
ZenML interacts with external systems (e.g. prediction services, monitoring systems, visualization services) via a so-called Service
abstraction. The concrete implementation of this abstraction deals with functionality concerning the life-cycle management and tracking of an external service (e.g. process, container, Kubernetes deployment etc.).
Using Services in Steps
Services can be passed through steps like any other object, and used to interact with the external systems that they represent:
Examples
One concrete example of a Service
is the built-in LocalDaemonService
, a service represented by a local daemon process which extends the base Service
class with functionality concerning the life-cycle management and tracking of local daemon processes.
Another example is the TensorboardService
which enables visualizing TensorBoard logs by managing a local TensorBoard server, which couples nicely with the TensorboardVisualizer
to visualize Tensorboard logs:
You can find full examples of using services here:
- Visualizing training with TensorBoard in the Kubeflow TensorBoard example.
- Interacting with the services of deployed models in the MLflow deployment example.
- Interacting with the services of deployed models in the Seldon deployment example.
- Interacting with the services of deployed models in the KServe deployment example.