Skip to content
This repository was archived by the owner on Jun 27, 2025. It is now read-only.

Репозиторий для проектной работы курса "DevOps-инженер облачных сервисов". Финальный проект второго семестра: Настройка CI/CD, описание миграции БД и Helm-чартов и деплой в кластер Kubernetes приложения интернет-магазина "Сосисочная"

License

Notifications You must be signed in to change notification settings

DmitryFedoroff/cloud-services-engineer-sausage-store-project-sem2

 
 

Repository files navigation

Sausage Store

image

Technologies used

  • Frontend – TypeScript, Angular.
  • Backend – Java 16, Spring Boot, Spring Data.
  • Database – H2.

Installation guide

Backend

Install Java 16 and maven and run:

cd backend
mvn package
cd target
java -jar sausage-store-0.0.1-SNAPSHOT.jar

Frontend

Install NodeJS and npm on your computer and run:

cd frontend
npm install
npm run build
npm install -g http-server
sudo http-server ./dist/frontend/ -p 80 --proxy http://localhost:8080

Then open your browser and go to http://localhost

Итоги

Пайплайн CI/CD

Автоматизированный процесс включает три основных этапа:

  • Build & Push Docker Images (1 мин. 59 сек.) - сборка и публикация Docker-образов всех микросервисов в Docker Hub
  • Package & Push Helm Chart (11 сек.) - упаковка Helm-чарта и загрузка в Nexus Repository
  • Deploy to Kubernetes (20 сек.) - автоматическое развертывание приложения в целевой Kubernetes-кластер
Скриншот - Полный цикл CI/CD

CI/CD Pipeline Execution

Состояние компонентов в Kubernetes

Все компоненты приложения успешно развернуты и функционируют в namespace r-devops-magistracy-project-2sem-1853711172:

  • mongodb-0 - база данных MongoDB (StatefulSet)
  • postgres-0 - база данных PostgreSQL (StatefulSet)
  • sausage-store-backend - основной API-сервис
  • sausage-store-backend-report - сервис генерации отчетов
  • sausage-store-frontend - веб-интерфейс приложения

Статус всех pod'ов: Running без единого рестарта, что подтверждает стабильность работы.

Скриншот - Работоспособность всех микросервисов

Kubernetes Pods Status

Сетевая конфигурация

Ingress-ресурс sausage-store-frontend-ingress настроен для обработки внешнего трафика:

  • Домен: dmitryfedoroff.2sem.students-projects.ru
  • Внешний IP: 158.160.176.69
  • Порты: 80 (HTTP), 443 (HTTPS с автоматическим TLS)
  • Класс: nginx

Конфигурация обеспечивает безопасный доступ к приложению через HTTPS с автоматическим перенаправлением с HTTP.

Скриншот - Ingress-контроллер и маршрутизация трафика

Ingress Configuration

Автомасштабирование

VPA для backend-сервиса активен и предоставляет рекомендации по оптимизации ресурсов:

  • Режим обновления: Auto
  • Статус: RecommendationProvided
  • Рекомендации для контейнера backend:
    • Target CPU: 100m, Memory: 256Mi
    • Uncapped Target CPU: 25m, Memory: 262144k
    • Upper Bound CPU: 100m, Memory: 589176862

VPA анализирует фактическое потребление ресурсов и предлагает оптимальные значения для повышения эффективности использования кластера.

Скриншот - Vertical Pod Autoscaler (VPA)

VPA Recommendations

HPA для backend-report сервиса обеспечивает горизонтальное масштабирование:

  • Метрика: CPU utilization (целевое значение 75%)
  • Диапазон реплик: от 1 до 5
  • Текущее состояние: 1 реплика при загрузке CPU 1%
  • Статус масштабирования: DesiredWithinRange

HPA успешно рассчитывает количество реплик на основе загрузки CPU и поддерживает оптимальное количество экземпляров сервиса.

Скриншот - Horizontal Pod Autoscaler (HPA)

HPA Status

Контакты

About

Репозиторий для проектной работы курса "DevOps-инженер облачных сервисов". Финальный проект второго семестра: Настройка CI/CD, описание миграции БД и Helm-чартов и деплой в кластер Kubernetes приложения интернет-магазина "Сосисочная"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 35.4%
  • Go 26.8%
  • TypeScript 25.2%
  • HTML 5.5%
  • Dockerfile 4.7%
  • JavaScript 2.2%
  • CSS 0.2%