2. We don't support Java yet, but we'd like to. The JVM would already be running by the time there's a request, so there won't be a JVM startup in the request path.
3. Dev workflows: Lots to do on that front. A big part of our roadmap is improving the dev workflow, better versioning support, CI/CD.
For running locally, yes, the best way is to run a local Kubernetes instance on your machine. minikube makes it very easy to do that, see the instructions in the README: https://github.com/fission/fission#setup-kubernetes
While one cannot rely that all executions after a cold start are warm, it's possible to for the action code to check if it's warm and forgo internal initialization as needed. This is a convenient trick that's common to avoid expensive setup.
For Java actions running in OpenWhisk, this can be done with static fields.
A nice flow of the lifecycle can be seen on slide 24 here http://www.slideshare.net/psuter/openwhisk-deep-dive-the-act....
I've seen a couple of issues and I agree that it would be fabulous to have OpenWhisk integrated into OpenShift/Kubernetes.
Should you need help with OpenWhisk please reach out to us on http://slack.openwhisk.org/ or GitHub.
You manage dependencies by bundling them up in a JAR or zip file (handled by Maven or Gradle)
Static assets can be kept warm between invocations (nice for things like DB connections)
If I keep DB connections for example am I now relying on an implementation detail or is this documented behavior? I realize that this will be different for every system.
I'm sure they use your invocation history in deciding how long to keep them around.
I have a couple of questions, maybe someone here has answers for me:
1) In particular I'm wondering about expensive one-time/setup operations (e.g. opening a database connection) that are usually done once at startup of a service. But that doesn't really apply here. How are these things handled?
2) As a Java guy I also wonder which of these tools support Java and how they deal with dependencies and JVM startup times etc.
3) And my last question: How do these integrate into development workflows? Continuous integration? Run this offline/local etc. Will I need a Kubernetes instance on my machine?