Docker, Docker Compose, Microservices, Spring Cloud, Spring Boot, React, Angular, H2, Hibernate, Liquibase
The application structure is as follows.
- admin-server - Microservice implemented using Spring Admin Server. More info
- config-server - Microservice implemented using Spring Config Server. More info
- eureka-discovery-service - Microservice implemented using Spring Eureka. More info
- gateway-service - Microservice implemented using Spring Cloud Gateway. More info
- user-management-service - Microservice implemented using Spring boot. More info
- react-client - A NodeJs application implemented using React. This consumes services hosted by server side. More info
- angular-client - A NodeJs application implemented using Angular. This consumes services hosted by server side. More info
$ cd microservices path
$ mvnw clean install
$ mvnw spring-boot:run
React
$ cd react-client
$ yarn install
$ yarn start
Angular
$ cd angular-client
$ npm install
$ ng serve
React
http://localhost:3000
Angular
http://localhost:4200
Test structure is as follows.
- perf-test - A Apache JMeter test plan designed to load test functional behavior and measure performance. More info
mvnw clean install
docker-compose build --pull
docker-compose push
docker-compose up -d
minikube start
minikube dashboard
kubectl create deployment eureka-discovery-service --image=mariobros/eureka-discovery-service:0.0.1-SNAPSHOT --port=8761
kubectl expose deployment eureka-discovery-service --type=NodePort
kubectl create deployment config-server --image=mariobros/config-server:0.0.1-SNAPSHOT --port=8888
kubectl expose deployment config-server --type=NodePort
kubectl create deployment admin-server --image=mariobros/admin-server:0.0.1-SNAPSHOT --port=9000
kubectl expose deployment admin-server --type=NodePort
kubectl create deployment gateway-service --image=mariobros/gateway-service:0.0.1-SNAPSHOT --port=8765
kubectl expose deployment gateway-service --type=NodePort
kubectl create deployment user-management-service --image=mariobros/user-management-service:0.0.1-SNAPSHOT --port=8080
kubectl expose deployment user-management-service --type=NodePort
kubectl create deployment angular-client --image=mariobros/angular-client:0.0.1-SNAPSHOT --port=81
kubectl expose deployment angular-client --type=NodePort
kubectl create deployment react-client --image=mariobros/react-client:0.0.1-SNAPSHOT --port=82
kubectl expose deployment react-client --type=NodePort
kubectl create deployment nginx --image=mariobros/nginx:0.0.1-SNAPSHOT --port=80
kubectl expose deployment nginx --type=NodePort
kubectl create deployment prometheus --image=mariobros/prometheus:0.0.1-SNAPSHOT --port=9090
kubectl expose deployment prometheus --type=NodePort
kubectl create deployment grafana --image=grafana/grafana:latest --port=3000
kubectl expose deployment grafana --type=NodePort