graph TD
A[Store Service]--> B[Order Service]
A[Store Service] --> C[Warehouse Service]
A[Store Service] --> D[Warranty Service]
B[OrderService] --> D[Warranty Service]
B[OrderService] --> C[Warehouse Service]
C[Warehouse Service] --> D[Warranty Service]
Все сервисы имеют health-чеки:
curl https://warranty-service-app.herokuapp.com/manage/health --user management:passwd | jq
{
"status": "UP",
"components": {
"db": {
"status": "UP",
"details": {
"database": "PostgreSQL",
"validationQuery": "isValid()"
}
},
"ping": {
"status": "UP"
}
}
}
Для каждого модуля отдается OpenAPI спецификация в формате json, для просмотра можно использовать Swagger UI
http://{{baseUrl}}/swagger-ui.html
# установить gradle wrapper
./gradlew wrapper
# сборка проектов
./gradlew clean build
Запуск проектов локально, PostgreSQL в контейнере:
docker compose up -d postgres
./gradlew store-service:bootRun
Запуск проектов через Docker Compose:
docker compose build
dcoker compose up -d
Для проверки работоспособности системы используются скрипты Postman. В папке postman содержится коллекция запросов к серверу и два enviroment'а:
Для автоматизированной проверки используется GitHub Actions, CI/CD содержит шаги:
- сборка;
- деплой каждого приложения на Heroku;
- прогон скриптов postman через newman для enviroment'а heroku.