Slide 1

Slide 1 text

+PVSOFZUP.PEFSO4QSJOH 4QSJOHJOUIF$MPVE&SB https://www.cnbc.com/2022/11/11/global-shipping-industry-faces-a-new-problem-too-many-containers.html ߅ਊӂ

Slide 2

Slide 2 text

߅ਊӂ.apply { ࣗࣘ = "झ೐݂۞ց && ׼Ӕ݃௄" ౠ૚ = "݈ ݆਺, nߓࣘ ੤ࢤ" }

Slide 3

Slide 3 text

2013.12 2017.09 4QSJOH BOE 4QSJOH#PPU 2018.03 2023.09 2021.09 2018.09 2014.03 2014.04 JDK 8 Spring 4.x Spring Boot 1.x Spring 5.x Spring Boot 2.x JDK 11 JDK 17 JDK 21 2022.11 2023.11 4QSJOH

Slide 4

Slide 4 text

8IBUsTOFX 4QSJOHBOE4QSJOH#PPU Java 17 and Jakarta EE 9 / 10 Native Executables Observability Smaller Changes in Core and Web Testing Language: text blocks, switch expressions Core libraries: collection factory methods, etc Type system: records, sealed classes Module system: module introspection, module path scanning Enterprise: Servlet 5.0, JPA 3.0, etc Ahead Of Time AOT GraalVM Native Image Ahead Of Time AOT for TestContext Micrometer Observation

Slide 5

Slide 5 text

5SBEJUJPOBM+BWBBQQMJDBUJPO TUBSUVQTUFQT Application sources Package application Load and Parse configuration analyze dependencies build dependency tree execute code Build time Runtime

Slide 6

Slide 6 text

/BUJWF&YFDVUBCMFT Application sources Package application Load and Parse configuration analyze dependencies build dependency tree execute code Native image Runtime Build time

Slide 7

Slide 7 text

8IBUsTOFYU 4QSJOH BOE+%, Project Galahad GraalVM technology merging into OpenJDK Project CRaC Bootstrapping from a warmed up HotSpot JVM snapshot Project Loom lightweight threading model within the JVM Project Leyden OpenJDK aims to introduce well defined static images

Slide 8

Slide 8 text

'BTUFS TNBMMFS BOENPSFFGGJDJFOU https://noblerr.com/cloud-native-architecture/

Slide 9

Slide 9 text

$MPVE/BUJWF https://venturebeat.com/business/4-trends-that-will-shape-the-cloud-native-world-in-2020/

Slide 10

Slide 10 text

8IBU

Slide 11

Slide 11 text

1SPQFSUJFTPG DMPVEOBUJWFBQQMJDBUJPOT Scalability Dynamically support increasing or decreasing workloads Loose coupling Components have minimal knowledge of each other Resilience Maintain level of service in face of adversity Observability Knowledge about the internal state inferred from the outside Manageability Level of control from the outside: update, configure, deploy

Slide 12

Slide 12 text

https://www.fool.com.au/2020/02/22/4-top-asx-shares-to-help-you-start-a-share-portfolio/

Slide 13

Slide 13 text

https://www.hpcwire.com/2012/03/19/cloud_moving_from_hype_to_reality/ Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010

Slide 14

Slide 14 text

4QSJOHJTUIFNPEFSO QSPHSBNNJOHNPEFMGPS UIFDMPVEHFOFSBUJPO https://www.theregister.com/2009/08/19/springsource_cloud_foundry/ Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010

Slide 15

Slide 15 text

"QQMJDBUJPO1PSUBCJMJUZ 2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2012 2011 2010 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4

Slide 16

Slide 16 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2012 2011 2010 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 https://aionys.com/how-to-benefit-from-microservices-architecture-implementation/

Slide 17

Slide 17 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2012 2011 2010 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 https://www.pngkey.com/detail/u2e6q8i1e6i1i1w7_netflix-oss-spring-cloud-netflix/

Slide 18

Slide 18 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2012 2011 2010 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 https://architecturenotes.co/12-factor-app-revisited/

Slide 19

Slide 19 text

#VJMEJOH 1SPEVDUJPOSFBEZ "QQMJDBUJPOT 2VJDLMZBOE&BTJMZ Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2012 2011 2010 2013 Spring 4

Slide 20

Slide 20 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2012 2011 2010 2013 Spring 4

Slide 21

Slide 21 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2012 2011 2010 2013 Spring 4 https://thenewstack.io/solomon-hykes-leader-open-source-world-needs/

Slide 22

Slide 22 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2012 2011 2010 2013 Spring 4 https://techcrunch.com/2014/11/13/amazon-launches-lambda-an-event-driven-compute-service/

Slide 23

Slide 23 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2012 2011 2010 2013 Spring 4 https://openjdk.org/projects/valhalla/design-notes/state-of-valhalla/02-object-model Value Object (marker) Identity Object (marker) Cursor Point its box List Cursor its box List Object Iterator Abstract List (partially concrete) String (identity significant) int[] (mutable array) HashMap (mutable object) LocalDate (VBC = value based class, just before migration) Memory Segment (value object: secure, no box, better VBC) Optional (VBC migrated to value object, a NOID) int long float double boolean char byte short Island of Classless Scalar Primitives their boxes IDENTITY OBJECT REF (ID-O-SAURs) object identity construction safety fields stay together fast pointer compare VALUE OBJECT REF (NOIDs) (includes PRIM boxes) freely copyable field-wise flattenable construction safety atomicity, no identity THIS MIDDLE SWATH IS WHAT’S NEW IN VALHALLA NON-CONCRETE REF polymorphic abstract class or interface field-wise flattenable (like NOID) freely copyable (like NOID) no identity (like NOID) defaults to all-zero bits no nulls, no direct recursion no construction safety no atomicity (tearing) no polymorphism extended primitives, with class-like declaration POSSIBLE IN VALHALLA PRIMITIVES (one quadrant) REFERENCES (three quadrants) PRIM = ¬ REF, scalar/extended primitive REF = ¬ PRIM, all are nullable, recursive The Zoo of Java Field Types (Valhalla draft design, adding Extended Primitives)

Slide 24

Slide 24 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2012 2011 2010 2013 Spring 4

Slide 25

Slide 25 text

https://pxhere.com/ko/photo/489457

Slide 26

Slide 26 text

https://magicseaweed.com/news/gallery-xl-cloudbreak/12854/ $MPVE/BUJWF&OUFSQSJTF XBWFCSPLF 2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010

Slide 27

Slide 27 text

https://twitter.com/cloudnativejava 2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010

Slide 28

Slide 28 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010

Slide 29

Slide 29 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010

Slide 30

Slide 30 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010 $MPVEOBUJWFUPQPMPHJFT Containers Lightweight and isolated computing contexts Orchestration Container scheduling, cluster management Serverless Servers and backing services managed by cloud providers

Slide 31

Slide 31 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010 https://thecamels.org/en/what-is-the-lift-and-shift-approach-when-migrating-to-the-cloud/

Slide 32

Slide 32 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010 DIBMMFOHFTUPCFDPNJOH DMPVEOBUJWFBQQMJDBUJPO Start up and Ramp up time Footprint Memory limits and imperfect CPU Application sources Package application Load and Parse configuration analyze dependencies build dependency tree execute code Build time Runtime

Slide 33

Slide 33 text

2015 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010 https://www.womansworld.com/posts/animals/cats-in-small-spaces-169156

Slide 34

Slide 34 text

5IF3FBDUJWF8BZ https://cutt.ly/K82TXBO Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010

Slide 35

Slide 35 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://www.focaloid.com/casestudies/building-a-customer-support-solution/

Slide 36

Slide 36 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://github.com/topics/event-driven-architecture

Slide 37

Slide 37 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010

Slide 38

Slide 38 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-scanning-index *OEFYPG $BOEJEBUF$PNQPOFOUT Optimizes component scanning and improving performance Generating an index file with annotation process Reducing startup time and memory usage dependencies {
 annotationProcessor "org.springframework:spring-context-indexer:${version}"
 } Gradle META INF/spring.components dev.springrunner.application.PostWriteProcessor=org.springframework.stereotype.Service dev.springrunner.data.JdbcPostRepository=org.springframework.stereotype.Repository ...

Slide 39

Slide 39 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://www.infoq.com/presentations/present-future-reactive-systems/

Slide 40

Slide 40 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#spring-webflux 8FCPO3FBDUJWFTUBDL Designed to high concurrency, scalability and low latency with non blocking I/O Asynchronous and event driven programming models Support for Spring projects, including data and security Ideal for building microservices and event driven architectures It s not ideal for all cases Consider specific requirements and trade offs to decide wisely

Slide 41

Slide 41 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://developers.redhat.com/blog/2019/06/19/project-loom-lightweight-java-threads

Slide 42

Slide 42 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://developers.redhat.com/blog/2019/06/19/project-loom-lightweight-java-threads 1SPKFDU-PPN JDK 19 finally includes Project Loom as regular preview Virtual threads as lightweight threading model within JVM A different magnitude of scalability for imperative programming Implemented as virtual variants of java.lang.Thread Not blocking an operating system thread on I/O operations

Slide 43

Slide 43 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://www.javacodegeeks.com/2017/09/java-9-jigsaw-jpms-modules-personal-exploration.html

Slide 44

Slide 44 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 https://www.baeldung.com/project-jigsaw-java-modularity 1SPKFDU+JHTBX Better organization and structure for large applications Efficiently manage complex dependencies, reduce footprint Strengthen security, maintainability with restricted access Boost Java runtime optimizations, reduce startup time

Slide 45

Slide 45 text

Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010

Slide 46

Slide 46 text

https://www.oreilly.com/library/view/beyond-the-twelve-factor/9781492042631/ Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2016 2017 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010

Slide 47

Slide 47 text

%FQMPZJOHUP $POUBJOFST 4FSWFSMFTT 2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010 2015

Slide 48

Slide 48 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 https://developers.redhat.com/articles/2022/04/19/java-17-whats-new-openjdks-container-awareness $POUBJOFS"XBSFOFTT Kubernetes and orchestrations limit container with CPU, memory quotas JVM detects container environment for awareness Impact garbage collection, size of heap or thread pools, parallelism and etc Supported in Java 8u192 and later recommend 17 and 11.0.16 ❯ java -XX:+UseContainerSupport app.jar Console 2010

Slide 49

Slide 49 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 https://developers.redhat.com/articles/2022/04/19/java-17-whats-new-openjdks-container-awareness $16 .FNPSZMJNJUTBOEVTBHF CPU quota determines is available processors, but unreliable Increase processors or threads beyond default to avoid throttling Memory usage relies on system/classes, threads, max heap size Use heap size of 70 80 for containers ❯ java -XX:InitialRAMPercentage=75
 -XX:MinRAMPercentage=75 -XX:MaxRAMPercentage=75
 -XX:ActiveProcessorCount=<2x yourCpuLimit> 
 app.jar Console 2010

Slide 50

Slide 50 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 https://learn.microsoft.com/en-us/azure/developer/java/containers/overview (BSCBHFDPMMFDUJPO JVM defaults use available processors and memory for ergonomics Select SerialGC or G1GC, depending on the resources available Always set GC based on heap size and available processes Resources available Default GC Any number of processors Up to 1791 MB of memory SerialGC 2 processors 1792 MB or more of memory G1GC 2010

Slide 51

Slide 51 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 https://www.happycoders.eu/java/java-10-features/#Application_Class-Data_Sharing "QQMJDBUJPO $MBTT%BUB4IBSJOH JVM features for share common class metadata Reduces startup time and memory footprint Available in OpenJDK 8 and OracleJDK and later versions Ý Ý Ý Application sources Package application SharedArchiveFile JVM JVM JVM 2010

Slide 52

Slide 52 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 https://www.reddit.com/user/EFdnV/comments/11t0i7e/how_can_cloud_native_java_evolve_to_help_achieve/ 2010

Slide 53

Slide 53 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010 2015 https://docs.oracle.com/en/graalvm/index.html

Slide 54

Slide 54 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 &GGJDJFOU$POUBJOFS*NBHFT Running spring boot fat jar in container may cause overhead Unpacking and running separately may improve startup times Spring Boot enables layered docker images for optimized builds https://docs.spring.io/spring-boot/docs/current/reference/html/container-images.html#container-images.efficien FROM amazoncorretto:17 AS builder COPY . / RUN ./gradlew clean build RUN build/libs RUN jar -xf application.jar FROM amazoncorretto:17 COPY --from=builder build/libs/ ENTRYPOINT ["java -cp BOOT-INF/classes:BOOT-INF/lib/* springcamp.CloudApplication"] Dockerfile 2010

Slide 55

Slide 55 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 https://docs.spring.io/spring-boot/docs/current/reference/html/container-images.html#container-images.docker %PDLFSGJMFT $MPVE/BUJWF#VJMEQBDLT Make dockerfiles for optimized image with layertools Buildpacks convert apps into something that cloud platform run Support directly for both maven and gradle FROM amazoncorretto:17 AS builder COPY . / RUN ./gradlew clean build RUN java -Djarmode=layertools -jar build/libs/application.jar extract FROM amazoncorretto:17 COPY --from=builder application/dependencies/ ./ COPY --from=builder application/spring-boot-loader/ ./ COPY --from=builder application/snapshot-dependencies/ ./ COPY --from=builder application/application/ ./ ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"] Dockerfile 2010

Slide 56

Slide 56 text

2016 2017 2018 2019 2020 2021 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2010 2015 https://spring.io/blog/2021/03/11/announcing-spring-native-beta

Slide 57

Slide 57 text

2016 2017 2018 2019 2022 2014 2013 2023 Spring 5 Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2012 2011 2015 /BUJWF&YFDVUBCMFT 2010 2021 2020 Application sources Package application Load and Parse configuration analyze dependencies build dependency tree execute code Native image Runtime Build time

Slide 58

Slide 58 text

(FUUJOHTUBSUFEXJUI /BUJWF https://gbiomed.kuleuven.be/nl/biomedia/christophedeleclusepassievooratletiek Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 2016 2017 Spring 5 Java 21

Slide 59

Slide 59 text

Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 2016 2017 Spring 5 Java 21 Spring AOT Plugin Spring application sources javac Application bytecode AOT sources javac AOT bytecode Native configuration native image compiler Native Executable Substrate VM 8JOEPXT&9&GJMF -JOVY&-'GJMF NBD04.BDI0 /BUJWF&YFDVUBCMFT

Slide 60

Slide 60 text

Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 2016 2017 Spring 5 Java 21 4QSJOH"05 "IFBEPG5JNF Reducing startup time and memory footprint Runtime hints for reflection, resources, serialization, proxies Optional for optimized JVM deployments Precondition for GraalVM native executables AOT is a tradeoff: extra build setup and less flexibility at runtime AOT is compiles spring apps to native executable binaries https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#core.aot

Slide 61

Slide 61 text

plugins {
 id 'org.graalvm.buildtools.native' version '0.9.17'
 } Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 2016 2017 Spring 5 Java 21 (SBBM7./BUJWF*NBHF4VQQPSU GraalVM as the de facto standard for native executables Strong closed world assumption, no runtime adaptations AOT processed application as input native executable Very long build time for actual native code generation Gradle ❯ gradle processAot ❯ gradle processTestAot ❯ gradle bootBuildImage https://docs.spring.io/spring-boot/docs/current/reference/html/native-image.html

Slide 62

Slide 62 text

Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 2016 2017 Spring 5 Java 21 Ý Ý Metrics Tracing Logs distributed tracing https://spring.io/blog/2022/10/12/observability-with-spring-boot-3 0CTFSWBCJMJUZ

Slide 63

Slide 63 text

Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2018 2019 2020 2021 2014 2013 2012 2011 2010 2016 2017 Spring 5 Java 21 BMXBZTCFXBUDIJOH 2022 2023 Beyond traditional monitoring Constant partial degradation/failure Expect the unexpected Answer unknown questions about your system Observability is achieved through a set of tools and practices that aims to turn data points and context into insights

Slide 64

Slide 64 text

Spring Boot 2 Java 11 Java 17 Spring 6 Spring Boot 3 Spring Boot 1 Java 8 Spring 4 2015 2018 2019 2020 2021 2022 2023 2014 2013 2012 2011 2010 2016 2017 Spring 5 Java 21 4QSJOH'SBNFXPSLm /PWFNCFS Foundation for Spring Boot 3.2 3.3 Production ready on JDK 17 21 LTS

Slide 65

Slide 65 text

CZEFTJHOPSCZDIBODF CVUSFBMMZDPPM https://www.imd.org/ibyimd/brain-circuits/five-steps-to-building-an-inclusive-strategy/

Slide 66

Slide 66 text

5IF&OE

Slide 67

Slide 67 text

߅ࢿ୍ নࣻৌ ӒܻҊ׼Ӕ݃௄ழޭפ౭प https://charity.lovetoknow.com/Words_to_Thank_Volunteers

Slide 68

Slide 68 text

3FGFSFODF Spring Framework 6 Infrastructure Themes Cloud Native Spring in Action JVM Kubernetes: Optimizing Kubernetes for Java Developers Kubernetes Native Java with Quarkus