Kubernetes is for people building platforms. If you are a developer building your own platform (AppEngine, Cloud Foundry, or Heroku clone), then Kubernetes is for you.
Let me clarify as I was being a bit flip, it’s not an App Engine clone, but it is CF on K8s. And though there are no firm dates the alpha already works , some work for it to be prod quality.
IMO in the coming years most compute workloads will be some form of hybrid between FaaS, “edge compute”, container-based stateless and stateful services. The cloud providers might be better positioned to deliver this unified platform.
the cloud vendors themselves might use Kubernetes under the hood - but that becomes an implementation detail.
It’s going to be difficult for in-house platform teams to build a platform that can compete with what the cloud providers might be able to offer.
This is basically the bet that Pivotal Cloud Foundry is making right now— that developers need a variety of abstractions, that Kubernetes is a tool for delivering abstractions, and that orgs want on-prem & “multi-cloud” but that it’s uneconomical to roll and *maintain* your own.
Pivotal’s been a little slow on the Kubernetes uptake because we were like
“What? Developers, why would you want something where you have to do your own logging/packaging/DNS?”
So it’s fun to watch people explore k8s and discover that these PaaS things are pretty cool actually
But, it now looks like there will be industry-wide economies available from using k8s as our implementation for all kinds of things, so we’re pursuing that in a bunch of directions
Currently unclear. We’re exploring!
It’s already less externally facing— partners are moving to deploying services on PKS rather than BOSH natively. In the near future BOSH is our k8s deployer. As k8s matures in its own “day 2” capabilities we may have less need of that layer.
This echos my own experience with teams trying to clone Heroku. We were in year two of ECS+Convox+various services. Heroku is *deceptively* simple and you really don't have to worry about it. For us it was always unclear what "broke" -- was it our platform or the app? Every time.
This future can’t come soon enough. It’s such drudgery to wire up the same PaaS things over and over. Deployment Pipelines, AuthN/Z (cluster & app level), Observability, network load balancing, cluster upgrades...on and on, for what unique value? It’s pure toil :/
The ideal situation would be that the application developer is unaware where their code runs. So Kubernetes like other platforms falls under the platform.
Hmm, ok, I see your point. That works in a giant corp, but in small shops where everyone does everything, and the spirit of DevOps is alive, I think that no longer holds.
Phrasing of the question is almost a trap :) ... Directly, sure - to some degree. OP: If building a platform (which lends to a broad interpret.), yes, as part of the value proposition to connect consumers <=> producers. YMMV
Fair but not my intention. I look at something like Heroku which has such a great dev friendly approach to this that the underlying k8s (or whatever) don’t even show.
That feels to me more like the future, but I’m open to being wrong and worry I’m blind to other approaches.
Cool! not trying to "haha!" You into any wordsmithing on T. Heroku experience take into account other primitives off of native "the app"? Ex: I _need_ object store, k8s is a place to start and extend. Do I complicate H and then simplify? Am I better off?
I see it a bit like Windows or Linux, you have folks who like to dive deep, reveling in the more arcane and folks who want a GUI or simple commands to just get things done. OpenShift provides a number of abstractions, making Kubernetes easier
I feel the problem is that we fail to explain what we mean when talking about Kubernetes. Think about Linux: It's a concept. Just like Kubernetes. We have common kernel, modules, distros and managed solutions. K8S kernel & modules is for people building platforms. Rest is for all
I would not say it's only for that. Helm made it easier to deploy stuff on kubernetes and Cloud Foundry has no answer for legacy code and steful apps yet.
Actually no, as you can have (optional) persistency and can deploy whatever container image you want. Those are not headline features simply because that's not how you're supposed to build modern apps.
They have an answer for stateful services, they did long before k8s actually : it’s the open service broker API that Redhat is currently implementing in OpenShift
Yup! This is also precisely what @snaproute did with their new CN-NOS (cloud native network operating system), building it with k8s baked into the mgmt plane:
snaproute.com
Kelsey, what do you think about Netflix Conductor, which relies on the idempotence of services, in addition to their statelessness?? Is It kind of competition or even alternative to K8s?
sometimes I think that we have some sort of quantum entanglement thing going. Working hard back at the @pivotal@VMware ranch. Harden @kubernetesio as fast as we can in an open upstream, any cloud way + make app abstractions and services curated and easy.
Problem is there is no OSS high level platform that you can install on premise or fully managed in a VPC. There’s a huge void between « couple apps on Heroku/app engine » and « installing myself a full blown app platform in a private network »
On this front, do you have any resources for people trying to build serverless-style platforms on top of K8S? It seems like there are a hundred things I haven't thought about yet, and when I uncover one I only discover 10 more questions to ask.