I've recently assisted to a O'Reilly training sessions in Safari about Kubernetes and my first impression about the tool is quite good, so I want to review the things I've liked more and the things I miss.
For those you don't know, Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It works natively with Docker to make easy both to deploy new versions of your app and scale them.
Although it was originally developed by Google (based on their internal project Borg), now is one of the most important projects for deployment projects with Apache Mesos and several of the big software companies apport to the project.
One of the things I like of the project is that is quite easy to setup a Kubernetes cluster in different environments (you can use it in the cloud on AWS and Google Cloud or in local with tools like minikube), and you can manage it both with a web interface or in the terminal, make it easier to make scripts to deploy new versions of your application.
The interface and commands seems to be quite easy to use, and the configurations, defined in yaml, are also quite straightforward to use. I particularly like how they give you the possibility of defining secrets for your application, so you can have the general configurations on your repository/docker image and keep safe your secrets.
The only thing that, for now, I've missed is the possibility to define the number of nodes of your application based on the resources of your application in each moment, instead of changing the number of nodes by hand when you need it. Maybe it's a functionality that is already there, but until now I didn't see the option.
There are examples on how to use Kubernetes for several applications, like wordpress, postgresql (with one master and one or several slaves), ..., so it shouldn't be too complicated to set your own configurations for your project. I've planned to play more with Kubernetes, so as soon as I have some examples to show I'll post them in here.