Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Java 21 - Portland Java User Group 2023-10-24

sullis
October 24, 2023

Java 21 - Portland Java User Group 2023-10-24

Portland Java User Group
Portland Oregon
October 24, 2023

sullis

October 24, 2023
Tweet

More Decks by sullis

Other Decks in Programming

Transcript

  1. Java 21
    Sean Sullivan
    Portland Java User Group
    October 24, 2023

    View full-size slide

  2. 📍 Java 21 at Netflix
    📍 Getting ready for Java 21

    View full-size slide

  3. Java 21 at Netflix
    ✅ Java 21 in production since October 6, 2023
    ✅ mission critical application
    ✅ billions of requests

    View full-size slide

  4. Java 21 at Netflix
    October 6, 2023
    😎

    View full-size slide

  5. Validating Java 21
    🔩 Jenkins build
    ● unit tests
    ● functional tests
    ● smoke tests

    View full-size slide

  6. Validating Java 21
    🐤 Canary testing
    ● “test in production”
    ● real production traffic
    ● long running canaries
    ● across multiple AWS regions

    View full-size slide

  7. “Use (unit, integration, smoke) testing and
    canary analysis to validate code before it is
    pushed to production”
    “we recommend the use of canary analysis.
    Canary analysis is an effective means to validate
    live traffic against new changes to a service”
    📚 Netflix Tech blog

    View full-size slide

  8. 🐤 Canary analysis at Netflix

    View full-size slide

  9. 🐤 Canary analysis at Netflix
    “A canary release is a technique to reduce the risk
    from deploying a new version of software into
    production”

    View full-size slide

  10. 🐤 Canary analysis at Netflix
    “A new version of software, referred to as the
    canary, is deployed to a small subset of users
    alongside the stable running version.”
    “Traffic is split between these two versions such that
    a portion of incoming requests are diverted to the
    canary.”

    View full-size slide

  11. 🐤 Canary analysis at Netflix

    View full-size slide

  12. 🐤 Canary analysis at Netflix
    “The quality of the canary version is assessed by
    comparing key metrics that describe the behavior of
    the old and new versions. ”

    View full-size slide

  13. 🐤 Canary analysis at Netflix
    “If there is significant degradation in these metrics,
    the canary is aborted and all of the traffic is routed
    to the stable version in an effort to minimize the
    impact”

    View full-size slide

  14. 🐤 Canary analysis report
    ● CPU utilization
    ● Memory
    ● Garbage collection
    ● Requests per second
    ● Error rate
    ● Log diff

    View full-size slide

  15. 🚧 Getting ready for Java 21
    🚨 GitHub Actions
    🚨 Gradle
    🚨 Lombok
    🚨 Netty

    View full-size slide

  16. 🚨 GitHub Actions
    https://github.com/qos-ch/slf4j/pull/360

    View full-size slide

  17. 🚨 Gradle
    https://github.com/sullis/microbenchmarks-java/pull/6

    View full-size slide

  18. 🚨 Lombok
    https://projectlombok.org/changelog

    View full-size slide

  19. 🚨 Netty
    Java 21 + Netty 4.1.98 + Epoll native transport

    View full-size slide

  20. 🚨 Netty
    https://netty.io/news/index.html

    View full-size slide

  21. 🎆 Final thoughts
    Use automated canary
    analysis to validate
    changes

    View full-size slide