diff --git a/doc/source/analytics/analytics.md b/doc/source/analytics/analytics.md index 730cd41fe4..ad6429e4a6 100644 --- a/doc/source/analytics/analytics.md +++ b/doc/source/analytics/analytics.md @@ -14,11 +14,10 @@ Each metric has the following key value pairs for further filtering which will b * service * deployment_name * predictor_name - * predictor_version - * This will be derived from the predictor metadata labels + * predictor_version (This will be derived from the predictor metadata labels) * model_name * model_image - * model_image + * model_version ## Helm Analytics Chart diff --git a/doc/source/reference/upgrading.md b/doc/source/reference/upgrading.md index 386c205e0e..55e40292e0 100644 --- a/doc/source/reference/upgrading.md +++ b/doc/source/reference/upgrading.md @@ -13,17 +13,64 @@ As we moved to 1.x+ there are several breaking changes that need to be considere ### New Features / Breaking Changes +#### Deployment Naming and Rolling Updates + +The deployments created by Seldon Core have been changed to follow a fixed scheme. It will now be: + +``` +--- +``` + +So for example: + +``` +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + name: rest-seldon +spec: + name: restseldon + protocol: seldon + transport: rest + predictors: + - componentSpecs: + - spec: + containers: + - image: seldonio/mock_classifier_rest:1.3 + name: classifier + graph: + name: classifier + type: MODEL + name: model + replicas: 1 +``` + +For the above resource, one Deployment will be created with name: + +``` +rest-seldon-model-0-classifier +``` + +This will change how rolling updates are done. Now any change to the first PodSpec above will be updated via a rolling update as expected if the names of the containers are not changed. If however you changed "classifier" to "classifier2" you would get a new deployment created which would replace the old deployment when running. + + #### New Service Orchestrator From version 1.1 Seldon Core comes with a new service orchestrator written in Go which replaces the previous Java engine. Some breaking changes are present: * Metadata fields in the Seldon Protocol are no longer added. Any custom metata data will need to be added and exposed to Prometheus metrics by the individual components in the graph * All components in the graph must either be REST or gRPC and only the given protocol is exposed externally. + * The metric names placed in Prometheus have changed to include the `executor` name rather than `engine` : see the [analytics docs](../analytics/analytics.html) The new service orchestrator comes with several advantages including ability to handle Tensorflow REST and gRPC protocols and full metrics and tracing support for both REST and gRPC. For those wishing to use the deprecated Java engine service orchestrator see [the service orchestrator docs](../graph/svcorch.md) for details. +#### Ambassador Retries + +Ambassador retries has been removed from the previous hardwired value of 3. Retries is now available via an [annotation for Ambassador](../ingress/ambassador.html). + + ### Python Wrapper Tag Update The Python Wrapper was using naming convention in the format 0.1 ... 0.18. In this release we have renamed the version of the Python Wrapper tag to match the same convention as the Executor, Operator, etc. This means that the Python Wrapper tag for this release is 1.1, and the snapshot would be 1.1.1-SNAPSHOT @@ -107,3 +154,6 @@ The Helm chart `seldon-core-operator` will require clusterwide RBAC and should b ##### Dropping support for KSonnet Ksonnet is now deprecated. You should convert to using Helm to install Seldon Core. + + + diff --git a/examples/ambassador/shadow/ambassador_shadow.ipynb b/examples/ambassador/shadow/ambassador_shadow.ipynb index 96b2bee9f1..1bb31a03a0 100644 --- a/examples/ambassador/shadow/ambassador_shadow.ipynb +++ b/examples/ambassador/shadow/ambassador_shadow.ipynb @@ -62,7 +62,7 @@ "metadata": {}, "outputs": [], "source": [ - "!kubectl create -f model.json" + "!kubectl apply -f model.json" ] }, { @@ -192,13 +192,27 @@ "assert(int(default_count[0])==11)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Return to previous model" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "!kubectl delete -f shadow.json" + "!kubectl apply -f model.json" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## TearDown" ] }, { @@ -206,7 +220,9 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "!kubectl delete -f model.json" + ] } ], "metadata": {