JAX DevOps: Mesosphere CEO Florian Leibert explained in a blog post that “Container 2.0 is the ability to run (and orchestrate) both stateless and stateful services on the same set of resources.” What’s your take on that?
Persistence is one of the challenges in today’s container landscape. Stateless containers are fairly easy to handle: for example, they can be rebooted on each and every node after failing. Stateful containers are not that easy, though. What will happen after some network issues were fixed and a container with persistent data goes back online when another instance has already been launched?
Container 2.0 addresses both stateful containers and the combination with “big data” frameworks like Spark, Cassandra, Kafka, ideally running on the same cluster as the container.
JAX DevOps: What does innovation mean to you?
Sure! My session at JAX DevOps is all about container 2.0, resource (CPU, mem, disk) sharing between all parts of your datacenter and how DC/OS can help you to use your cluster in the most efficient way. When doing static partitioning within your datacenter, you need to optimize each part individually against peaks and failures. If your infrastructure is capable of being shared across your microservices, traditional databases, as well as big data and fast data applications, you are able to be more flexible in case of scaling, utilization, fault tolerance and also be able to save nodes and therefore money.
JAX DevOps: What is the next step in the container world?
In the field of shipping containers to production easily and running them reliably, there have been many interesting novelties recently. In the current discussion, it’s particularly interesting for me to see how fast levels are changing. Be it on some fine-grained field like in the controversial discussion about Docker runtime or on some abstract level addressing how to run hundreds or thousands of containers. Furthermore, it’s interesting to keep an eye on the development of different standards like CNI for networking.
JAX DevOps: What are your favourite container tools right now?
Maybe I am a little bit biased because I am helping to build DC/OS but I really like using and extending DC/OS :-). I like the flexibility of DC/OS and the underlying Apache Mesos to run Docker containers, containers out of AppC images or regular programs isolated (a.k.a containerized) on the fly by Apache Mesos itself. And more than this, you could also choose if you want to use Docker daemon or run Docker images directly on Mesos universal containerize.
JAX DevOps: Why should developers be interested in container technologies? What’s in it for them?
Because they can make your life easier. Containers make it really easy to share applications with all dependencies in one single archive, which is executable on each suitable container runtime. Infrastructure like Docker hub makes developer life so easy in comparison with the time where it took more than one shell command to launch a particular application.
The other big advantage is that using containers makes us think about what is needed inside the container. It is necessary to have a fully automated setup of the container and therefore have a full documentation what is needed to launch and operate an application. And all this in a human readable Dockerfile.
JAX DevOps: Are containers useful for the implementation of DevOps?
Sure. When talking about documenting dependencies and easily sharing applications, we are at the point of making it easy to build automated infrastructure. Now you have easy to share and easy to start applications, which do not have dependencies on the host machine, except the container runtime. On top you tools like DC/OS which supports to run your container landscape and expose an API to develop automation.
JAX DevOps: What should participants learn from your session at JAX DevOps?
Johannes Unterstein: This session is all about container 2.0 and best practices for keeping them running in production environments. Current container technology enables us to launch containers dynamically all across our datacenter but we still have persistent data somewhere within our applications. And we want to keep our data, even if a container fails or -even worse- if an entire node fails.
On the other hand, a huge amount of nodes is required to run big data and fast data applications, which usually have different scheduling strategies than containers.
To maximize cluster resource utilization and be more flexible in terms of scaling and fault tolerance it is good to avoid static cluster partitioning and run all parts of the application in the same datacenter. Often evaluations stop once a POC has been successfully deployed, but the actual challenge in my experience to keep it running despite upgraded and the above-mentioned failure cases. That is why we will spend some time on discussing best practices for so-called Day 2 operations which include monitoring, debugging, upgrades, and failure handling.
Please complete the following questions:
Dev and Ops work best together if … they communicate well and understand all facets of both worlds.
The biggest obstacle for DevOps is … communication.
What promotes employee satisfaction is … having fun doing work that matters.
The biggest advantage of autonomously-working teams is … having full control over development, deployment and operations.
It is important for a positive company culture to … communicate.
Wed. 05 APR 2017,
09:00 – 09:50