Java Microservices with JHipster, Istio, and Kubernetes

Java Microservices with JHipster, Istio, and Kubernetes

Istio service mesh is one of the coolest kids on the block. It moves the responsibility of service discovery, load balancing, circuit breaking, monitoring, and so on from the application to the platform (Kubernetes), enabling developers to focus on the business code. But setting it up can be a daunting task for beginners and pros alike. This is where JHipster steps in and makes everything a cakewalk. JHipster is a widely used OSS application development platform for creating web applications and microservices in minutes. In this session, you’ll learn how to create a production-grade Java microservice architecture with Spring Boot, Istio, Docker, Kubernetes, and JHipster and deploy it to the cloud in under 30 minutes. As a bonus, you’ll learn how Istio works in the process.

7f408bc67dc9ae3b288ee92d16d3c4c2?s=128

Deepu K Sasidharan

September 18, 2019
Tweet

Transcript

  1. Java Microservices with JHipster, Istio, and Kubernetes San Francisco |

    September 18, 2019 Deepu K Sasidharan @deepu105 | deepu.tech
  2. https://jhipster.tech #CodeOne2019 @java_hipster

  3. https://jhipster.tech #CodeOne2019 @java_hipster

  4. https://jhipster.tech #CodeOne2019 @java_hipster

  5. https://jhipster.tech #CodeOne2019 @java_hipster ▪ ▪ ▪ ▪ ▪

  6. https://jhipster.tech #CodeOne2019 @java_hipster

  7. https://jhipster.tech #CodeOne2019 @java_hipster • • •

  8. https://jhipster.tech #CodeOne2019 @java_hipster ▪ ▪ ▪ ▪ ▪ ▪

  9. https://jhipster.tech #CodeOne2019 @java_hipster

  10. https://jhipster.tech #CodeOne2019 @java_hipster

  11. https://jhipster.tech #CodeOne2019 @java_hipster

  12. https://jhipster.tech #CodeOne2019 @java_hipster

  13. https://jhipster.tech #CodeOne2019 @java_hipster

  14. https://jhipster.tech #CodeOne2019 @java_hipster

  15. https://jhipster.tech #CodeOne2019 @java_hipster

  16. https://jhipster.tech #CodeOne2019 @java_hipster •   •   • • •

      •
  17. https://jhipster.tech #CodeOne2019 @java_hipster

  18. https://jhipster.tech #CodeOne2019 @java_hipster

  19. https://jhipster.tech #CodeOne2019 @java_hipster $ gcloud projects create jhipster-demo - Enable

    billing and Kubernetes Engine API $ gcloud config set project jhipster-demo $ gcloud container clusters create hello-hipster \ --cluster-version 1.13 \ --num-nodes 4 \ --machine-type n1-standard-2 $ gcloud container clusters get-credentials hello-hipster
  20. https://jhipster.tech #CodeOne2019 @java_hipster

  21. https://jhipster.tech #CodeOne2019 @java_hipster $ cd ~/ $ export ISTIO_VERSION=1.3.0 $

    curl -L https://git.io/getLatestIstio | sh - $ ln -sf istio-$ISTIO_VERSION istio $ export PATH=~/istio/bin:$PATH
  22. https://jhipster.tech #CodeOne2019 @java_hipster $ kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin

    \ --user="$(gcloud config get-value core/account)" $ kubectl create namespace istio-system $ cd ~/istio-$ISTIO_VERSION $ helm template install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl apply -f - $ helm template install/kubernetes/helm/istio --name istio --namespace istio-system \ --values install/kubernetes/helm/istio/values-istio-demo.yaml | kubectl apply -f - $ kubectl get svc istio-ingressgateway -n istio-system
  23. https://jhipster.tech #CodeOne2019 @java_hipster

  24. https://jhipster.tech #CodeOne2019 @java_hipster

  25. https://jhipster.tech #CodeOne2019 @java_hipster

  26. https://jhipster.tech #CodeOne2019 @java_hipster

  27. https://jhipster.tech #CodeOne2019 @java_hipster

  28. https://jhipster.tech #CodeOne2019 @java_hipster

  29. https://jhipster.tech #CodeOne2019 @java_hipster $ jhipster import-jdl app.jdl

  30. https://jhipster.tech #CodeOne2019 @java_hipster $ cd kubernetes $ ./kubectl-apply.sh $ watch

    kubectl get pods -n jhipster
  31. https://jhipster.tech #CodeOne2019 @java_hipster

  32. https://jhipster.tech #CodeOne2019 @java_hipster

  33. https://jhipster.tech #CodeOne2019 @java_hipster $ kubectl -n istio-system port-forward $(kubectl -n

    istio-system get pod -l \ app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 $ google-chrome http://localhost:9090
  34. https://jhipster.tech #CodeOne2019 @java_hipster

  35. https://jhipster.tech #CodeOne2019 @java_hipster

  36. https://jhipster.tech #CodeOne2019 @java_hipster

  37. https://jhipster.tech #CodeOne2019 @java_hipster

  38. https://jhipster.tech #CodeOne2019 @java_hipster

  39. https://jhipster.tech #CodeOne2019 @java_hipster

  40. https://jhipster.tech #CodeOne2019 @java_hipster

  41. https://jhipster.tech #CodeOne2019 @java_hipster

  42. https://jhipster.tech #CodeOne2019 @java_hipster

  43. https://jhipster.tech #CodeOne2019 @java_hipster