Cloud Native Java Microservices with JHipster and Istio

Microservices are not everyone’s cup of tea, and they shouldn’t be. Not every problem can or should be solved by microservices. Sometimes building a simple monolith is a far better option. Microservices are solutions for use cases where scale and scalability are important. A few years ago, microservices were all the rage, made popular, especially by companies like Netflix, Spotify, Google, etc. While the hype has died down a bit, genuine use cases still exist. With ongoing advances in cloud computing technologies, building microservices as cloud-native services is the way to go due to many benefits.


This is a companion discussion topic for the original entry at https://developer.okta.com/blog/2022/06/09/cloud-native-java-microservices-with-istio

Hello. Nice presentation.
I have some questions about local vs gcp deployment.
Should I use skaffold for local development ? Is Istio used only with gcp or is it used even when we use minikube for example ?
Other question: When running in local without kube, does these microservices works without service discovery ?

Hi @amirensit, thanks for the comment. You can use Istio with any Kubernetes distribution (cloud or local), regardless of the distribution, you can follow same steps to deploy Istio and get the tutorial running. For example, you can use something like k3s, kind or miniKube as local Kubernetes cluster and install Istio on it. Make sure you have enough nodes and capacity. You will need Istio for service discovery even when running locally so you would have to use something like miniKube or k3s. If you want to develop locally without Kubernetes, you would have to treat each service as a separate app and test them separate since there wont be anything to do discovery and routing

@deepu105 I tried it using 8.0.0-beta.1 and found the following error

ERROR! An error occured while running jhipster:jdl#parseJDL
ERROR! ERROR! In the relationship between Customer and User, User is not declared. If ‘User’ is a built-in entity declare like ‘Customer to User with builtInEntity’.

I changed the relationship in app.jdl file as

relationship OneToOne {
Customer to User with builtInEntity
}

It fixed my error. Do you think this is a correct fix?

Yes, this is the correct fix.