Данный проект является итоговой квалификационной работой по завершении курса "DevOps практики и инструменты" Составными частями проекта являются:
-
Развернутая инфраструктура, включающая в себя:
- Оркестратор микросервисов: Kubernetes (v1.22 для Яндекс.Облака)
- Брокер сообщений: RabbitMQ (v3.11.7)
- База данных: MongoDB (v4.0)
-
Сервис,обеспечивающий непрерывную интеграции/развертывание:
- Менеджер CI/CD: Jenkins
-
Инструменты, осуществляющие логирование и мониторинг:
- Prometheus (v2.39.1)
- Grafana (v9.2.4)
-
Непосредственно приложение, состоящее из двух компонентов:
- UI
- Backend
Приложение представляет из себя поисковый сервис, обрабатывающий одну или несколько веб-страниц на предмет наличия заданных в поисковом запросе слов или словосочетаний. В качестве результата работы сервис возвращает URL страниц наряду с количеством запрашивамых вхождений.
Для работы приложения необходимы следующие утилиты:
- yc (при необходимости развертывания в Яндекс.Облаке)
- minikube (для локальной разработки)
- Helm
- Разворачиваем кластер
- (Только для Яндекс.Облака)
Кластер разворачивается автоматически средствами
yc
:
./cluster.sh
- (Для локальной разработки) Кластер разворачивается автоматически средствами minikube:
minikube start
- После успешного разворачивания кластера необходимо установить project chart:
cd kubernetes/Charts
helm install project ./project
- Наконец, можно выполнить команду
- (для Яндекс.Облака)
kubectl get svc
перейти по EXTERNAL IP для приложения ui
и пользоваться развернутым сервисом.
- (для локальной разработки)
kubectl port-forward --namespace default svc/project-ui 8000:80
перейти по адресу localhost:8000
и пользоваться развернутым сервисом.
- CI/CD пайплайн реализован средствами Jenkins.
PRESS X TO WIN
Для входа в UI необходимо выполнить команду:
kubectl port-forward svc/project-kube-prometheus-stack-prometheus 9090
Prometheus будет доступен по адресу:
http://localhost:9090/
Для входа в UI необходимо выполнить команду:
kubectl port-forward svc/project-grafana 8880
Grafana будет доступна по адресу:
http://localhost:8880/
logpass: admin/prom-operator