I see this in my corp every day. Very smart people, super interested in actual feedback, and super interested in really providing great software. But in the end they still fail. I'm not 100% sure about the reasons, but I have a guess.
Usually people who move up the ranks and get into positions where they can make decisions, tend to build relationships with other such people. So more and more they change from "why the hack is dns not working on server-13 anymore?" to "this is the big problem the market has, let's attack that". And slowly that thought croaches in that you should only think about the big picture problems and not worry about the nitty-gritty details of every day getting-things-to-run.
And that's probably the problem. While it's clear that you can't solve all the details and work on big picture problems at the same time, you should not devaluate the details. Great solutions solve big picture problems BY SOLVING THE DETAILS.
That's why K8S for instance is a mediocre solution. Sure they have great big picture ideas, but usually people spend their time with having DNS not working, having servers hanging, having etcd nodes not talking to each other without explaining why, having deployments say "SUCCESS" while actually not running. K8S provides a standardized API for every detail and every use-case, cool. But in the end you need to be an expert in everything to make it run around 50% of the time (outside of AWS and GCP). Nobody really wants to develop on k8s when the underlying platform is only available 50% of the time. And that's the current experience.
So please, if you are one of these people who is really interested in creating great software, consider finding solutions to the detailed low-level problems an important part of the goals and tasks you define. Usually the core low-level problems are not a big amount. For instance with k8s it usually is networking, dynamic storage or security related. Have one person in your team really become an expert in one of these areas (by checking out problems and solutions that exist, not just by making up ppt slides with plans that have nothing to do with the real world) and allow them to influence your task planning.
Maybe that's your experience? I haven't had any of those problems in moderately sized on-prem k8s clusters.
It's almost just enough to make you wish for a Hybrid cloud. If you don't have Kubernetes experts on staff, you shouldn't be trying to manage your own Kubernetes on-prem. It won't be surprising that this is the experience 50% of the time – honestly that has to be why managed services for Kubernetes are evidently becoming so popular.
Managed services have these issues some of the time too, and if your managed service has those issues often enough that you'd want to talk about them, you better find a different managed service. I think AKS and GKE have had those issues, but they are rare. Don't know personally about EKS.
I think some people interpret the promise of managed K8s services to be that you don't need to have someone anymore on-staff who is the expert in how things might go sideways on Kubernetes.
On the contrary, you still need that person to be able to take advantage of Kubernetes with confidence, but maybe now thanks to (whatever vendor you chose for Kubernetes) you simply don't need to have an actual department of 6-12 of those experts focused on only doing that (managing Kubernetes.)
A result of using a real, stable managed K8s service should be that on a day-to-day basis, those people won't actually need to run around with their hair on fire doing ops things just to keep the business going. Automation.
With on-prem, maybe just don't expect it to come like that out-of-the-box; if your whole team is still new at this they're going to need training and planning and ramp-up to get it to that stage. This is exactly how you get "it might be better for us to start with a managed k8s service."
> usually people spend their time with having DNS not working, having servers hanging, having etcd nodes not talking to each other without explaining why, having deployments say "SUCCESS" while actually not running
I'm not saying k8s is free of problems.
Self-healing is great when it works, and those items you listed are all real problems. But they are not problems that you should expect to encounter on a managed service, at least hopefully not more than once. (YMMV, amiright?)
Just out of curiosity, how are you managing your on-prem k8s clusters? (Is there a toolkit you'd recommend using? Kubespray?)
Pivotal Function Service (PFS) builds directly on Kubernetes via Knative (https://github.com/knative/) and Project riff (https://projectriff.io).
Is the title even accurate? It sounds/looks more like "Pivotal creates branded offering of Knative+Riff and uses one of their main selling points as their headline feature", but maybe I'm just biased from past impressions of Pivotal marketing. Especially since it seems to be in contact-only early access.
I have to login to PCF to check environments or add services to bind to an app.
The CF cli is not very easy to understand compared to aws eb cli or herokus toolbelt
The login screen says "email" but you actually have to enter your user ID
Devops become your enemies, especially if they lock down PCF environments. I don't want to beg for a redis tile.
PCF eats a lot of ram from our virtual servers.
The PCF support is layered with different urgency levels, most of the time they ignore you or are slow to respond
Basically I think it's a tool that gets in the way of developers and gives headaches to the platform team. However my company signed a contract with them, so we're tied in for a year.... I might quit before then
You're doing devops wrong, which may explain why you're having a bad time with the platform.
> I have to login to PCF to check environments or add services to bind to an app.
You should automate this with CI servers and pipelines.
The complaints about RAM usage and support service I agree with.
It sounds like your organisation is disfunctional, and its treatment of PCF is the symptom not the cause.
We have low timeouts on most logins anyway, so having it on PCF isn’t a big deal.
We have a CI/CD workflow, so I don’t really have to login to the CLI that much.
Locked down environments are always a pain - but it would be no different if your org locked down AWS or Heroku, which they could.
You could squeeze them onto one VM, but that would require that CF teams cooperate on manifests. Inconceivable!
The CF team is a bunch of Pivots... they cooperate quite well and probably better than most other teams, especially since they rotate across projects fairly often. Disclosure, I worked on CF in the early days, on a number of teams.
Cloud Foundry (PAS) is not designed to be used this way -- it had multitenancy designed in from the beginning.
For PKS the idea of cluster-per-project makes more sense, given that Kubernetes doesn't reaaaally have multitenancy in the same sense.
PCF itself is also very expensive. I'm not sure if they charge per node or per app; they've changed it over the last few years. I would get the skinny on that before committing to anything and do a TCO/ROI analysis.
If you are going to go this route, I would also consider doing a PoC with OpenShift or Rancher. These are managed Kubernetes offerings, both on prem. Both have free open-source editions that mostly mirror what you'll get in the Enterprise offering at smaller scale. Rancher is also less "enterprisey" in that they aren't as aggressive about enterprise support or upsells, at least from what I've heard.
I think you'll be locked into big contracts with either option, but Pivotal's lock-in is tighter, at least from what I can tell. This could change after IBM fully moves in, however.
Then we are not doing our job. I am happy to talk to you and/or to put you in touch with any team you want to give feedback to.
What does your build process look like? Can you use CF buildpacks in your Kubernetes cluster? A built-in system for building and deploying your application when you push to a Git repo seems like a real advantage of CF to me.
(OpenShift uses https://github.com/openshift/source-to-image which works like CF buildpacks)
Gitkube thread on HN: https://news.ycombinator.com/item?id=16574893
I bet you do it on AWS or GCP, right? Try on-prem, then check your headackes again. ;-)
My opinion of the product is that it is designed for organizations that are heavily invested in the VMware ecosystem that want to maintain that developer-operator separation through the guise of a PaaS with as little code or ramp-up (or investment from their own people) as possible.
As a dev, my gripes with PCF are as follows:
1) PCF is massive. You need at least 20 instances to run it...and that's without any workloads on top of it. (If you are on AWS, the from-scratch installation instructions require that you bump your EC2 instance count minimums to 50 across several different instance sizes. Yikes.) It is very clearly designed for companies that already have a significant VMware footprint in house. Running it on AWS (I don't think Pivotal supports running it on Azure or GCP, but I could be wrong) is a very expensive exercise in futility. You cannot _just_ install PCF on your local machine unless you use PCF Dev or cf-local, both of which remove a lot to provide some semblance of parity to a larger install. (You also can't _just_ install PCF Dev either like you can with minikube or Swarm; you need to have a Pivotal account (free) and then download it from the Pivotal network. This can be automated, but it requires a lot of steps.) This leads me to...
2) There's no real way to test that code on your laptop will work in a production PCF deployment since the infrastructure they run on top of can differ heavily (that's not including the labor involved in getting a local PCF instance running on your machine in the first place). Docker and, by proxy, Kubernetes make it easy to do this since you're deploying images, not code. While PCF uses LXC containers behind the scenes via Diego, they rely on buildpacks as the runtime mechanism. This slows deployment time down since you're effectively installing everything from scratch on every deploy, and it just feels heavier weight than working with Docker images.
3) The PCF community is mostly comprised of large enterprises hidden behind paid Pivotal contracts. Getting help on PCF issues from the Internet is quite hard, and it's pretty clear that Pivotal is driving a lot of the development behind the product despite CF being an open-source project funded by the CF foundation. (Apparently raw CF is quite different from PCF, though I haven't tried it myself and the lack of community excitement around it doesn't make me want to).
4) PCF licensing is expesnive. Combined with (1), you basically need to be a multi-$B company to afford it. See also: this (https://news.ycombinator.com/item?id=16663077).
As a not-yet-so-still-armchair tech manager, my main gripe with it is that managed Kubernetes products might be closer to IaaS than PaaS, but they offer the same level of application abstraction and deployment that PCF does with a SIGNIFICANTLY smaller footprint while having a significantly larger community driving its success. This gap will become even tighter as KNative, Helm and others mature. I personally like products that are vetted by companies large and small, not just enterprises. PCF is the latter, Kubernetes and others are the former.
The things I like most about Kubernetes that aren't present in PCF are:
1. Using container images to deploy by default instead of code + buildpacks so that I have greater confidence in my code working in Production (yes, PCF supports it, but PCF org admins can and probably will turn that off).
2. More flexibility around networking (PCF basically requires VMware/Cisco networking, whereas Kubernetes does everything through CNI plugins)
3. Being able to configure all of Kubernetes through manifests instead of solely the application
4. Kubernetes is purely open-source and has one of the strongest open-source communities behind it. Unlike CF, who really only seems to suit PCF and it's enterprise variants (IBM Bluemix comes to mind), the CNCF is a real foundation that supports all sorts of cloud-native applications from all sorts of paths. OpenShift, Red Hat's enterprise take on it, contributes heavily to the project while still managing to sell to the same market that PCF is after.
The use case of PCF is weak especially when Kubernetes does everything it can do. It just sells enterprise fluff to "architects" in suits who haven't touched code in years and are so far from the reality of Devs working day to day.
The time it took me to migrate a Java spring boot service from AWS to GCP was around a day. Getting it to work with Pivotals way of doing things was more like a week.
We are now starting to do some of our infrastructure on Kubernetes, much less headache.
If anyone wants more info feel free to ask. My post might seem angry but as a developer I know better than the execs.