Change deployment method from Docker to Kubernetes #31
Labels
dfaas-agent
Related to the agent component
dfaas-node
Related to the agent node
enhancement
New feature or request
With the evolution of the prototype, the next step is to update the deployment method from a Docker-based solution to Kubernetes. This step is necessary not only because it is necessary to integrate DFaaS into the WatchEDGE platform (i.e., Kubernetes-based), but also to enable DFaaS to be deployed with Kubernetes and take advantage of its capabilities.
The migration involves some decisions to be made, in particular:
faasd is the official OpenFaaS provider for single-host deployments using only Docker. For Kubernetes, there is the faas-netes provider.
With the migration from faasd to faas-nets, the OpenFaaS architecture changes and there is the ability to run asynchronous functions using NATS:
There should be no problems using OpenFaaS on Kubernetes, there are a lot of resources to deploy it on Kubernetes. The same goes for HAProxy since there is an ingress controller for it.
The latter is not true for the DFaaS agent. This is perhaps the most important step in moving to Kubernetes, as it requires writing operators and custom resources.
Since OpenFaaS CE (especially faasd, with the limit of 15 functions) has some limitations for the non-commercial version, we should evaluate some other alternatives that use Kubernetes as a platform, such as Apache OpenWisk. If we can extract some important metrics (like queue status), this can be a valid reason to change the FaaS platform.
We should also evaluate an additional tool to help with migration and deployment, such as Helm or KubeVela.
This issue covers general information about migration; each topic should be covered in more detail in a separate issue.
The text was updated successfully, but these errors were encountered: