Integrating a Spring Boot Application into an Istio Service Mesh
Microservice architectures are experiencing a surge of popularity and with the release of Service Mesh frameworks like Istio, they should be easier to manage and secure in the long run. One of the needs I have seen from our customers is converting their existing monolithic applications into microservices and running in a service mesh. There are patterns for migrating to microservcies, such as the strangler pattern, but getting the microservcies into an Istio service mesh can be a daunting task. A lot of monolithic applications are written in Java and using Spring Boot can be a quick way to extract business logic from the monolith and run it as a microservice within a Service Mesh. This article shows how to develop and deploy a simple Spring Boot Web application into an Istio Service Mesh. Later articles will expand to show more complex services such as a RESTful service.
There are several prerequisites for this article: Java JDK, Docker, Kubernetes, Istio, and a Docker Hub account. If you are developing on your workstation, the quickest way to get started is to install Docker Desktop with Kubernetes, and then install Istio. We will be using Kiali to view Istio resources. Kiali is installed with the default and demo profiles of Istio, so I recommend using the demo profile. You will also need the Docker account to push and pull Docker images you create in this tutorial. Once these systems are up and running you can move on to the next steps.