CON Java in a World of Containers

Size: px
Start display at page:

Download "CON Java in a World of Containers"

Transcription

1 CON Java in a World of Containers mikael.vidstedt@oracle.com Director, Java Virtual Copyright 2017, Oracle and/or its affiliates. All rights reserved. 1

2 Agenda Producing images and running containers with JDK 9 Size analysis of JDK Docker Images A quick look at startup Tme 2

3 Java 8 Docker image Official Java 8 SE (Server JRE) available on the docker store See also DockerFiles on GitHub 3

4 In a world of containers we expect Many distributons of Java runtmes Forces that push towards Smaller images Faster executon using less resources (and respectng resource constraints) 4

5 Java has plans for a world of containers Official OpenJDK builds will make it easier to distribute Java runtmes Java 9 tooling can produce custom Java runtmes that are smaller Current and future Java tooling will produce applicaton- specific Java runtmes that startup faster 5

6 Producing Docker images with a JDK Very easy to create a DockerFile that copies (or adds) a tarball of a JDK A resultng Docker image will be large (> 300MB) Not necessarily good for development or executon More stuff than required to build or run an applicaton 6

7 JDK 9 is modular JDK 9 is modular and introduces modules to the Java plagorm A module is a set of packages designed for reuse Modules improve the reliability and maintainability of your programs JDK 9 is itself composed of 79 modules 7

8 JDK 9 and custom Java runtmes JDK 9 comes with jlink, a tool that can create custom Java runtmes Such as, a Java runtme consistng of just the java.base module Note: the Java applicaton need not be modular 8

9 Project Portola and Alpine Linux The OpenJDK Portola Project aims to provide a port of the JDK to the Alpine Linux distributon Early access builds of the JDK port are available jlink can be used to create custom Java runtmes for Alpine Linux 9

10 Demo Crea%ng Docker images with Alpine Linux, Java, and jlink 10

11 Running JDK 9 in Docker containers The JDK has not necessarily been a model citzen and respectng resource constraints when running in a container JDK 9 has a few improvements to respect resource constraints These improvements have been back ported to a JDK 9 release 11

12 RespecTng memory limits The JDK respects group memory limits set for the container (see docker run memory constraints) -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap 12

13 RespecTng CPU constraints The JDK respects some CPU constraints set for the container (see docker run cpuset constraint) java.lang.runtime.availableprocessors reports correct number of CPUs 13

14 Stable executon The JVM ensures stable executon when resources change G1 Garbage Collector operates on actve CPU count discovered at JVM startup 14

15 Ongoing improvements planned for future releases JDK Improve Docker container detecton and resource configuraton usage More robust container detecton logic EvaluaTng support for further docker run flags --cpus --cpu-quota --cpu-period --cpu-shares New -XX:ActiveProcessorCount flag Total and Avail memory extracted from cgroup /proc file system 15

16 Ongoing improvements planned for future releases JDK Allow selectng Heap % of available RAM Draq JEP: Container aware Java hrp://openjdk.java.net/jeps/ Provide Java API access to container metrics 16

17 Demo Running Java (jshell), in a docker container, and respec%ng resource constraints 17

18 For a more comprehensive demonstraton See tutorial on running and monitoring a Java applicaton in a Kubernetes cluster Docker images can be created and published using Wercker 18

19 Size Analysis Viewer discre%on advised: Bar charts ahead! 19

20 Docker Image Docker image using DockerFile FROM oraclelinux:7 ADD jdk linux- x64_bin.tar.gz JDK oraclelinux:7 Let s optmize! Size (MB) Full JDK 20

21 Streamlining the JRE using jlink Full JDK Default JDK (not jlink:ed) java.base jlink add-modules java.base nery A set of modules expected to be sufficient for many Java applicatons jlink --add-modules java.base, java.logging, java.management, java.xml, jdk.management, jdk.unsupported Note: Does not include the nery applicaton code! Size (MB) JDK oraclelinux: Full JDK netty java.base 21

22 Streamlining the base image oraclelinux:7 vs oraclelinux:7- slim oraclelinux:7 (229 MB) Contains Everything and then some Certainly more than Java needs oraclelinux:7- slim (118 MB) Streamlined to bare necessites Saves 111 MB Further optmizaton - Strip out individual files Analyze shared libraries/dependency graph and strip out unneeded files 22 Size (MB) oraclelinux:7 + Full JDK oraclelinux:7-slim + Full JDK oraclelinux:7 + java.base oraclelinux:7-slim + java.base JDK Base oraclelinux:7 + netty oraclelinux:7-slim + netty

23 Small. Simple. Secure. Alpine Linux is a security- oriented, lightweight Linux distributon based on musl libc and busybox. hrps:// 23

24 Docker Base Images Docker base image sizes Size (MB) oraclelinux:7 oraclelinux:7-slim alpine:3.6 24

25 Java Images Based on alpine: Size (MB) JDK alpine: Full JDK java.base netty 25

26 OpTmizing java.base with jlink optons default: no special optons --compress=2 ZIP compression of resources --strip-debug Remove all debug informaton Don t try this at home! Size (MB) JDK alpine: default 4 compress=2 4 compress=2 strip-debug 26

27 but wait, there s more! What s the theoretcal minimum? What s actually in a java.base JRE? Files Size (bytes) lib/modules 23,529,047 lib/server/libjvm.so 21,197,904 <other files> 1,545,818 Sum 46,272,769 27

28 JVM Size Note: Numbers/sizes are approximate 28

29 JVM Size JIT Compiler(s) 29

30 JVM Size GC(s) 30

31 JVM Size Let s keep one GC: Serial 31

32 JVM Size - Other 32

33 The minimal VM 25.0 Size of JVM variants The minimal VM weighs in at just under 5MB STll fully Java compliant Size (MB) But Lacks many/most of the additonal features No JIT compiler Only Serial GC Very few debugging/serviceability features 0.0 server minimal Probably not a good match for producton use- cases, but an interestng data point 33

34 A minimal Docker image HelloWorld in ~20MB Including the Alpine base image minimal VM + java.base More extreme Java runtmes available can bring this down even further (with some limitatons) SubstrateVM from Oracle Labs Size (MB) JDK libjvm.so alpine: default compress=2 strip-debug 34

35 Future: Stripping out unused classes Not every class in a module is necessarily used by the applicaton Finding out which classes to use is non- trivial Indeterminism (haltng problem) ReflecTon Area of research, stay tuned #classes Size (bytes) All java.base classes ,178,884 Classes used by HelloWorld 506 8,796,290 9% 46% 35

36 Sharing across instances

37 Sharing Across Instances Micro- services and Docker encourages running many processes on the same machine Chances are many instances will be running the exact same applica%on OS shared libraries allows for sharing natve data libc, libjvm.so all get shared automatcally by the OS & Docker Assuming same layer/file/inode What about Java class data? 37

38 Class Data Sharing (CDS) Dump Tme Dump Tme process / training run Preload a set of classes Classes are parsed into their Java VM private internal representatons (class metadata) Metadata is split into read- only (RO) and read- write (RW) parts, and allocated in separate memory regions All loaded class metadata is saved to a file (the shared archive) New in JDK 9: Applica%on Class Data Sharing (AppCDS) ApplicaTon classes are supported B.class A.class C.class CDS archive 38

39 Class Data Sharing (CDS) - RunTme Archive is memory- mapped RO pages shared, RW pages are shared copy- on- write Classes read from mapped memory without overhead of searching, reading & parsing from JAR files Like shared libraries, archive can be shared across Docker containers 39

40 AppCDS Benefits - Startup Tme and Footprint Example: WebLogic Server Base Domain Time (s) Startup Time 7.7 Size (MB) - Note: Logarithmic! Footprint 4,634 No AppCDS AppCDS 4,073 4, , No AppCDS AppCDS 1 Unique Shared Total Sharing & savings increases with every instance With 10 instances there is ~10% saving in total memory footprint 40

41 Summary OpTmizing a Java Docker Image The naïve Java Docker image is large - 229MB base + 568MB JDK = 797MB Can be significantly reduced Using an appropriate base image 117MB for oraclelinux:7- slim 4MB for alpine:3.6 CreaTng a custom jlinked JRE ~60MB for nery ~46MB for java.base HelloWorld can be packaged with a full JVM in ~30MB AppCDS enables sharing class data across JVM instances and Docker containers 41

42 A quick look at startup Tme 42

43 Ahead- of- Time (AOT) compilaton Does with JIT compiled Java code what AppCDS does with Java class data Pre- compile to shared library: jaotc --output libhelloworld.so HelloWorld.class Use in subsequent runs: java -XX:AOTLibrary=libHelloWorld.so HelloWorld Experimental functonality introduced in JDK 9 Only on linux- x64, other plagorms to follow Benefits Startup performance Reduces Tme to peak performance Saves on footprint by sharing across instances Not- so- secret plan: use for enabling Java- based JIT compiler OpenJDK Project Metropolis aims to move JVM functonality to Java 43

44 Docker+Java startup Tme Example Applica%on Host java Create socket Setup java arguments for ProcessBuilder Start docker image with Java app Docker java Create socket and connect to host Send message and exit 44

45 ExecuTon Analysis Average Startup Time for 50 clients in ms Java no CDS or AOT Java with APPCDS & AOT 600 GO SVM Host Docker Run Docker Exec 45

46 ====================================================================== CDS AOT GC Average start-up time for 50 iterations ====================================================================== NO NO Parallel task-clock (msec) # CPUs utilized ( % ) NO NO ParallelOld task-clock (msec) # CPUs utilized ( % ) NO NO G task-clock (msec) # CPUs utilized ( % ) NO NO Serial task-clock (msec) # CPUs utilized ( % ) NO YES Parallel task-clock (msec) # CPUs utilized ( % ) NO YES ParallelOld task-clock (msec) # CPUs utilized ( % ) NO YES G task-clock (msec) # CPUs utilized ( % ) NO YES Serial task-clock (msec) # CPUs utilized ( % ) YES NO Parallel task-clock (msec) # CPUs utilized ( % ) YES NO ParallelOld task-clock (msec) # CPUs utilized ( % ) YES NO G task-clock (msec) # CPUs utilized ( % ) YES NO Serial task-clock (msec) # CPUs utilized ( % ) YES YES Parallel task-clock (msec) # CPUs utilized ( % ) YES YES ParallelOld task-clock (msec) # CPUs utilized ( % ) YES YES G task-clock (msec) # CPUs utilized ( % ) YES YES Serial task-clock (msec) # CPUs utilized ( % ) 46

47 Q&A 47

48 Stay connected Join us: DevOps Corner (Developer Lounge Moscone West) Learn more: openjdk.java.net #JavaOne #DevOps 48

49

50 Example DockerFile (jdk-9-alpine.dockerfile) for building an image with JDK 9 # A JDK 9 development image for building FROM alpine:3.6 # Add the musl- based JDK 9 distribution RUN mkdir /opt # Download from ADD jdk- 9- ea+181_linux- x64- musl_bin.tar.gz /opt # Set up env variables ENV JAVA_HOME=/opt/jdk- 9 ENV PATH=$PATH:$JAVA_HOME/bin CMD ["java", "- version"] ConfidenTal Oracle Internal/Restricted/Highly Restricted 50

51 Example script (link.sh) using jlink to produce a smaller JDK 9 distributon #!/bin/sh rm - fr jdk- 9- base- ea+181_linux- x64- musl docker run - - rm \ - - volume $PWD:/out \ jdk- 9- alpine \ jlink - - module- path /opt/jdk- 9/jmods \ - - add- modules java.base \ - - compress 2 \ - - no- header- files \ - - output /out/jdk- 9- base- ea+181_linux- x64- musl ConfidenTal Oracle Internal/Restricted/Highly Restricted 51

52 Example DockerFile (jdk-9-base-alpine.dockerfile) for building an image with a custom JDK 9 distributon # Make a docker image with a jlink'ed JDK 9 FROM alpine:3.6 # Add jlink'ed JDK 9 ADD jdk- 9- base- ea+181_linux- x64- musl /opt/jdk- 9 # Set up env variables ENV JAVA_HOME=/opt/jdk- 9 ENV PATH=$PATH:$JAVA_HOME/bin CMD ["java", "- version"] ConfidenTal Oracle Internal/Restricted/Highly Restricted 52

53 Commands to build images # Build an image with JDK 9 docker build - t jdk- 9- alpine - f jdk- 9- alpine.dockerfile. # Create a custom JDK 9 distribution with just the java.base module bash link.sh # Build an image with the custom JDK 9 distribution docker build - t jdk- 9- base- alpine - f jdk- 9- base- alpine.dockerfile. # Run the image docker run - - rm jdk- 9- base- alpine java - - list- modules ConfidenTal Oracle Internal/Restricted/Highly Restricted 53

54 jshell snippets (snippets.txt) long javamaxmem() { return Runtime.getRuntime().maxMemory(); } import java.nio.file.*; long sysmaxmem() throws IOException { return Files.lines(Paths.get("/sys/fs/cgroup/memory/memory.limit_in_bytes")).mapToLong(Long::valueOf).findFirst().getAsLong(); } ConfidenTal Oracle Internal/Restricted/Highly Restricted 54

55 jshell in Docker executon commands # Run without resource restrictions docker run \ - - rm - it - - volume $PWD:/in jdk- 9- alpine \ jshell /in/snippets.txt # Run with resource restrictions but no Java configutation docker run - m=384m - - cpuset- cpus=0 \ - - rm - it - - volume $PWD:/in jdk- 9- alpine \ jshell /in/snippets.txt # Run with resource restrictions and Java configutation docker run - m=384m - - cpuset- cpus=0 \ - - rm - it - - volume $PWD:/in jdk- 9- alpine \ jshell /in/snippets.txt \ - J- XX:+UnlockExperimentalVMOptions - J- XX:+UseCGroupMemoryLimitForHeap \ - R- XX:+UnlockExperimentalVMOptions - R- XX:+UseCGroupMemoryLimitForHeap ConfidenTal Oracle Internal/Restricted/Highly Restricted 55

Java in a World of Containers

Java in a World of Containers Java in a World of Containers mikael.vidstedt@oracle.com Not-coder, JVM @MikaelVidstedt matthew.gilliard@oracle.com Coder, not-jvm @MaximumGilliard Copyright 2017, Oracle and/or its affiliates. All rights

More information

Java in a World of Containers

Java in a World of Containers Java in a World of Containers mikael.vidstedt@oracle.com Director, JVM @MikaelVidstedt Copyright 2018, Oracle and/or its affiliates. All rights reserved. 1 Safe Harbor Statement The following is intended

More information

JDK 9/10/11 and Garbage Collection

JDK 9/10/11 and Garbage Collection JDK 9/10/11 and Garbage Collection Thomas Schatzl Senior Member of Technical Staf Oracle JVM Team May, 2018 thomas.schatzl@oracle.com Copyright 2017, Oracle and/or its afliates. All rights reserved. 1

More information

What a Year! Java 10 and 10 Big Java Milestones

What a Year! Java 10 and 10 Big Java Milestones What a Year! Java 10 and 10 Big Java Milestones Java has made tremendous strides in the past 12 months, with exciting new features and capabilities for developers of all kinds. Table of Contents INTRODUCTION

More information

New Java performance developments: compilation and garbage collection

New Java performance developments: compilation and garbage collection New Java performance developments: compilation and garbage collection Jeroen Borgers @jborgers #jfall17 Part 1: New in Java compilation Part 2: New in Java garbage collection 2 Part 1 New in Java compilation

More information

Ahead of Time (AOT) Compilation

Ahead of Time (AOT) Compilation Ahead of Time (AOT) Compilation Vaibhav Choudhary (@vaibhav_c) Java Platforms Team https://blogs.oracle.com/vaibhav Copyright 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement

More information

The Z Garbage Collector Low Latency GC for OpenJDK

The Z Garbage Collector Low Latency GC for OpenJDK The Z Garbage Collector Low Latency GC for OpenJDK Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team Jfokus VM Tech Summit 2018 Safe Harbor Statement The following is intended to outline our

More information

Shaping the future of Java, Faster

Shaping the future of Java, Faster Shaping the future of Java, Faster Georges Saab Vice President, Java Platform Group Oracle, Corp Twitter: @gsaab Safe Harbor Statement The following is intended to outline our general product direction.

More information

Best Practices for Developing & Deploying Java Applications with Docker

Best Practices for Developing & Deploying Java Applications with Docker JavaOne 2017 CON7957 Best Practices for Developing & Deploying Java Applications with Docker Eric Smalling - Solution Architect, Docker Inc. @ericsmalling Who Am I? Eric Smalling Solution Architect Docker

More information

The G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017

The G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017 The G1 GC in JDK 9 Erik Duveblad Senior Member of Technical Staf racle JVM GC Team ctober, 2017 Copyright 2017, racle and/or its affiliates. All rights reserved. 3 Safe Harbor Statement The following is

More information

SQL Server inside a docker container. Christophe LAPORTE SQL Server MVP/MCM SQL Saturday 735 Helsinki 2018

SQL Server inside a docker container. Christophe LAPORTE SQL Server MVP/MCM SQL Saturday 735 Helsinki 2018 SQL Server inside a docker container Christophe LAPORTE SQL Server MVP/MCM SQL Saturday 735 Helsinki 2018 Christophe LAPORTE ~ since 1997 : SQL 6.5 / WinNT4 christophe_laporte@hotmail.fr http://conseilit.wordpress.com/

More information

Deployment Patterns using Docker and Chef

Deployment Patterns using Docker and Chef Deployment Patterns using Docker and Chef Sandeep Chellingi Sandeep.chellingi@prolifics.com Agenda + + Rapid Provisioning + Automated and Managed Deployment IT Challenges - Use-cases What is Docker? What

More information

The Z Garbage Collector An Introduction

The Z Garbage Collector An Introduction The Z Garbage Collector An Introduction Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team FOSDEM 2018 Safe Harbor Statement The following is intended to outline our general product direction.

More information

Runtime Application Self-Protection (RASP) Performance Metrics

Runtime Application Self-Protection (RASP) Performance Metrics Product Analysis June 2016 Runtime Application Self-Protection (RASP) Performance Metrics Virtualization Provides Improved Security Without Increased Overhead Highly accurate. Easy to install. Simple to

More information

Dynamic Vertical Memory Scalability for OpenJDK Cloud Applications

Dynamic Vertical Memory Scalability for OpenJDK Cloud Applications Dynamic Vertical Memory Scalability for OpenJDK Cloud Applications Rodrigo Bruno, Paulo Ferreira: INESC-ID / Instituto Superior Técnico, University of Lisbon Ruslan Synytsky, Tetiana Fydorenchyk: Jelastic

More information

Who is Docker and how he can help us? Heino Talvik

Who is Docker and how he can help us? Heino Talvik Who is Docker and how he can help us? Heino Talvik heino.talvik@seb.ee heino.talvik@gmail.com What is Docker? Software guy view: Marriage of infrastucture and Source Code Management Hardware guy view:

More information

Certified Core Java Developer VS-1036

Certified Core Java Developer VS-1036 VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure

More information

DevOps in the Cloud A pipeline to heaven?! Robert Cowham BCS CMSG Vice Chair

DevOps in the Cloud A pipeline to heaven?! Robert Cowham BCS CMSG Vice Chair DevOps in the Cloud A pipeline to heaven?! Robert Cowham BCS CMSG Vice Chair Agenda Definitions, History & Background Cloud intro DevOps Pipelines Docker containers Examples 2 Definitions DevOps Agile

More information

JDK 9, 10, 11 and Beyond: Delivering New Features in the JDK

JDK 9, 10, 11 and Beyond: Delivering New Features in the JDK JDK 9, 10, 11 and Beyond: Delivering New Features in the JDK Copyright Azul Systems 2015 Simon Ritter Deputy CTO, Azul Systems azul.com @speakjava 1 JDK 9: Big And Small Changes 2 Java Platform Module

More information

Docker und IBM Digital Experience in Docker Container

Docker und IBM Digital Experience in Docker Container Docker und IBM Digital Experience in Docker Container 20. 21. Juni 2017 IBM Labor Böblingen 1 What is docker Introduction VMs vs. containers Terminology v Docker components 2 6/22/2017 What is docker?

More information

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39 Index A --add-exports option, 28, 134 136, 142, 192 Apache Maven compatibility, 214 Compiler plugin, 212, 214 goals, 209 JDeps plugin goals, 210 options, 211 JEP 223 New Version-String scheme, 209 Automatic

More information

Oracle Container Natve Applicaton Development Platorm. Edgars Ruņģis Cloud Soluton Architect

Oracle Container Natve Applicaton Development Platorm. Edgars Ruņģis Cloud Soluton Architect Oracle Container Natve Applicaton Development Platorm Edgars Ruņģis Cloud Soluton Architect Buzzwords You Might Hear Isto Java Kubernetes DevOps CI/CD Microservices CD Container Natve DevOps CI Isto Pipelines

More information

Real Time: Understanding the Trade-offs Between Determinism and Throughput

Real Time: Understanding the Trade-offs Between Determinism and Throughput Real Time: Understanding the Trade-offs Between Determinism and Throughput Roland Westrelin, Java Real-Time Engineering, Brian Doherty, Java Performance Engineering, Sun Microsystems, Inc TS-5609 Learn

More information

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups MODULE 1 JAVA PLATFORMS Identifying Java Technology Product Groups Java SE Platform Versions Year Developer Version (JDK) Platform 1996 1.0 1 1997 1.1 1 1998 1.2 2 2000 1.3 2 2002 1.4 2 2004 1.5 5 2006

More information

Android meets Docker. Jing Li

Android meets Docker. Jing Li Android meets Docker Jing Li 1 2 > 50 cities in Europe 3 Developer Story 4 Pain in the Admin provision machines ( e.g. mobile CI ) 5 Containerization vs Virtualization 6 Why Docker? Docker Vagrant Resource

More information

JVM Memory Model and GC

JVM Memory Model and GC JVM Memory Model and GC Developer Community Support Fairoz Matte Principle Member Of Technical Staff Java Platform Sustaining Engineering, Copyright 2015, Oracle and/or its affiliates. All rights reserved.

More information

The Z Garbage Collector Scalable Low-Latency GC in JDK 11

The Z Garbage Collector Scalable Low-Latency GC in JDK 11 The Z Garbage Collector Scalable Low-Latency GC in JDK 11 Per Lidén (@perliden) Consulting Member of Technical Staff Java Platform Group, Oracle October 24, 2018 Safe Harbor Statement The following is

More information

Optimising Multicore JVMs. Khaled Alnowaiser

Optimising Multicore JVMs. Khaled Alnowaiser Optimising Multicore JVMs Khaled Alnowaiser Outline JVM structure and overhead analysis Multithreaded JVM services JVM on multicore An observational study Potential JVM optimisations Basic JVM Services

More information

Heimdall Data Access Platform Installation and Setup Guide

Heimdall Data Access Platform Installation and Setup Guide Heimdall Data Access Platform Installation and Setup Guide Heimdall Data Access Platform Installation and Setup Guide Heimdall Data Access Platform Installation and Setup Guide 1. General Information 1

More information

Java Without the Jitter

Java Without the Jitter TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency

More information

JamaicaVM Java for Embedded Realtime Systems

JamaicaVM Java for Embedded Realtime Systems JamaicaVM Java for Embedded Realtime Systems... bringing modern software development methods to safety critical applications Fridtjof Siebert, 25. Oktober 2001 1 Deeply embedded applications Examples:

More information

Shark. Hive on Spark. Cliff Engle, Antonio Lupher, Reynold Xin, Matei Zaharia, Michael Franklin, Ion Stoica, Scott Shenker

Shark. Hive on Spark. Cliff Engle, Antonio Lupher, Reynold Xin, Matei Zaharia, Michael Franklin, Ion Stoica, Scott Shenker Shark Hive on Spark Cliff Engle, Antonio Lupher, Reynold Xin, Matei Zaharia, Michael Franklin, Ion Stoica, Scott Shenker Agenda Intro to Spark Apache Hive Shark Shark s Improvements over Hive Demo Alpha

More information

Docker and Oracle Everything You Wanted To Know

Docker and Oracle Everything You Wanted To Know Docker and Oracle Everything You Wanted To Know June, 2017 Umesh Tanna Principal Technology Sales Consultant Oracle Sales Consulting Centers(SCC) Bangalore Safe Harbor Statement The following is intended

More information

Asterisk & the Docker revolution Some lessons from the trenches

Asterisk & the Docker revolution Some lessons from the trenches Asterisk & the Docker revolution Some lessons from the trenches Asterisk Africa Johannesburg - March 14, 2018 Presented by: Lenz Emilitri Founder, Loway @lenz Today s presentation Docker Benefits How it

More information

Docker A FRAMEWORK FOR DATA INTENSIVE COMPUTING

Docker A FRAMEWORK FOR DATA INTENSIVE COMPUTING Docker A FRAMEWORK FOR DATA INTENSIVE COMPUTING Agenda Intro / Prep Environments Day 1: Docker Deep Dive Day 2: Kubernetes Deep Dive Day 3: Advanced Kubernetes: Concepts, Management, Middleware Day 4:

More information

Java Performance: The Definitive Guide

Java Performance: The Definitive Guide Java Performance: The Definitive Guide Scott Oaks Beijing Cambridge Farnham Kbln Sebastopol Tokyo O'REILLY Table of Contents Preface ix 1. Introduction 1 A Brief Outline 2 Platforms and Conventions 2 JVM

More information

Dockerfile Best Practices

Dockerfile Best Practices Dockerfile Best Practices OpenRheinRuhr 2015 November 07th, 2015 1 Dockerfile Best Practices Outline About Dockerfile Best Practices Building Images This work is licensed under the Creative Commons Attribution-ShareAlike

More information

OS-caused Long JVM Pauses - Deep Dive and Solutions

OS-caused Long JVM Pauses - Deep Dive and Solutions OS-caused Long JVM Pauses - Deep Dive and Solutions Zhenyun Zhuang LinkedIn Corp., Mountain View, California, USA https://www.linkedin.com/in/zhenyun Zhenyun@gmail.com 2016-4-21 Outline q Introduction

More information

Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH

Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH Highlights from Java 10, 11 and 12 and Future of Java Javaland 19.03.2019 by Vadym Kazulkin, ip.labs GmbH Contact Vadym Kazulkin, ip.labs GmbH v.kazulkin@gmail.com https://www.linkedin.com/in/vadymkazulkin

More information

Server Monitoring. AppDynamics Pro Documentation. Version 4.1.x. Page 1

Server Monitoring. AppDynamics Pro Documentation. Version 4.1.x. Page 1 Server Monitoring AppDynamics Pro Documentation Version 4.1.x Page 1 Server Monitoring......................................................... 4 Standalone Machine Agent Requirements and Supported Environments............

More information

Getting Started with Hadoop

Getting Started with Hadoop Getting Started with Hadoop May 28, 2018 Michael Völske, Shahbaz Syed Web Technology & Information Systems Bauhaus-Universität Weimar 1 webis 2018 What is Hadoop Started in 2004 by Yahoo Open-Source implementation

More information

Engineering Robust Server Software

Engineering Robust Server Software Engineering Robust Server Software Containers Isolation Isolation: keep different programs separate Good for security Might also consider performance isolation Also has security implications (side channel

More information

Advanced Modular Development

Advanced Modular Development Advanced Modular Development Alan Bateman Alex Buckley Java Platform Group, Oracle September 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. Sessions 1 2 3 4 5 Prepare for JDK 9

More information

J2EE Development Best Practices: Improving Code Quality

J2EE Development Best Practices: Improving Code Quality Session id: 40232 J2EE Development Best Practices: Improving Code Quality Stuart Malkin Senior Product Manager Oracle Corporation Agenda Why analyze and optimize code? Static Analysis Dynamic Analysis

More information

containerization: more than the new virtualization

containerization: more than the new virtualization containerization: more than the new virtualization Jérôme Petazzoni (@jpetazzo) Grumpy French DevOps - Go away or I will replace you with a very small shell script Runs everything in containers - Docker-in-Docker

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific

More information

Automating the Build Pipeline for Docker Container

Automating the Build Pipeline for Docker Container Automating the Build Pipeline for Docker Container Nikolai Reed, Jürgen Walter, and Samuel Kounev University of Würzburg November 9-10, 2017 SSP 2017 Karlsruhe, Germany 08.11.17 2 Reproducibility Problem

More information

Using the Singularity Research Development Kit

Using the Singularity Research Development Kit Using the Research Development Kit James Larus & Galen Hunt Microsoft Research ASPLOS 08 Tutorial March 1, 2008 Outline Overview (Jim) Rationale & key decisions architecture Details (Galen) Safe Languages

More information

Introduction to Mobile Development

Introduction to Mobile Development Introduction to Mobile Development Building mobile applications can be as easy as opening up the IDE, throwing something together, doing a quick bit of testing, and submitting to an App Store all done

More information

Docker 101 Workshop. Eric Smalling - Solution Architect, Docker

Docker 101 Workshop. Eric Smalling - Solution Architect, Docker Docker 101 Workshop Eric Smalling - Solution Architect, Docker Inc. @ericsmalling Who Am I? Eric Smalling Solution Architect Docker Customer Success Team ~25 years in software development, architecture,

More information

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1 SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable

More information

Notes of the course - Advanced Programming. Barbara Russo

Notes of the course - Advanced Programming. Barbara Russo Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................

More information

Welcome to the session...

Welcome to the session... Welcome to the session... Copyright 2013, Oracle and/or its affiliates. All rights reserved. 02/22/2013 1 The following is intended to outline our general product direction. It is intended for information

More information

Javaentwicklung in der Oracle Cloud

Javaentwicklung in der Oracle Cloud Javaentwicklung in der Oracle Cloud Sören Halter Principal Sales Consultant 2016-11-17 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information

More information

Ryan Sciampacone Senior Software Developer August 1 st Multitenant JVM. JVM Languages Summit IBM Corporation

Ryan Sciampacone Senior Software Developer August 1 st Multitenant JVM. JVM Languages Summit IBM Corporation Ryan Sciampacone Senior Software Developer August 1 st 2012 Multitenant JVM JVM Languages Summit 2012 Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL

More information

Optimizing Docker Images

Optimizing Docker Images Optimizing Docker Images Brian DeHamer - CenturyLink Labs bdehamer CenturyLinkLabs @bdehamer @centurylinklabs Overview Images & Layers Minimizing Image Size Leveraging the Image Cache Dockerfile Tips

More information

New Features Overview

New Features Overview Features pf JDK 7 New Features Overview Full List: http://docs.oracle.com/javase/7/docs/webnotes/adoptionguide/index.html JSR 334: Small language enhancements (Project Coin) Concurrency and collections

More information

Docker Live Hacking: From Raspberry Pi to Kubernetes

Docker Live Hacking: From Raspberry Pi to Kubernetes Docker Live Hacking: From Raspberry Pi to Kubernetes Hong Kong Meetup + Oracle CODE 2018 Shenzhen munz & more Dr. Frank Munz Dr. Frank Munz Founded munz & more in 2007 17 years Oracle Middleware, Cloud,

More information

Core Java JDK 9 Overview Angelika Langer & Klaus Kreft

Core Java JDK 9 Overview Angelika Langer & Klaus Kreft Core Java JDK 9 Overview Angelika Langer & Klaus Kreft Training/Consulting a quick glance at Java 9 Java 9 available since September, 21 2017 many new features (> 90 JEPs) "Collection Literals" "Compact

More information

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

Docker on Hadoop. Daniel Templeton Hadoop Cloudera. Cloudera, Inc. All rights reserved.

Docker on Hadoop. Daniel Templeton Hadoop Cloudera. Cloudera, Inc. All rights reserved. Docker on Hadoop Daniel Templeton Hadoop Commiter @ Cloudera 1 Me 2 One Slide on Docker Same general idea as a VM BUT there s only one OS image Parttoned process space Layered images Image repo 3 One Slide

More information

Designing experiments Performing experiments in Java Intel s Manycore Testing Lab

Designing experiments Performing experiments in Java Intel s Manycore Testing Lab Designing experiments Performing experiments in Java Intel s Manycore Testing Lab High quality results that capture, e.g., How an algorithm scales Which of several algorithms performs best Pretty graphs

More information

PARAMETERS Options may be in any order. For a discussion of parameters which apply to a specific option, see OPTIONS below.

PARAMETERS Options may be in any order. For a discussion of parameters which apply to a specific option, see OPTIONS below. NAME java Java interpreter SYNOPSIS java [ options ] class [ argument... ] java [ options ] jar file.jar [ argument... ] PARAMETERS Options may be in any order. For a discussion of parameters which apply

More information

Testing Lucene and Solr with various JVMs: Bugs, Bugs, Bugs

Testing Lucene and Solr with various JVMs: Bugs, Bugs, Bugs Testing Lucene and Solr with various JVMs: Bugs, Bugs, Bugs Uwe Schindler Apache Lucene Committer & PMC Member uschindler@apache.org http://www.thetaphi.de, http://blog.thetaphi.de @ThetaPh1 SD DataSolutions

More information

RECap: RunEscape Capsule for On-demand Managed Service Delivery in the Cloud

RECap: RunEscape Capsule for On-demand Managed Service Delivery in the Cloud RECap: RunEscape Capsule for On-demand Managed Service Delivery in the Cloud Shripad J Nadgowda, Sahil Suneja, Canturk Isci IBM T J Watson Research Center Evolution of application runtimes (General-purpose

More information

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes

More information

Running Splunk Enterprise within Docker

Running Splunk Enterprise within Docker Running Splunk Enterprise within Docker Michael Clayfield Partner Consultant 03/09/2017 1.1 Forward-Looking Statements During the course of this presentation, we may make forward-looking statements regarding

More information

Typical Issues with Middleware

Typical Issues with Middleware Typical Issues with Middleware HrOUG 2016 Timur Akhmadeev October 2016 About Me Database Consultant at Pythian 10+ years with Database and Java Systems Performance and Architecture OakTable member 3 rd

More information

docker & HEP: containerization of applications for development, distribution and preservation

docker & HEP: containerization of applications for development, distribution and preservation docker & HEP: containerization of applications for development, distribution and preservation Sébastien Binet LAL/IN2P3 2015-04-13 S. Binet (LAL) docker-hep 2015-04-13 1 / 16 Docker: what is it? http://www.docker.io/

More information

Administering WebLogic Server on Java Cloud Service I Ed 1 Coming Soon

Administering WebLogic Server on Java Cloud Service I Ed 1 Coming Soon Oracle University Contact Us: Local: 0180 2000 526 Intl: +49 8914301200 Administering WebLogic Server on Java Cloud Service I Ed 1 Coming Soon Duration: 5 Days What you will learn This Administering WebLogic

More information

StreamSets Control Hub Installation Guide

StreamSets Control Hub Installation Guide StreamSets Control Hub Installation Guide Version 3.2.1 2018, StreamSets, Inc. All rights reserved. Table of Contents 2 Table of Contents Chapter 1: What's New...1 What's New in 3.2.1... 2 What's New in

More information

Arup Nanda VP, Data Services Priceline.com

Arup Nanda VP, Data Services Priceline.com Jumpstarting Docker Arup Nanda VP, Data Services Priceline.com My application worked in Dev but not in QA Will it work in production? I need an environment right now No, I can t wait for 2 weeks I just

More information

Java Architectures A New Hope. Eberhard Wolff

Java Architectures A New Hope. Eberhard Wolff Java Architectures A New Hope Eberhard Wolff http://ewolff.com What happens with a talk titled like this? Architecture of Enterprise Java Apps How can I implement a new feature??? ! ECommerce System

More information

Oracle Cloud Metric Reference for Oracle Infrastructure Monitoring

Oracle Cloud Metric Reference for Oracle Infrastructure Monitoring Oracle Cloud Metric Reference for Oracle Infrastructure Monitoring E73187-22 July 2018 Oracle Cloud Metric Reference for Oracle Infrastructure Monitoring, E73187-22 Copyright 2016, 2018, Oracle and/or

More information

Lightweight Containerization at Facebook

Lightweight Containerization at Facebook Lightweight Containerization at Facebook Zoltan Puskas (zpuskas@fb.com) Production Engineer on Infrastructure Agenda What is Tupperware? Why use Btrfs? Building layered images Launching with systemd Results

More information

Assumptions. History

Assumptions. History Assumptions A Brief Introduction to Java for C++ Programmers: Part 1 ENGI 5895: Software Design Faculty of Engineering & Applied Science Memorial University of Newfoundland You already know C++ You understand

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

12 (15) Factor App Workshop

12 (15) Factor App Workshop 12 (15) Factor App Workshop http://bit.ly/15factor-uberconf-2018 Christopher M. Judd Christopher M. Judd CTO and Partner at leader 221 BROUGHT TO YOU IN PARTNERSHIP WITH Getting Started With Docker BY

More information

Coping with Immutable Data in a JVM for Embedded Real-Time Systems. Christoph Erhardt, Simon Kuhnle, Isabella Stilkerich, Wolfgang Schröder-Preikschat

Coping with Immutable Data in a JVM for Embedded Real-Time Systems. Christoph Erhardt, Simon Kuhnle, Isabella Stilkerich, Wolfgang Schröder-Preikschat The final Frontier Coping with Immutable Data in a JVM for Embedded Real-Time Systems Christoph Erhardt, Simon Kuhnle, Isabella Stilkerich, Wolfgang Schröder-Preikschat https://www4.cs.fau.de/research/keso/

More information

IBM Cloud Developer Tools (IDT) and App Service Console Overview

IBM Cloud Developer Tools (IDT) and App Service Console Overview IBM Cloud Developer Tools (IDT) and App Service Console Overview Steve Clay clays@us.ibm.com Technical Lead, IDT Paul Bennett pwbennet@us.ibm.com Java Squad Lead, IBM Cloud Developer Experience Cloud native

More information

/ Cloud Computing. Recitation 5 February 14th, 2017

/ Cloud Computing. Recitation 5 February 14th, 2017 15-319 / 15-619 Cloud Computing Recitation 5 February 14th, 2017 1 Overview Administrative issues Office Hours, Piazza guidelines Last week s reflection Project 2.1, OLI Unit 2 modules 5 and 6 This week

More information

JavaFX.Next. Kevin Rushforth Oracle Johan Vos Gluon October Copyright 2018, Oracle and/or its affiliates. All rights reserved.

JavaFX.Next. Kevin Rushforth Oracle Johan Vos Gluon October Copyright 2018, Oracle and/or its affiliates. All rights reserved. JavaFX.Next Kevin Rushforth Oracle Johan Vos Gluon October 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and

More information

NetApp Jenkins Plugin Documentation

NetApp Jenkins Plugin Documentation NetApp Jenkins Plugin Documentation Release 2.0 Akshay Patil Aug 22, 2017 Contents 1 Contents 3 1.1 Pre-Requisites.............................................. 3 1.2 Configuration...............................................

More information

Continuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016

Continuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016 Continuous delivery of Java applications using Oracle Cloud Platform Services Marek Kratky Principal Sales Consultant Oracle Cloud Platform May, 2016 Safe Harbor Statement The following is intended to

More information

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. OS and Computer Architecture Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components Last class: OS and Architecture Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation

More information

<Insert Picture Here>

<Insert Picture Here> 1 2010-0237 The Maxine Inspector: A Specialized Tool for VM Development, Santa Clara, CA Michael L. Van De Vanter Researcher, Oracle Sun Labs The Maxine Project at Oracle Sun Labs:

More information

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 2: Operating-System Structures Operating System Services User Operating

More information

Dockerfile & docker CLI Cheat Sheet

Dockerfile & docker CLI Cheat Sheet Dockerfile & docker CLI Cheat Sheet Table of Contents Introduction 1 1. docker CLI Engine 2 1.1 Container Related s 2 1.2 Image Related s 4 1.3 Network Related s 5 1.4 Registry Related s 6 1.5 Volume Related

More information

Think Small to Scale Big

Think Small to Scale Big Think Small to Scale Big Intro to Containers for the Datacenter Admin Pete Zerger Principal Program Manager, MVP pete.zerger@cireson.com Cireson Lee Berg Blog, e-mail address, title Company Pete Zerger

More information

An introduction to Docker

An introduction to Docker An introduction to Docker Ing. Vincenzo Maffione Operating Systems Security Container technologies on Linux Several light virtualization technologies are available for Linux They build on cgroups, namespaces

More information

~Deep dive into Windows Containers and Docker~

~Deep dive into Windows Containers and Docker~ ~Deep dive into Windows Containers and Docker~ Blog: Twitter: http://www.solidalm.com https://twitter.com/cornellknulst Are we doing the right things? In managing infrastructure? In deployment? Desired

More information

DevOps Workflow. From 0 to kube in 60 min. Christian Kniep, v Technical Account Manager, Docker Inc.

DevOps Workflow. From 0 to kube in 60 min.   Christian Kniep, v Technical Account Manager, Docker Inc. DevOps Workflow From 0 to kube in 60 min http://qnib.org/devops-workflow Christian Kniep, v2018-02-20 Technical Account Manager, Docker Inc. Motivation Iteration barriers Works on my Laptop! Why is DevOps

More information

Lesson 2 Dissecting Memory Problems

Lesson 2 Dissecting Memory Problems Lesson 2 Dissecting Memory Problems Poonam Parhar JVM Sustaining Engineer Oracle Agenda 1. Symptoms of Memory Problems 2. Causes of Memory Problems 3. OutOfMemoryError messages 3 Lesson 2-1 Symptoms of

More information

Operating- System Structures

Operating- System Structures Operating- System Structures 2 CHAPTER Practice Exercises 2.1 What is the purpose of system calls? Answer: System calls allow user-level processes to request services of the operating system. 2.2 What

More information

Chapter 2: Operating-System

Chapter 2: Operating-System Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services! User Operating System Interface! System Calls! Types of System Calls! System Programs! Operating

More information

" Qué me estás container?" Docker for dummies

 Qué me estás container? Docker for dummies " Qué me estás container?" Docker for dummies Sara Arjona @sara_arjona Pau Ferrer @crazyserver Developer at Moodle HQ Moodle Mobile developer at Moodle HQ #MootES18 Who uses Docker for development? Who

More information

ONOS Performance Test. Jin Huawei HUAWEI TECHNOLOGIES CO., LTD. HUAWEI TECHNOLOGIES CO., LTD. Page 1

ONOS Performance Test. Jin Huawei HUAWEI TECHNOLOGIES CO., LTD.   HUAWEI TECHNOLOGIES CO., LTD. Page 1 ONOS Performance Test Jin Gan @ Huawei Page 1 HUAWEI TECHNOLOGIES CO., LTD. HUAWEI TECHNOLOGIES CO., LTD. www.huawei.com Project: ONOS Performance Benchmark and Improvement https://wiki.onosproject.org/display/onos/onos+performance+benchmark+and+improvement

More information

Red Hat Atomic Details Dockah, Dockah, Dockah! Containerization as a shift of paradigm for the GNU/Linux OS

Red Hat Atomic Details Dockah, Dockah, Dockah! Containerization as a shift of paradigm for the GNU/Linux OS Red Hat Atomic Details Dockah, Dockah, Dockah! Containerization as a shift of paradigm for the GNU/Linux OS Daniel Riek Sr. Director Systems Design & Engineering In the beginning there was Stow... and

More information