Member-only story
Working with Microservices-1: Running a Java app that consists of 10 Microservices on a Development server.
In this article series, we will work with a Spring pet clinic application consisting of 10 microservices. It is a Java-based web application developed by Spring company. We will run it on Development, Testing, Staging, and Production environments by using different DevOps tools (Jenkins, Kubernetes and Helm, Docker, Docker Compose, Terraform, Rancher, Nexus Repository, Maven, Ansible, Prometheus and Grafana, GitHub, Amazon Route 53, AWS Certificate Manager, AWS EKS, AWS RDS MySql Database, AWS S3 bucket, Selenium Jobs and Jacoco, Kompose conversion tool, Let’s Encrypt ACME and Cert Manager). We will create each environment and run our application in it. While we are working in Staging and Production environments, we will create full CI/CD Jenkins pipelines for each. We will do all these step by step, in this article series.

In summary, we will do the following for each environment;
In the Testing environment, there are two different QA tests; manual and automated tests (Functional Tests by using Selenium jobs). Firstly, we will make an infrastructure that will make these QA tests on the environment.
Then, in order to do the unit test, we will put the unit test (PetTest.java) that was prepared by the developers in the relevant places in the project file. We will add a Jacoco (Java Code Coverage) plug-in to pom.xml to generate a report (2). Then, we will start the test with the mvn test
command.
After the unit test is finished, we will run Functional Tests on the QA Environment using the Jenkins CI/CD pipeline every evening. For these, we will follow these steps;
- We will package the app into jars…