2. The interesting part of containers is the tooling people have built around them to make it easy to ship and run software stacks easily.
3. Building all this shit from primitives - downloading your own istio & k8s - is painful and will waste a lot of time and frustrate people.
Go get an opinionated k8s+containers solution that you can plumb into your dev tooling and will let you "commit code, spin up container fleet" easily, because that's the value: reliably increasing velocity.
OpenShift is one example I've worked with and like. There are others. Don't waste your time and money fucking around with individual bits of the stack.
I'd like to move these applications to a common platform, to reduce some of the maintenance burden, introduce monitoring, perform security audits, etc.
I vaguely imagine this platform as being self-service, where the user creates a project and points it to a git repository with a docker-compose.yml file, and then a minute later the service is reachable at https://projectxyz.____.edu.
I work at Red Hat, happy to answer questions. We also just released OpenShift 4.0, which brings in all the features from the CoreOS acquisition, like single push button kubernetes and OS upgrades.
For the record, I work on the OCI specs (and maintain runc and image-spec) and would really love it if people actually used the OCI formats and we could freely innovate in an open spec. But that's not really the world we live in.
(I'm aware containerd supports OCI images and most folks now support the runtime-spec. But how many people use containerd directly? Not to mention that since the OCI distribution-spec is creeping along so slowly everyone still converts back to Docker to actually publish the damn things.)
Docker / Kubernetes / Istio .
You need all three for good micro-service platform.
More complex != better.
I.e. install and standardize on both, but start using features as needed (of course).
I.e. I would rather find out any architecture issues with istio sooner, than trying to bolt it on top of some kuberentes only app.
Build serverless workloads and run them on whatever compute is available.
The the money you spend for being provider independent is the very money you save by going serverless.
Leaves the question: Is the risk worth the money saved?