Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java EE meets Microservices: MicroProfile 2.x to the Rescue

414 views

Published on

Die 2016 gegründete und inzwischen in der Eclipse Foundation beheimatete Initiative MicroProfile ist angetreten, die Lücke zwischen dem Enterprise-Java-Standard (Java EE a.k.a. Jakarta EE) und den Praxisanforderungen Microservices-basierter Architekturen zu schließen. Das bestehende Momentum der Java-EE-Community als Hebel nutzen und organisch um den Bedarf der Microservices-Community ergänzen, so lautet der Plan. Und dieser scheint aufzugehen. In nur wenigen Monaten ist es gelungen, eine Reihe sinnvoller Microservices-relevanter APIs mit bestehenden Java EE 7/8 APIs zu kombinieren und diese in regelmäßigen MicroProfile-Releases zu veröffentlichen. Egal ob Health Check, Metrics, Fault Tolerance, JWT Propagation, Configuration, Tracing oder Open API, MicroProfile scheint die richtigen Antworten – sprich APIs – im Gepäck zu haben. Die Session zeigt den aktuellen Stand von MicroProfile und demonstriert dessen Mehrwert anhand praktischer Beispiele.

Published in: Software
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Java EE meets Microservices: MicroProfile 2.x to the Rescue

  1. 1. #WISSENTEILEN Java EE meets Microservices Microprofile 2.x to the Rescue Lars Röwekamp CIO New Technologies @mobileLarson @_openknowledge #WISSENTEILEN
  2. 2. #WISSENTEILEN ÜBER OPEN KNOWLEDGE Branchenneutrale Softwareentwicklung & IT-Beratung
  3. 3. #WISSENTEILEN ÜBER MICH Wer bin ich - und wenn ja, wie viele? • CIO New Technologies • Enterprise & Mobile • Autor, Speaker, Coach & Mentor • Snowboard & MTB Enthusiast (a.k.a. “stets bemüht“) Lars Röwekamp (a.k.a. @mobileLarson)
  4. 4. #WISSENTEILEN Mein Freund der Microservice
  5. 5. #WISSENTEILEN
  6. 6. #WISSENTEILEN Das geht mit JEE?
  7. 7. #WISSENTEILEN Technologisch? Auf jeden Fall!
  8. 8. #WISSENTEILEN Management Monitoring Availability Security (* Java EE 7 APIs)
  9. 9. #WISSENTEILEN Ok, das geht mit JEE. Aber passt das auch?
  10. 10. #WISSENTEILEN „Max cohesion, min coupling.“ JEE Business Component Boundary Entity Control Pattern je Service ein eigenes WAR Kommunikation via REST
  11. 11. #WISSENTEILEN
  12. 12. #WISSENTEILEN Unabhängig?
  13. 13. #WISSENTEILEN JEE
  14. 14. #WISSENTEILEN App Server?
  15. 15. #WISSENTEILEN
  16. 16. #WISSENTEILEN Ich will meinen Monolithen zurück!
  17. 17. #WISSENTEILEN Don‘t panic!
  18. 18. #WISSENTEILEN Folks, we must talk …
  19. 19. #WISSENTEILEN
  20. 20. #WISSENTEILEN „Just enough Server“ • Self-Contained Java Microservices (.jar) • Java EE Komponenten on demand • Embedded Servlet / Web Engine • more to come … Das geht mit Java EE? JEE
  21. 21. #WISSENTEILEN
  22. 22. #WISSENTEILEN Die Mission: „An open forum to optimize Enterprise Java for a microservices architecture by innovating across multiple implementations and collaborating on common areas of interest with a goal of standardization.“ MicroProfile
  23. 23. #WISSENTEILEN Brücke zwischen Community und Standard • breite Kooperation von Herstellern • Portabel zwischen Implementierungen • Förderung von Experimentierfreudigkeit • Risikominimierung • zügige Innovationen MicroProfile
  24. 24. #WISSENTEILEN Der Weg in die MicroProfile Zukunft: • Schritt 1: Den „Hebel“ Java EE nutzen • Schritt 2: Organische Innovationen • Schritt 3: Zusammenarbeit via Open Source MicroProfile (*aktuelle Planung: 2-4 Releases/Jahr)
  25. 25. #WISSENTEILEN Q4 2016 Move to (*MicroProfile 1.0: JAX-RS 2.0, CDI 1.2, JSON-P 1.0) MP v. 1.4 & 2.0 Q3 2018 MP v. 2.2 Q1 2019 MP v. 2.1 Q2 2017 MP v. 1.1 Q2 2018
  26. 26. #WISSENTEILEN
  27. 27. #WISSENTEILEN
  28. 28. #WISSENTEILEN Weniger ist mehr
  29. 29. #WISSENTEILEN Was brauche ich mindestens um einen Microservice auf Basis von Java EE APIs implementieren zu können? • JAX-RS 2.1 • CDI 2.0 • JSON-P 1.1 MicroProfile
  30. 30. #WISSENTEILEN
  31. 31. #WISSENTEILEN verteilte Konfigurationen
  32. 32. #WISSENTEILEN Wie kann ich auf einheitliche Art und Weise in meinen Services unterschiedlichste Konfigurationsmechanismen nutzen? • MicroProfile Config 1.3 MicroProfile
  33. 33. #WISSENTEILEN
  34. 34. #WISSENTEILEN
  35. 35. #WISSENTEILEN
  36. 36. #WISSENTEILEN MicroProfile Config 1.3 • Default ConfigSources* System Properties, Env Vars & Config File • Custom ConfigSources* z.B. DB oder ConfigServer • Startup vs. Laufzeit ConfigProperty vs Provider MicroProfile *inkl. ordinal
  37. 37. #WISSENTEILEN
  38. 38. #WISSENTEILEN
  39. 39. #WISSENTEILEN Wie geht‘s, wie steht‘s
  40. 40. #WISSENTEILEN Wie kann ich auf einheitliche Art und Weise den Health Status und weitere Metriken meines Microservices abfragen? • MicroProfile HealthCheck 1.0 • MicroProfile Metrics 1.1 MicroProfile
  41. 41. #WISSENTEILEN MicroProfile HealthCheck 1.0 • M2M, e.g Kuberentes Liveness & Readiness • terminate, shutdown, replace? • Single HC Endpoint pro MP Runtime (/health) • logisches UND (gesund, wenn alle gesund) • REST/HTTP (andere optional z.B. JMX) MicroProfile
  42. 42. #WISSENTEILEN
  43. 43. #WISSENTEILEN http://myHost.com:8080/health *optional secured
  44. 44. #WISSENTEILEN
  45. 45. #WISSENTEILEN
  46. 46. #WISSENTEILEN
  47. 47. #WISSENTEILEN MicroProfile Metrics 1.1 • deutlich mehr als nur UP/DOWN Info für Scopes „base“, „vendor“, „application“ • Datentrends für Kapazitätsplanung • Auslastung für automatisches Scalling • proaktives Feststellen von Problemen* MicroProfile (z.B. Disk-Usage Anomalie)
  48. 48. #WISSENTEILEN MicroProfile Metrics 1.1 • Pflicht- und Optional-Metrics • Tags via Metric Description & Config API • Metadaten (unit, type, description, …) • Reusable Metrics (default ist false) • JSON & Prometheus Format (mehr geplant) MicroProfile
  49. 49. #WISSENTEILEN
  50. 50. #WISSENTEILEN https://myhost.com:9443/metrics/application/... *A server SHOULD implement TLS encryption by default.
  51. 51. #WISSENTEILEN MicroProfile Metrics 1.1 • @ Timer • @ Counter • @ Gauge • @ Meter • @ Histogram MicroProfile
  52. 52. #WISSENTEILEN Toleranz ist gefragt
  53. 53. #WISSENTEILEN Wie kann ich mein System so aufbauen, dass es auch bei temporäre Ausfälle und Problemsituation einzelner Microservices stabil läuft (a.k.a. Resilient)? • MicroProfile Fault Tolerance 2.0 MicroProfile
  54. 54. #WISSENTEILEN MicroProfile Fault Tolerance 2.0 • Business Logik um Fehlertoleranz erweitern • Trennung der Logik von deren Ausführung • Ausführung erlaubt Resilience Patterns • CDI Interceptor als Mittel zum Zweck • Hystrix/Failsafe als Vorbilder für Standard API MicroProfile
  55. 55. #WISSENTEILEN MicroProfile Fault Tolerance 2.0 • @Timeout • @ Retry • @ Fallback • @ CircuitBreaker • @ Bulkhead MicroProfile (Konfiguration via Config API möglich)
  56. 56. #WISSENTEILEN
  57. 57. #WISSENTEILEN Fault Tolerance via @Retry und @Fallback
  58. 58. #WISSENTEILEN Fault Tolerance via @Timeout und @Fallback
  59. 59. #WISSENTEILEN Circuit Breaker
  60. 60. #WISSENTEILEN Circuit Breaker
  61. 61. #WISSENTEILEN Circuit Breaker
  62. 62. #WISSENTEILEN Fault Tolerance via @CircuitBreaker und @Fallback
  63. 63. #WISSENTEILEN Bulkheads
  64. 64. #WISSENTEILEN Bulkheads
  65. 65. #WISSENTEILEN Bulkheads
  66. 66. #WISSENTEILEN Fault Tolerance via @Bulkhead und @Fallback
  67. 67. #WISSENTEILEN Sicher ist sicher! Sicher?
  68. 68. #WISSENTEILEN Wie sichere ich meine Microservices gegen unbefugten Zugriff ab OHNE dass bei jedem Service eine neue Authentifizierung und Authorisierung stattfinden muss? • MicroProfile JWT Auth 1.1 MicroProfile
  69. 69. #WISSENTEILEN
  70. 70. #WISSENTEILEN
  71. 71. #WISSENTEILEN
  72. 72. #WISSENTEILEN
  73. 73. #WISSENTEILEN
  74. 74. #WISSENTEILEN
  75. 75. #WISSENTEILEN
  76. 76. #WISSENTEILEN MicroProfile JWT Auth 1.1 • Security Token aus Request extrahieren • Validierung des Tokens vornehmen • Claims aus Token extrahieren • (JEE) Security Context erzeugen MicroProfile
  77. 77. #WISSENTEILEN MicroProfile JWT Auth 1.1 • type, alg, kid (header) • iss, sub, exp, iat, jti, (payload IANA*) • upn, groups (payload mp jwt auth) • etliche optionale Claims MicroProfile (*Internet Assigend Number Authority)
  78. 78. #WISSENTEILEN JWT Auth Step 1: MS als „requires MP-JWT“ markieren
  79. 79. #WISSENTEILEN JWT Auth Step 2: Token / Claims injecten
  80. 80. #WISSENTEILEN JWT Auth Step 3: Role-based Access Control hinzufügen
  81. 81. #WISSENTEILEN Was geht ab?
  82. 82. #WISSENTEILEN Wie lässt sich ein Request-Flow über Servicegrenzen hinaus verfolgen? • MicroProfile Open Tracing 1.3 MicroProfile
  83. 83. #WISSENTEILEN
  84. 84. #WISSENTEILEN
  85. 85. #WISSENTEILEN MicroProfile Open Tracing 1.3 • verteiltes Tracing über Servicegrenzen hinweg • Correlation ID als gemeinsamer Nenner • OpenTracing Standard als Basis • Achtung: KEIN eigener Tracing Service sondern lediglich dessen Support MicroProfile
  86. 86. #WISSENTEILEN Tracing für JAX-RS Methoden aktivieren
  87. 87. #WISSENTEILEN Tracing für einzelne Methoden deaktivieren
  88. 88. #WISSENTEILEN
  89. 89. #WISSENTEILEN
  90. 90. #WISSENTEILEN Sesam öffne dich …
  91. 91. #WISSENTEILEN Wie kann ich meine Microservices APIs so dokumentieren, dass sie von anderen verstanden und genutzt werden können. • MicroProfile Open API 1.1 MicroProfile
  92. 92. #WISSENTEILEN (Quelle: MicroProfile Open Api 1.0 Specifikation)
  93. 93. #WISSENTEILEN MicroProfile Open API 1.1 • OpenAPI v3 Standard (abgeleitet von Swagger) • Scan- und Annotationen-basiert (fast 50 @s) • frei konfigurierbar (Scanpath etc.) • mit YAML, JSON kombinierbar (in META-INF) • Filter setzen via Config API MicroProfile
  94. 94. #WISSENTEILEN
  95. 95. #WISSENTEILEN
  96. 96. #WISSENTEILEN
  97. 97. #WISSENTEILEN
  98. 98. #WISSENTEILEN Back to the Future
  99. 99. #WISSENTEILEN (based on Java EE 8)
  100. 100. #WISSENTEILEN Quelle: https://github.com/eclipse/microprofile/milestones/
  101. 101. #WISSENTEILEN MicroProfile Ramp-Up MicroProfile.io bit.ly/MicroProfileForum github.com/microprofile/microprofile-samples
  102. 102. #WISSENTEILEN
  103. 103. #WISSENTEILEN
  104. 104. #WISSENTEILEN „Ein Microservice kommt selten allein!“ by Lars Röwekamp
  105. 105. #WISSENTEILEN
  106. 106. #WISSENTEILEN „Komplexität wird durch Microservices verlagert, nicht verringert! by Lars Röwekamp
  107. 107. #WISSENTEILEN
  108. 108. #WISSENTEILEN „BFF“ Best Friends Forever!
  109. 109. #WISSENTEILEN FRAGEN ? ? ?
  110. 110. #WISSENTEILEN Kontakt LARS RÖWEKAMP CIO NEW TECHNOLOGIES lars.roewekamp@openknowledge.de +49 (0)441 4082 – 0 @mobileLarson @_openknowledge OFFENKUNDIGGUT
  111. 111. #WISSENTEILEN Bildnachweise #03 © Daniel Steger – openphoto.net #06,17 © Andrew Rich – istockphoto.com #15 © Netflix Techblock - techblog.netflix.com #28 © print10 – istockphoto.com #98 ©MichaelJayBerlin - shutterstock.com All other pictures inside this presentation orginate from pixabay.com or were created by my own.

×