All about containers: Big players are talking about creating a new standard
Customers want persistent data in this highly dynamic world of scheduling containers all over the place. To accommodate their request, the big players are talking about creating a new standard. JAXenter editor Gabriela Motroc talked to Johannes Unterstein, Distributed Applications Engineer at Mesosphere about this new standard, the next DC/OS release and the areas where containers really make a difference.
Containers revolutionize the way modern software is being developed and operated but even though they can make your life easier, there are certain problems that come with the territory. As a result, the big players such as Docker, Kubernetes, Mesosphere and more are talking about defining an interface to enable third-party storage providers to offer their services so that clients can connect from DC/OS, Docker or Kubernetes to these storage providers.
We talked to Johannes Unterstein, Distributed Applications Engineer at Mesosphere about this new standard, the next DC/OS release, how Mesosphere plans to take Container 2.0 to the next level and the areas where containers really make a difference.
If you want to hear more about containers from Johannes Unterstein, read this interview below:
“Container 2.0 addresses both stateful containers and the combination with ‘big data’ frameworks like Spark, Cassandra, Kafka.”
Earlier this year, we talked to Johannes Unterstein about container tools and technologies and containers’ usefulness in a DevOps context.
JAXenter: 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?
Johannes Unterstein: 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.
JAXenter: Is Container 2.0 already upon us? How does it look like — what are its key elements?
Johannes Unterstein: 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.
JAXenter: What is the next step in the container world?
Johannes Unterstein: 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.
JAXenter: What are your favorite container tools right now?
Johannes Unterstein: 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 containerizer.
JAXenter: Why should developers be interested in container technologies? What’s in it for them?
Johannes Unterstein: 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.
JAXenter: Are containers useful for the implementation of DevOps?
Johannes Unterstein: 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.