We are currently using Docker images locally and compose them together with docker-compose. Compose is using a custom devDockerfile identical to the normal Dockerfile, plus a self-reloading / self-compiling webserver.
For deployment we are using AWS EB and push the same Dockerfile (minus the self-reloading webserver). For heavy load applications, we use autoscaling behind a AWS loadbalancer.
Is Kubernetes giving us something over our current Docker setup? Can it improve on our workflow?
Is the time investment for learning this worth it for private projects vs plain Docker that can get pushed to Heroku / Google / AWS?
I have Kubernetes on my list of things I want to check out but every time I go into the getting started guides for local environments, it seems like a lot of work for just setting the environment up.
One of the things I love Docker is that I can write the Dockerfile and everyone from our team can very easily use it and immediately has the app running. No Docker? Just install Docker and compose through brew or download it from the website. That's it.
I think it won't give you much in Dev but can give your more in production. We have the following work flow
1. Use Docker images for our applications where we can run them locally by mounting in a config file pointing to local db or dev cluster db etc
2. We then use CI to build new docker images and push them to our registry
3. Using Kubernetes deployment yaml files we then deploy the new versions to the cluster with rolling upgrades.
This can be combined with auto scaling
For config we have a Kubernetes ConfigMap in the cluster which then gets mounted into the docker containers when they start.
My suggestions would be for you to check out Googles Hosted Kubernetes which removes a lot of the headache of getting up and running.
https://cloud.google.com/container-engine/
I still use docker-compose in development even with k8s in production. I recommend you checkout kdm (recently released in k8s 1.4) which will help you setup a cluster on a single node in less than 5 minutes.
As for time investment, k8s is kind of an all-in-one solution. It will take care of rolling updates, container restarts, monitoring so you won't have to roll your own solution. It will definitely improve your workflow. Kubernetes also takes advantage of declarative configuration files so it's super easy to bring up a new cluster somewhere else by just applying your config files again.
Also, Kubernetes is a good investment because it's not tied completely to Docker. Whatever container technology reigns supreme in the future should work with k8s no matter what.
Curious: Does the usage of CoreOS replace Docker OSX's virtualbox linux VM it uses? And if not, is there any reason why KubeSolo couldn't be designed to run on that VM, just to save resources?
We are currently using Docker images locally and compose them together with docker-compose. Compose is using a custom devDockerfile identical to the normal Dockerfile, plus a self-reloading / self-compiling webserver.
For deployment we are using AWS EB and push the same Dockerfile (minus the self-reloading webserver). For heavy load applications, we use autoscaling behind a AWS loadbalancer.
Is Kubernetes giving us something over our current Docker setup? Can it improve on our workflow?
Is the time investment for learning this worth it for private projects vs plain Docker that can get pushed to Heroku / Google / AWS?
I have Kubernetes on my list of things I want to check out but every time I go into the getting started guides for local environments, it seems like a lot of work for just setting the environment up. One of the things I love Docker is that I can write the Dockerfile and everyone from our team can very easily use it and immediately has the app running. No Docker? Just install Docker and compose through brew or download it from the website. That's it.