-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Discussion] Action Versioning #4580
Comments
My initial thought is as follow: 1. An action should be uniquely identified with versions.With the fact that many databases do not support such versioning functionality, we may need to redefine the id for documents.
2. Users should be able to specify versions at least when reading/invoking an action.A version header or URL parameter can be options to specify versions. 3. A way to handle spatial quota.Currently, OW does not limit the storage quota. Users can create as many actions as they want. We may define a more complicated method to handle it. 4. Treat an action with different versions as different.This is related to the reuse of action containers. Also, if we would support some kinds of routing features as I mentioned above, we may need a way to correlate them with a single URL, and control the scheduling ratio between them as well. Sharing your thinking about this feature, requirements, and any use cases would be appreciated. |
Let me share some excerpts from the discussion threads on Slack with @rabbah and @chetanmeh.
|
Sorry to bump, just curious if any progress has been made on this feature this year @style95 |
@bdoyle0182 No problem. I believe @jiangpengcheng would drive the contribution. |
Cool couple thoughts / questions I wanted to ask.
|
|
This is to discuss the new feature, "action versioning".
It originates from the need for invokers to fetch a specific version of the action.
After a user invokes an action and before an invoker receives the activation message if the user updates the action, the version of action is updated, but the invoker still tries to fetch action with old revision. At this point,
Boxed Error
happens.Generally, it does not happen under a normal situation as activation passing is faster than action update, but it can happen in some cases.
CouchDB has the functionality to fetch data with a specific revision. But this feature is not being used by OpenWhisk.
https://docs.couchdb.org/en/stable/api/document/common.html#obtaining-a-specific-revision
One limitation is, old revision of data can be removed by the compaction.
apache/couchdb-fauxton#1069
https://stackoverflow.com/questions/9730299/are-old-data-accessible-in-couchdb
Also, other
ArtifactStores
such asCosmosDBArtifactStore
may not have such a versioning functionality.So it would be great for OpenWhisk itself to have the versioning feature.
AWS Lambda also supports this kind of versioning feature at the platform level.
I think the versioning feature can enable many deployment scenarios such as blue-green, canary deployment and so on. Such deployment methods are already supported in K8S with Istio.
Similarly, we can imagine the scenario that we assign two different versions of an action to one execution URL, and control the routing ratio between them. This would be useful for users to test their new version of the action with the real traffic.
Currently, OpenWhisk has a
version
field, but mostly it defers the versioning to users.Above mentioned is just one use case. I believe users can benefit from it in many directions.
So it would be great to list up requirements and use cases of this feature.
The text was updated successfully, but these errors were encountered: