Giter Site home page Giter Site logo

otus-project's Introduction

Описание проекта

Данный проект является итоговой квалификационной работой по завершении курса "DevOps практики и инструменты" Составными частями проекта являются:

  1. Развернутая инфраструктура, включающая в себя:

    • Оркестратор микросервисов: Kubernetes (v1.22 для Яндекс.Облака)
    • Брокер сообщений: RabbitMQ (v3.11.7)
    • База данных: MongoDB (v4.0)
  2. Сервис,обеспечивающий непрерывную интеграции/развертывание:

    • Менеджер CI/CD: Jenkins
  3. Инструменты, осуществляющие логирование и мониторинг:

    • Prometheus (v2.39.1)
    • Grafana (v9.2.4)
  4. Непосредственно приложение, состоящее из двух компонентов:

    • UI
    • Backend

Описание приложения

Приложение представляет из себя поисковый сервис, обрабатывающий одну или несколько веб-страниц на предмет наличия заданных в поисковом запросе слов или словосочетаний. В качестве результата работы сервис возвращает URL страниц наряду с количеством запрашивамых вхождений.

Необходимые компоненты

Для работы приложения необходимы следующие утилиты:

  • yc (при необходимости развертывания в Яндекс.Облаке)
  • minikube (для локальной разработки)
  • Helm

Порядок установки

  1. Разворачиваем кластер
  • (Только для Яндекс.Облака) Кластер разворачивается автоматически средствами yc:
./cluster.sh
  • (Для локальной разработки) Кластер разворачивается автоматически средствами minikube:
minikube start
  1. После успешного разворачивания кластера необходимо установить project chart:
cd kubernetes/Charts
helm install project ./project
  1. Наконец, можно выполнить команду
  • (для Яндекс.Облака)
kubectl get svc

перейти по EXTERNAL IP для приложения ui и пользоваться развернутым сервисом.

  • (для локальной разработки)
kubectl port-forward --namespace default svc/project-ui 8000:80 

перейти по адресу localhost:8000 и пользоваться развернутым сервисом.

  1. CI/CD пайплайн реализован средствами Jenkins.

Первый старт

PRESS X TO WIN

Мониторинг и логирование

Prometheus

Для входа в UI необходимо выполнить команду:

kubectl port-forward svc/project-kube-prometheus-stack-prometheus 9090

Prometheus будет доступен по адресу:

http://localhost:9090/

Grafana

Для входа в UI необходимо выполнить команду:

kubectl port-forward svc/project-grafana 8880

Grafana будет доступна по адресу:

http://localhost:8880/

logpass: admin/prom-operator

otus-project's People

Contributors

maddogsstyle avatar

Watchers

 avatar

Forkers

n1l

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.