An abstraction over basic Kubernetes primitives is sorely needed.<p>A concept of an application with versioned releases can be hacked together with a lot of effort and a multitude of tooling, but it's an awkward experience.<p>An standard abstraction over event driven systems is also very beneficial.<p>To me Knative had somewhat bad positioning, relatively subpar documentation and bad marketing. It seemed like a half-hearted effort without a coherent vision or strong drive.<p>It also came very late. Something like it should have been officially included in Kuberentes much earlier.<p>Dapr [1] is a very similar effort, driven by Microsoft. It does much better on the above points, in my opinion.<p>One complication here is that the cloud vendors might be ambiguous or even adverse towards a standardized application definition and deployment system. It has the potential to (maybe significantly) reduce the lock-in AWS/Azure/GC currently cause for most customers.<p>[1] <a href="https://dapr.io/" rel="nofollow">https://dapr.io/</a>
Problem with knative and serverless in general, if you objectively look at it is that the market is quite small. Serverless is a nice way to create and deploy apps in startups. Startups in general have their own existential issues, now if I have to setup a managed kubernetes cluster and then then deploy, I am adding more unnecessary layers to already burning pile of fire.<p>For others they already have apps running, they want to port the platform as is on kubernetes. That itself is generally a struggle.<p>I think knative is really cool to play around with, it quite fun but I would think twice using it in real world because there are lot of moving operational pieces, learning curves and abstractions. It is much more comfortable to just write simple services with confidence.<p>I classify serverless, one push deployments, app runners in Heroku bucket. Heroku more less had 50mil ARR in 2020 [1], market is quite smaller actually.<p>[1] <a href="https://getlatka.com/companies/heroku" rel="nofollow">https://getlatka.com/companies/heroku</a>
Most of our Kubernetes-based services communicate with Kafka.<p>Istio adds basically no value into Kafka-based clusters as it doesn't offer a full abstraction over Kafka (and basically can't as clients as broker-aware etc.).<p>KNative was basically DOA for us because it required Istio.<p>It's not so much that KNative was marketed wrong so much as being too opinionated about the "cluster-admin"-level components. If they were part of your stack already, cool, it was easy to get going. If they weren't, then trying to adopt KNative was like trying to force a square peg into a round hole.
> I think Knative should have been just the serving component.<p>There are so many different ingresses (& now gateway) providers in Kubernetes. Serving continues to strike me as fairly unremarkable, and something already hotly fought for. Knative builds upon & extends a handful of the existing options, but it feels like Kubernetes Gateway API[1] will probably take over a large part of the special sauce type behavior that Knative used to be useful for abstracting over, & go a long way towards unifying serverless serving.<p>Eventing, on the other hand, is a hugely absent & missing abstraction in Kubernetes. There's lots of function as a service systems, plenty of fancy ingress/gateway options for routing traffic, but in terms of connecting up a panoply of services together, having a system to transport events around, there are very few Kubernetes-related offerings.<p>Knative Eventing is an unmatched offering. This article suggests the serving component should have been emphasized, and indeed, I think it's more core to the servlerless idea than eventing. But it's also far far better served, far more competitive a realm, to the degree that now there is participation & cooperation going on across the many providers to create a Kubernetes Gateway specification as a high-powered replacement for Ingress. What we need, what has unique value, is Knative Eventing.<p>[1] <a href="https://kubernetes.io/blog/2021/04/22/evolving-kubernetes-networking-with-the-gateway-api/" rel="nofollow">https://kubernetes.io/blog/2021/04/22/evolving-kubernetes-ne...</a>
My experience with Knative was that it was an abstraction too far for the market. Even when I started to understand it, explaining to other engineers was really difficult.<p>As a colleague once said, 'The first rule of Knative club is that you can't explain what it is'
I couldnt ge knative to work nicely with gitops tools, and found some of the abstractions confusing and didn't really simplify anything, won't be using it again probably