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. 1.

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

    September 18, 2019 Deepu K Sasidharan @deepu105 | deepu.tech
  2. 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
  3. 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
  4. 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
  5. 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