SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Java for the containers
Vaibhav Choudhary (@vaibhav_c)
Java Platforms Team
https://blogs.oracle.com/vaibhav
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended
for information purposes only, and may not be incorporated into any contract. It
is not a commitment to deliver any material, code, or functionality, and should
not be relied upon in making purchasing decisions. The development, release,
and timing of any features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
3
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Agenda of the day …
A brief on Container
Java - as first class citizen in Container
Respect Container Boundary
Leverage features inside container
Final thoughts
1
2
3
4
4
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Respective the container Boundary
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Processor Boundary (--cpu-shares)
6
public class CoreCheck {
public static void main(String[] args) {
  System.out.println(Runtime.getRuntime().availableProcessors());
 }}
JDK8 :
docker run --rm --cpu-shares 2048 -v /root/:/mnt/mydata -it ubuntu bash
root@7599aae2613d:/mnt/mydata/jdk-8/bin# ./java CoreCheck
8
FROM openjdk:10
ADD CoreCheck.java .
WORKDIR .
RUN javac CoreCheck.java
CMD ["java", "CoreCheck" ]
docker build -t hello-world .
docker run --cpu-shares 2048 java-helloworld
2
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Processor Boundary (--cpuset-cpus)
7
public class CoreCheck {
public static void main(String[] args) {
  System.out.println(Runtime.getRuntime().availableProcessors());
 }}
JDK8 :
docker run --rm --cpuset-cpus 3,4,6 -v /root/:/mnt/mydata -it ubuntu bash
root@7599aae2613d:/mnt/mydata/jdk-8/bin# ./java CoreCheck
8 (ideally it should say 3)
FROM openjdk:10
ADD CoreCheck.java .
WORKDIR .
RUN javac CoreCheck.java
CMD ["java", "CoreCheck" ]
docker build -t hello-world .
docker run --cpuset-cpus 3,4,6 java-
helloworld
3 (Processor 3rd, 4th and 6th)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Here are the results (Respecting Logs)
8
public class HelloWorld {
public static void main(String[] args) {
  System.out.println(Runtime.getRuntime().availableProcessors());
 }}
JDK10 :
root@4795a54e037e:/mnt/mydata/jdk-10b38/bin# ./java -Xlog:os+container=trace HelloWorld
[0.001s][trace][os,container] OSContainer::init: Initializing Container Support
[0.001s][trace][os,container] Path to /memory.limit_in_bytes is /sys/fs/cgroup/memory/
memory.limit_in_bytes
JDK9 :
root@4795a54e037e:/mnt/mydata/jdk-9/bin# ./java -Xlog:os+container=trace HelloWorld
[0.001s][error][logging] Invalid tag 'container' in what-expression.
Invalid -Xlog option '-Xlog:os+container=trace'
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Here are the results (ActiveProcessorCount)
9
public class HelloWorld {
public static void main(String[] args) {
  System.out.println(Runtime.getRuntime().availableProcessors());
 }}
JDK10 :
root@4795a54e037e:/mnt/mydata/jdk-10b38/bin# ./java -
XX:ActiveProcessorCount=4 HelloWorld
4
JDK8 :
root@4795a54e037e:/mnt/mydata/jdk1.8.0_152/bin# ./java -
XX:ActiveProcessorCount=4 HelloWorld
Unrecognized VM option 'ActiveProcessorCount=4'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Cont.. (Respecting Memory Boundaries)
10
public class MemoryCheck {
public static void main(String[] args) {
  System.out.println(Runtime.getRuntime().maxMemory());
 }}
JDK8 :
docker run --rm --memory 100m -v /root/:/mnt/mydata -it ubuntu bash
root@7599aae2613d:/mnt/mydata/jdk-8/bin# ./java CoreCheck
It will print 1/4 of the Physical Memory (It should understand docker memory limit)
FROM openjdk:10
ADD MemoryCheck.java .
WORKDIR .
RUN javac MemoryCheck.java
CMD ["java", "MemoryCheck" ]
docker build -t hello-world .
docker run --memory 100m java-helloworld
Half of the docker limit (50m)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Solution 1 : Application Class Data Sharing (AppCDS)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted
How Application Class Data Sharing (AppCDS) Help?
• CDS only supports archiving classes on the bootstrap class path, which provides
limited (or no) benefit for large applications in today’s cloud environment as
majority of loaded classes are application classes.
• AppCDS extends the archiving support beyond core library classes
– Enables archiving classes loaded by all class loaders
• PlatformClassLoader (the ExtensionClassLoader in JDK 8 and earlier versions)
• AppClassLoader
• User defined class loaders
• AppCDS allows archiving and sharing read-only java heap objects with G1 GC
• AppCDS provides further reduction in storage for archived class metadata
12
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted
A Quick Look at CDS/AppCDS Evolution
13
JDK 1.5 JDK 8 JDK 9JDK8u40
CDS AppCDS v1
(experimental)
AppCDS v2
(experimental)
Cache classes from
boot loader only
Cache classes from built-in class loaders
Boot, Extension and App class loaders
Cache classes from built-in and
user defined class loaders
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted
AppCDS Architectural View
14
JVM Instance 1 JVM Instance 1
Java Heap
Space
Shared Space
Meta Space
Heap Objects
Class Metadata
Shared String Objects
Class Metadata
Archive
File
Shared Classes
Heap Objects
Shared String Objects
Shared Classes
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted
• About 30% startup time
improvement observed
with AppCDS for Oracle
Web Logic Server (WLS)
base domain
15
Startup Time Improvements for Oracle Web Logic Server
0s
2.875s
5.75s
8.625s
11.5s
WLS BaseDomain
7.7s
11.4s
No AppCDS AppCDS
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
AppCDS inside Container - How to use
• Simple CDS use in Docker
DockerFile

FROM openjdk:10
ADD HelloWorld.java .
WORKDIR .
RUN javac HelloWorld.java
RUN ["java", "-Xshare:dump" ]
CMD ["java", "-showversion" , "-Xshare:on", "HelloWorld" ]
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Cont…
• Determine the class to archive
java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=hello.lst -cp hello.jar
HelloWorld
• Creating the AppCDS archive
java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=hello.lst
-XX:SharedArchiveFile=hello.jsa -cp hello.jar
• Using the AppCDS archive
java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=hello.jsa
-cp hello.jar HelloWorld
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Solution 2: Ahead of Time Compilation (AOT)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 19
At Compile Time At Runtime Time
Java Source [*.java]
Java Bytecode [*.class]
javac
Classloader
Verifier
Java
Interpreter
JIT
Compiler
(C1, C2)
Native Level (OS,
Hardware)
Most of the
code get
optimized
here
Shared Object [*.so]
jaotc
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• jaotc --output HelloWorld.so HelloWorld.class
• java -XX:AOTLibrary=./HelloWorld.so HelloWorld
20
-bash-4.1$ ./java -XX:+PrintAOT -XX:AOTLibrary=./HelloWorld.so
HelloWorld
15 1 loaded ./HelloWorld.so aot library
153 1 aot[ 1] HelloWorld.<init>()V
153 2 aot[ 1] HelloWorld.main([Ljava/lang/String;)V
Hello AOT
• jaotc --output base.so --module java.base
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
AOT run (jaotc)
21
-bash-4.1$ ./jaotc --info --output HelloWorld.so HelloWorld.class
Compiling HelloWorld...
1 classes found (62 ms)
2 methods total, 2 methods to compile (6 ms)
Compiling with 2 threads
.
2 methods compiled, 0 methods failed (923 ms)
Parsing compiled code (2 ms)
Processing metadata (21 ms)
Preparing stubs binary (1 ms)
Preparing compiled binary (0 ms)
Creating binary: HelloWorld.o (17 ms)
Creating shared library: HelloWorld.so (26 ms)
Total time: 1886 ms
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 22
Dynamic (JIT) Static (AOT)
Start-up performance Tunable, but not so good Best
Steady-state performance Best Good
Interactive performance Not so good Good
Deterministic performance Tunable, but not best Best
* https://www.ibm.com/developerworks/library/j-rtj2/index.html
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 23
* https://www.ibm.com/developerworks/library/j-rtj2/index.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Solution 3: Modularity
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
DockerFile should look like
FROM openjdk:10 as small
ADD jdk-10.tar.gz /jdk
ENV PATH=$PATH:/jdk/jdk-10/bin
RUN [“jlink”, “—compress=2”, “—module-path”, “/jdk/jdk-10/jmods”,
“—add-modules”, “java.base”, “—output”, “/linked” ]
FROM openjdk:10
COPY —from=small /linked /jdk
ADD HelloWorld.class
CMD [“java”, “-showversion”, “HelloWorld”]
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Links
• For any query, you can drop me mail at vaibhav.x.choudhary@oracle.com
• Good links :-
• Bangalore JUG resource - http://bangalorejug.org/downloads/
• Container Aware Java - http://openjdk.java.net/jeps/8182070
• JDK-8146115 - https://bugs.openjdk.java.net/browse/JDK-8146115
• Better containerization by JDK10 : https://mjg123.github.io/
2018/01/10/Java-in-containers-jdk10.html
• VJUG Talk :- Java in Container world

Mais conteúdo relacionado

Mais procurados

Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Krishna-Kumar
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDocker, Inc.
 
DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...
DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...
DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...Docker, Inc.
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019kanedafromparis
 
Openshift Container Platform on Azure
Openshift Container Platform on AzureOpenshift Container Platform on Azure
Openshift Container Platform on AzureGlenn West
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realistsKarthik Gaekwad
 
Meetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on KubernetesMeetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on Kubernetesdtoledo67
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...Oleg Shalygin
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioAraf Karsh Hamid
 
Simple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVMSimple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVMJamie Coleman
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17Mario-Leander Reimer
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesSlideTeam
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesPaul Czarkowski
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18CodeOps Technologies LLP
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and dockerAlessandro Martellone
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesSamuel Terburg
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Docker, Inc.
 

Mais procurados (20)

Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and Architecture
 
DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...
DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...
DCEU 18: Continuous Delivery with Docker Containers and Java: The Good, the B...
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
Dev opsec dockerimage_patch_n_lifecyclemanagement_2019
 
Openshift Container Platform on Azure
Openshift Container Platform on AzureOpenshift Container Platform on Azure
Openshift Container Platform on Azure
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
Meetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on KubernetesMeetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on Kubernetes
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
Docker Datacenter - CaaS
Docker Datacenter - CaaSDocker Datacenter - CaaS
Docker Datacenter - CaaS
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes Istio
 
Simple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVMSimple tweaks to get the most out of your JVM
Simple tweaks to get the most out of your JVM
 
Big data and Kubernetes
Big data and KubernetesBig data and Kubernetes
Big data and Kubernetes
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and docker
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
From Code to Kubernetes
From Code to KubernetesFrom Code to Kubernetes
From Code to Kubernetes
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
 

Semelhante a Java is Container Ready - Vaibhav - Container Conference 2018

Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9Deepu Xavier
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]David Buck
 
Building Large Java Projects Faster: Multicore javac and Makefile integration
Building Large Java Projects Faster: Multicore javac and Makefile integrationBuilding Large Java Projects Faster: Multicore javac and Makefile integration
Building Large Java Projects Faster: Multicore javac and Makefile integrationFredrik Öhrström
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013Hazelcast
 
Java in a world of containers
Java in a world of containersJava in a world of containers
Java in a world of containersDocker, Inc.
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Arun Gupta
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]David Buck
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
 
Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.Alexandre (Shura) Iline
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
 
Why should i switch to Java SE 7
Why should i switch to Java SE 7Why should i switch to Java SE 7
Why should i switch to Java SE 7Vinay H G
 
JCache data store for Apache Gora
JCache data store for Apache GoraJCache data store for Apache Gora
JCache data store for Apache GoraKevin Ratnasekera
 
gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”Ruggero Citton
 

Semelhante a Java is Container Ready - Vaibhav - Container Conference 2018 (20)

Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
Java Debuggers: A Peek Under the Hood [JavaOne 2016 CON1503]
 
Building Large Java Projects Faster: Multicore javac and Makefile integration
Building Large Java Projects Faster: Multicore javac and Makefile integrationBuilding Large Java Projects Faster: Multicore javac and Makefile integration
Building Large Java Projects Faster: Multicore javac and Makefile integration
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
Hotspot & AOT
Hotspot & AOTHotspot & AOT
Hotspot & AOT
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013
 
Java in a world of containers
Java in a world of containersJava in a world of containers
Java in a world of containers
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and Architecture
 
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
Java Concurrency, A(nother) Peek Under the Hood [JavaOne 2016 CON1497]
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.Java code coverage with JCov. Implementation details and use cases.
Java code coverage with JCov. Implementation details and use cases.
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Why should i switch to Java SE 7
Why should i switch to Java SE 7Why should i switch to Java SE 7
Why should i switch to Java SE 7
 
JCache data store for Apache Gora
JCache data store for Apache GoraJCache data store for Apache Gora
JCache data store for Apache Gora
 
gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”
 

Mais de CodeOps Technologies LLP

AWS Serverless Event-driven Architecture - in lastminute.com meetup
AWS Serverless Event-driven Architecture - in lastminute.com meetupAWS Serverless Event-driven Architecture - in lastminute.com meetup
AWS Serverless Event-driven Architecture - in lastminute.com meetupCodeOps Technologies LLP
 
BUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONS
BUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONSBUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONS
BUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONSCodeOps Technologies LLP
 
APPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICES
APPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICESAPPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICES
APPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICESCodeOps Technologies LLP
 
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPSBUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPSCodeOps Technologies LLP
 
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNERCREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNERCodeOps Technologies LLP
 
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CodeOps Technologies LLP
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSCodeOps Technologies LLP
 
Training And Serving ML Model Using Kubeflow by Jayesh Sharma
Training And Serving ML Model Using Kubeflow by Jayesh SharmaTraining And Serving ML Model Using Kubeflow by Jayesh Sharma
Training And Serving ML Model Using Kubeflow by Jayesh SharmaCodeOps Technologies LLP
 
Deploy Microservices To Kubernetes Without Secrets by Reenu Saluja
Deploy Microservices To Kubernetes Without Secrets by Reenu SalujaDeploy Microservices To Kubernetes Without Secrets by Reenu Saluja
Deploy Microservices To Kubernetes Without Secrets by Reenu SalujaCodeOps Technologies LLP
 
Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...
Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...
Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...CodeOps Technologies LLP
 
YAML Tips For Kubernetes by Neependra Khare
YAML Tips For Kubernetes by Neependra KhareYAML Tips For Kubernetes by Neependra Khare
YAML Tips For Kubernetes by Neependra KhareCodeOps Technologies LLP
 
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...CodeOps Technologies LLP
 
Monitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta JhaMonitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta JhaCodeOps Technologies LLP
 
Functional Programming in Java 8 - Lambdas and Streams
Functional Programming in Java 8 - Lambdas and StreamsFunctional Programming in Java 8 - Lambdas and Streams
Functional Programming in Java 8 - Lambdas and StreamsCodeOps Technologies LLP
 
Distributed Tracing: New DevOps Foundation
Distributed Tracing: New DevOps FoundationDistributed Tracing: New DevOps Foundation
Distributed Tracing: New DevOps FoundationCodeOps Technologies LLP
 
"Distributed Tracing: New DevOps Foundation" by Jayesh Ahire
"Distributed Tracing: New DevOps Foundation" by Jayesh Ahire  "Distributed Tracing: New DevOps Foundation" by Jayesh Ahire
"Distributed Tracing: New DevOps Foundation" by Jayesh Ahire CodeOps Technologies LLP
 

Mais de CodeOps Technologies LLP (20)

AWS Serverless Event-driven Architecture - in lastminute.com meetup
AWS Serverless Event-driven Architecture - in lastminute.com meetupAWS Serverless Event-driven Architecture - in lastminute.com meetup
AWS Serverless Event-driven Architecture - in lastminute.com meetup
 
Understanding azure batch service
Understanding azure batch serviceUnderstanding azure batch service
Understanding azure batch service
 
DEVOPS AND MACHINE LEARNING
DEVOPS AND MACHINE LEARNINGDEVOPS AND MACHINE LEARNING
DEVOPS AND MACHINE LEARNING
 
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONSSERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
 
BUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONS
BUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONSBUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONS
BUILDING SERVERLESS SOLUTIONS WITH AZURE FUNCTIONS
 
APPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICES
APPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICESAPPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICES
APPLYING DEVOPS STRATEGIES ON SCALE USING AZURE DEVOPS SERVICES
 
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPSBUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
BUILD, TEST & DEPLOY .NET CORE APPS IN AZURE DEVOPS
 
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNERCREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
CREATE RELIABLE AND LOW-CODE APPLICATION IN SERVERLESS MANNER
 
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
 
Training And Serving ML Model Using Kubeflow by Jayesh Sharma
Training And Serving ML Model Using Kubeflow by Jayesh SharmaTraining And Serving ML Model Using Kubeflow by Jayesh Sharma
Training And Serving ML Model Using Kubeflow by Jayesh Sharma
 
Deploy Microservices To Kubernetes Without Secrets by Reenu Saluja
Deploy Microservices To Kubernetes Without Secrets by Reenu SalujaDeploy Microservices To Kubernetes Without Secrets by Reenu Saluja
Deploy Microservices To Kubernetes Without Secrets by Reenu Saluja
 
Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...
Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...
Leverage Azure Tech stack for any Kubernetes cluster via Azure Arc by Saiyam ...
 
YAML Tips For Kubernetes by Neependra Khare
YAML Tips For Kubernetes by Neependra KhareYAML Tips For Kubernetes by Neependra Khare
YAML Tips For Kubernetes by Neependra Khare
 
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...
Must Know Azure Kubernetes Best Practices And Features For Better Resiliency ...
 
Monitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta JhaMonitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
Monitor Azure Kubernetes Cluster With Prometheus by Mamta Jha
 
Jet brains space intro presentation
Jet brains space intro presentationJet brains space intro presentation
Jet brains space intro presentation
 
Functional Programming in Java 8 - Lambdas and Streams
Functional Programming in Java 8 - Lambdas and StreamsFunctional Programming in Java 8 - Lambdas and Streams
Functional Programming in Java 8 - Lambdas and Streams
 
Distributed Tracing: New DevOps Foundation
Distributed Tracing: New DevOps FoundationDistributed Tracing: New DevOps Foundation
Distributed Tracing: New DevOps Foundation
 
"Distributed Tracing: New DevOps Foundation" by Jayesh Ahire
"Distributed Tracing: New DevOps Foundation" by Jayesh Ahire  "Distributed Tracing: New DevOps Foundation" by Jayesh Ahire
"Distributed Tracing: New DevOps Foundation" by Jayesh Ahire
 

Último

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 

Último (20)

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 

Java is Container Ready - Vaibhav - Container Conference 2018

  • 1.
  • 2. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java for the containers Vaibhav Choudhary (@vaibhav_c) Java Platforms Team https://blogs.oracle.com/vaibhav
  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Agenda of the day … A brief on Container Java - as first class citizen in Container Respect Container Boundary Leverage features inside container Final thoughts 1 2 3 4 4 5
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Respective the container Boundary
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Processor Boundary (--cpu-shares) 6 public class CoreCheck { public static void main(String[] args) {   System.out.println(Runtime.getRuntime().availableProcessors());  }} JDK8 : docker run --rm --cpu-shares 2048 -v /root/:/mnt/mydata -it ubuntu bash root@7599aae2613d:/mnt/mydata/jdk-8/bin# ./java CoreCheck 8 FROM openjdk:10 ADD CoreCheck.java . WORKDIR . RUN javac CoreCheck.java CMD ["java", "CoreCheck" ] docker build -t hello-world . docker run --cpu-shares 2048 java-helloworld 2
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Processor Boundary (--cpuset-cpus) 7 public class CoreCheck { public static void main(String[] args) {   System.out.println(Runtime.getRuntime().availableProcessors());  }} JDK8 : docker run --rm --cpuset-cpus 3,4,6 -v /root/:/mnt/mydata -it ubuntu bash root@7599aae2613d:/mnt/mydata/jdk-8/bin# ./java CoreCheck 8 (ideally it should say 3) FROM openjdk:10 ADD CoreCheck.java . WORKDIR . RUN javac CoreCheck.java CMD ["java", "CoreCheck" ] docker build -t hello-world . docker run --cpuset-cpus 3,4,6 java- helloworld 3 (Processor 3rd, 4th and 6th)
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Here are the results (Respecting Logs) 8 public class HelloWorld { public static void main(String[] args) {   System.out.println(Runtime.getRuntime().availableProcessors());  }} JDK10 : root@4795a54e037e:/mnt/mydata/jdk-10b38/bin# ./java -Xlog:os+container=trace HelloWorld [0.001s][trace][os,container] OSContainer::init: Initializing Container Support [0.001s][trace][os,container] Path to /memory.limit_in_bytes is /sys/fs/cgroup/memory/ memory.limit_in_bytes JDK9 : root@4795a54e037e:/mnt/mydata/jdk-9/bin# ./java -Xlog:os+container=trace HelloWorld [0.001s][error][logging] Invalid tag 'container' in what-expression. Invalid -Xlog option '-Xlog:os+container=trace'
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Here are the results (ActiveProcessorCount) 9 public class HelloWorld { public static void main(String[] args) {   System.out.println(Runtime.getRuntime().availableProcessors());  }} JDK10 : root@4795a54e037e:/mnt/mydata/jdk-10b38/bin# ./java - XX:ActiveProcessorCount=4 HelloWorld 4 JDK8 : root@4795a54e037e:/mnt/mydata/jdk1.8.0_152/bin# ./java - XX:ActiveProcessorCount=4 HelloWorld Unrecognized VM option 'ActiveProcessorCount=4' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Cont.. (Respecting Memory Boundaries) 10 public class MemoryCheck { public static void main(String[] args) {   System.out.println(Runtime.getRuntime().maxMemory());  }} JDK8 : docker run --rm --memory 100m -v /root/:/mnt/mydata -it ubuntu bash root@7599aae2613d:/mnt/mydata/jdk-8/bin# ./java CoreCheck It will print 1/4 of the Physical Memory (It should understand docker memory limit) FROM openjdk:10 ADD MemoryCheck.java . WORKDIR . RUN javac MemoryCheck.java CMD ["java", "MemoryCheck" ] docker build -t hello-world . docker run --memory 100m java-helloworld Half of the docker limit (50m)
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Solution 1 : Application Class Data Sharing (AppCDS)
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted How Application Class Data Sharing (AppCDS) Help? • CDS only supports archiving classes on the bootstrap class path, which provides limited (or no) benefit for large applications in today’s cloud environment as majority of loaded classes are application classes. • AppCDS extends the archiving support beyond core library classes – Enables archiving classes loaded by all class loaders • PlatformClassLoader (the ExtensionClassLoader in JDK 8 and earlier versions) • AppClassLoader • User defined class loaders • AppCDS allows archiving and sharing read-only java heap objects with G1 GC • AppCDS provides further reduction in storage for archived class metadata 12
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted A Quick Look at CDS/AppCDS Evolution 13 JDK 1.5 JDK 8 JDK 9JDK8u40 CDS AppCDS v1 (experimental) AppCDS v2 (experimental) Cache classes from boot loader only Cache classes from built-in class loaders Boot, Extension and App class loaders Cache classes from built-in and user defined class loaders
  • 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted AppCDS Architectural View 14 JVM Instance 1 JVM Instance 1 Java Heap Space Shared Space Meta Space Heap Objects Class Metadata Shared String Objects Class Metadata Archive File Shared Classes Heap Objects Shared String Objects Shared Classes
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted • About 30% startup time improvement observed with AppCDS for Oracle Web Logic Server (WLS) base domain 15 Startup Time Improvements for Oracle Web Logic Server 0s 2.875s 5.75s 8.625s 11.5s WLS BaseDomain 7.7s 11.4s No AppCDS AppCDS
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | AppCDS inside Container - How to use • Simple CDS use in Docker DockerFile FROM openjdk:10 ADD HelloWorld.java . WORKDIR . RUN javac HelloWorld.java RUN ["java", "-Xshare:dump" ] CMD ["java", "-showversion" , "-Xshare:on", "HelloWorld" ]
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Cont… • Determine the class to archive java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=hello.lst -cp hello.jar HelloWorld • Creating the AppCDS archive java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=hello.lst -XX:SharedArchiveFile=hello.jsa -cp hello.jar • Using the AppCDS archive java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=hello.jsa -cp hello.jar HelloWorld
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Solution 2: Ahead of Time Compilation (AOT)
  • 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 19 At Compile Time At Runtime Time Java Source [*.java] Java Bytecode [*.class] javac Classloader Verifier Java Interpreter JIT Compiler (C1, C2) Native Level (OS, Hardware) Most of the code get optimized here Shared Object [*.so] jaotc
  • 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • jaotc --output HelloWorld.so HelloWorld.class • java -XX:AOTLibrary=./HelloWorld.so HelloWorld 20 -bash-4.1$ ./java -XX:+PrintAOT -XX:AOTLibrary=./HelloWorld.so HelloWorld 15 1 loaded ./HelloWorld.so aot library 153 1 aot[ 1] HelloWorld.<init>()V 153 2 aot[ 1] HelloWorld.main([Ljava/lang/String;)V Hello AOT • jaotc --output base.so --module java.base
  • 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | AOT run (jaotc) 21 -bash-4.1$ ./jaotc --info --output HelloWorld.so HelloWorld.class Compiling HelloWorld... 1 classes found (62 ms) 2 methods total, 2 methods to compile (6 ms) Compiling with 2 threads . 2 methods compiled, 0 methods failed (923 ms) Parsing compiled code (2 ms) Processing metadata (21 ms) Preparing stubs binary (1 ms) Preparing compiled binary (0 ms) Creating binary: HelloWorld.o (17 ms) Creating shared library: HelloWorld.so (26 ms) Total time: 1886 ms
  • 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 22 Dynamic (JIT) Static (AOT) Start-up performance Tunable, but not so good Best Steady-state performance Best Good Interactive performance Not so good Good Deterministic performance Tunable, but not best Best * https://www.ibm.com/developerworks/library/j-rtj2/index.html
  • 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 23 * https://www.ibm.com/developerworks/library/j-rtj2/index.html
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Solution 3: Modularity
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | DockerFile should look like FROM openjdk:10 as small ADD jdk-10.tar.gz /jdk ENV PATH=$PATH:/jdk/jdk-10/bin RUN [“jlink”, “—compress=2”, “—module-path”, “/jdk/jdk-10/jmods”, “—add-modules”, “java.base”, “—output”, “/linked” ] FROM openjdk:10 COPY —from=small /linked /jdk ADD HelloWorld.class CMD [“java”, “-showversion”, “HelloWorld”]
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Links • For any query, you can drop me mail at vaibhav.x.choudhary@oracle.com • Good links :- • Bangalore JUG resource - http://bangalorejug.org/downloads/ • Container Aware Java - http://openjdk.java.net/jeps/8182070 • JDK-8146115 - https://bugs.openjdk.java.net/browse/JDK-8146115 • Better containerization by JDK10 : https://mjg123.github.io/ 2018/01/10/Java-in-containers-jdk10.html • VJUG Talk :- Java in Container world