O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

How to develop your first cloud-native Applications with Java - 30 Minutes

252 visualizações

Publicada em

Cloud Native Starter for Java EE based Microservices on Kubernetes and Istio

Code: https://github.com/nheidloff/cloud-native-starter

Documentation: https://github.com/nheidloff/cloud-native-starter#documentation

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

How to develop your first cloud-native Applications with Java - 30 Minutes

  1. 1. How to develop your first cloud-native Applications with Java— Niklas Heidloff Developer Advocate, IBM @nheidloff Harald Uebele Developer Advocate, IBM @Harald_U
  2. 2. Once upon a time ...
  3. 3. “Never not be afraid” @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter Grug Crood Beginning of ‘The Croods’
  4. 4. “Microservices are a software development technique [...] that structures an application as a collection of loosely coupled services.” Wikipedia @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
  5. 5. Continuous delivery → DevOps Elasticity → Responsive apps What are cloud-native Applications? @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
  6. 6. New Options → New Challenges
  7. 7. “A container image is a lightweight, standalone, executable package of software that includes everything needed to run an application.” docker.com #IBMDeveloper github.com/nheidloff/cloud-native-starter Infrastructure Host Operating System Container Runtime AppA AppB AppC AppD AppE
  8. 8. “I’m a caveman. Can you explain containers so that I understand it?” @nheidloff @Harald_U Grug Crood Caveman learning microservices
  9. 9. Portable Containers
  10. 10. Java Image @nheidloff @Harald_U Open source stack OpenJ9 0.12.1 OpenJDK 8u202-b08 from AdoptOpenJDK Open Liberty 18.0.0.4 MicroProfile 2.1 Dockerfile #IBMDeveloper github.com/nheidloff/cloud-native-starter
  11. 11. “Kubernetes (K8s) is an open- source system for automating deployment, scaling, and management of containerized applications.” kubernetes.io @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
  12. 12. “When a container contains everything to run a microservice, why do I need Kubernetes?” @nheidloff @Harald_U Grug Crood Caveman learning microservices
  13. 13. Example Application
  14. 14. Example Application – REST APIs Web-App Web-API Articles Authors Browser Kubernetes with Istio
  15. 15. Consuming REST APIs @nheidloff @Harald_U MicroProfile Rest Client Type-safe approach to invoke RESTful services AuthorsService.java AuthorsServiceDataAccess.java
  16. 16. “Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data.” github.com/istio/istio @nheidloff @Harald_U
  17. 17. “Why do I need a service mesh? Can’t I just use Kubernetes?” @nheidloff @Harald_U Grug Crood Caveman learning microservices
  18. 18. Example Application – Traffic Management Web-App Web-API v1 Articles Web-API v2 Authors Browser Kubernetes with Istio
  19. 19. Traffic Management – Web API Version 1
  20. 20. Traffic Management – Web API Version 2
  21. 21. Traffic Management @nheidloff @Harald_U Example: 80% / 20% splitting ingress.yaml
  22. 22. Traffic Management Demo
  23. 23. “Optimizing Enterprise Java for a Microservices Architecture. [...] by innovating [...] with a goal of standardization.” microprofile.io @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
  24. 24. “Dude, I just learned Istio and Kubernetes. Can you show me a simple MicroProfile example?” @nheidloff @Harald_U Grug Crood Caveman learning microservices
  25. 25. Example Application – Resiliency Web-App Web-API Articles Authors Browser Kubernetes with Istio
  26. 26. Resiliency @nheidloff @Harald_U Authors service not available Usage of default values Service.java
  27. 27. Resiliency @nheidloff @Harald_U Articles service not available MicroProfile Fallback annotation Service.java
  28. 28. Resiliency Demo
  29. 29. Resiliency Demo – No Authors and Articles Service
  30. 30. “Microservices sound great, but where is the log file?” @nheidloff @Harald_U Grug Crood Caveman learning microservices
  31. 31. Monitoring MetricsTracingLogging Observability @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
  32. 32. Example Application – Distributed Logging Web-App Web-API Articles Authors Browser Kubernetes with Istio
  33. 33. Distributed Logging
  34. 34. Example Application – Distributed Logging Web-App Web-API Articles Authors Browser Kubernetes with Istio
  35. 35. Distributed Logging
  36. 36. Try out the end-to-end microservices example cloud-native-starter! @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter
  37. 37. Architecture: End-to-End Example ‘cloud-native-starter’ Web-App NoSQL / Cloudant Web-API v1 Articles Web-API v2 Authors Web-App SQL / Db2 OpenID / App ID LogDNASysdig Authentication @nheidloff @Harald_U Browser Kubernetes with Istio Optional Cloud Services Ingress
  38. 38. IBM Cloud Kubernetes Service including Istio and Knative
  39. 39. “Never not be afraid” @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter Grug Crood Beginning of ‘The Croods’
  40. 40. “Never be afraid” @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter Grug Crood End of ‘The Croods’
  41. 41. IBM Developer developer.ibm.com IBM Cloud Lite account ibm.biz/nheidloff IBM loves open source Kubernetes and Istio OpenJ9 & AdoptOpenJDK MicroProfile Open Liberty Get familiar with cloud- native applications and microservices Thank you ! Get the code à @nheidloff @Harald_U #IBMDeveloper github.com/nheidloff/cloud-native-starter

×