Zog1ontu4cc2puwevidv
SkillsCast

The JVM and Docker

21st June 2016 in London at CodeNode

This SkillsCast was filmed at The JVM and Docker: a good idea?

Containers are the latest hype. It goes without saying that Docker for the development environment is a good thing but what about running our production Java applications inside a container? This talk will cover all the pain points from running hundreds of JVMs inside containers over the last year. One of the well-known benefits of containers is that they provide a self-contained way to package and ship applications. However, it is already common practice to build fat executable jars that require only a JRE so what advantages would containers actually offer a pure Java shop? We will cover the following topics: - The benefits, downsides and complexities of running a Java application inside a container. - Tuning memory limits taking into account Heap, Native memory, Metaspace, Stacks to avoid being OOM killed - Tracking native memory with jcmd - Avoiding the container swap problem - Operating system tools that are/are not container aware and when they will come in handy: top, htop, dstat, dmesg, systemd-cgtop - What tools should you include in your container for debugging/analysis e.g. the Swiss Java Tools [https://github.com/aragozin/jvm-tools](https://github.com/aragozin/jvm-tools) - External tools for monitoring containers: prometheus, cadvisor, heapster - Tuning thread pools for various frameworks/servers such as Jetty, Tomcat, Ratpack, GC - Motivation for moving to non-blocking frameworks like Ratpack to avoid the cost of one thread per request

YOU MAY ALSO LIKE:

Thanks to our sponsors

The JVM and Docker

Christopher Batey

Christopher is a Senior Engineer at Lightbend. He is currently on the core Akka team responsible for developing Akka (https://akka.io/), Akka Http, Akka Streams, Reactive Kafka and Alpakka (https://github.com/akka/alpakka). He has previously built trading systems, online television platforms and worked extensively with Apache Cassandra. Likes: Scala, Java, the JVM, Akka, distributed databases, XP, TDD, Pairing. Dislikes: Untested software and code ownership.

SkillsCast

Containers are the latest hype. It goes without saying that Docker for the development environment is a good thing but what about running our production Java applications inside a container? This talk will cover all the pain points from running hundreds of JVMs inside containers over the last year. One of the well-known benefits of containers is that they provide a self-contained way to package and ship applications. However, it is already common practice to build fat executable jars that require only a JRE so what advantages would containers actually offer a pure Java shop? We will cover the following topics: - The benefits, downsides and complexities of running a Java application inside a container. - Tuning memory limits taking into account Heap, Native memory, Metaspace, Stacks to avoid being OOM killed - Tracking native memory with jcmd - Avoiding the container swap problem - Operating system tools that are/are not container aware and when they will come in handy: top, htop, dstat, dmesg, systemd-cgtop - What tools should you include in your container for debugging/analysis e.g. the Swiss Java Tools [https://github.com/aragozin/jvm-tools](https://github.com/aragozin/jvm-tools) - External tools for monitoring containers: prometheus, cadvisor, heapster - Tuning thread pools for various frameworks/servers such as Jetty, Tomcat, Ratpack, GC - Motivation for moving to non-blocking frameworks like Ratpack to avoid the cost of one thread per request

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

The JVM and Docker

Christopher Batey

Christopher is a Senior Engineer at Lightbend. He is currently on the core Akka team responsible for developing Akka (https://akka.io/), Akka Http, Akka Streams, Reactive Kafka and Alpakka (https://github.com/akka/alpakka). He has previously built trading systems, online television platforms and worked extensively with Apache Cassandra. Likes: Scala, Java, the JVM, Akka, distributed databases, XP, TDD, Pairing. Dislikes: Untested software and code ownership.