It seems to me that there's something of a gap between "for single machine setups" (eg docker-compose) and "for 500-engineer teams" (eg kubernetes).
It seems to me that there's something of a gap between "for single machine setups" (eg docker-compose) and "for 500-engineer teams" (eg kubernetes).
Kubernetes is awesome of many reasons, but it's a big step from a single server setup to full Kubernetes and there are plenty of options in between. We're able to scale large national infrastructure projects using VMs and loadbalancers, but we also deploy run stuff on Kubernetes. The thing is: when stuff breaks, you'll prefer that it's not the Kubernetes stuff.
If you run the infrastructure your self, you should be VERY sure that you know how it works, because debugging it is extremely complex.
But we've had a lot of success with running on GKE. The tool that we're making takes away the complexity of building, testing and deploying the stack, and GKE takes care of running it.
In fact we use GKE for both our development and staging/prod environments.
There are a lot of great tools out there that vastly improve the K8s developer experience[1] and the cloud providers take away of the pain of operating it. And with tools like Terraform and Pulumi you can codify the whole setup.
Here's an example of how you can quite easily get started on GKE: https://medium.com/garden-io/gke-and-cloud-sql-a-complete-wo...
Here's a video of the same workflow: https://www.youtube.com/watch?v=iHyeD97GrE4.
[1]
https://github.com/GoogleContainerTools/skaffold
Single monolithic application? Can run on a VM.
Multiple smaller applications written in Java, C# or Go? Can probably run side by side on a VM.
Almost too simple to work, but it does ;)
Also you're not paying $80 per control plane, they're free.
Unfortunately version 1 is abandoned now (I think) but it’s stable and I haven’t had any problems with it. Give it a go.
Swarm is so simple. Few commands and you can start scaling, routing, load balancing, desired state reconciliation
https://docs.docker.com/compose/production/#running-compose-...
Yeah, there is a concern about the docker swarm future: https://github.com/docker/swarm/issues/2965 But mirantis just last week announced they will support and INVEST in docker swarm: https://www.mirantis.com/blog/mirantis-will-continue-to-supp...
From an ops point of view it’s simple to deploy and I’m yet to hit any really sharp edges. However the lack of cronjobs and init containers is an annoyance, but you can work around them.
Mirantis’ recent announcement of further dev on Swarm after the initial announcement of only 2 years of support has not helped. I had been looking at moving to k8s. I’m now undecided if we should just continue with the plan to dump Swarm or keep it.