batala microservices repository
Добавил Dockerfile Чтобы собрать свой образ необходимо:
- Перейти в директорию docker-monolith
- Выполнить комманду
docker build -t reddit:local-test .
- Для запуска приложения выполнить команду:
docker run -d -p 9292:9292 --name reddit reddit:local-test
- Для проверки работы приложения в адресной строке браузера ввести http://127.0.0.1:9292
Монолитное приложение разделил на микромерсвисы. Оптимизировал размер контейнеров с помощью базовых образов на alpine Для запуска приложения выполнить команды:
docker network create reddit
docker run -d --network reddit --network-alias mongodb --name mongodb -v reddit_db:/data/db mongo:latest
docker run -d --network reddit --network-alias app_post --name app_post --env POST_DATABASE_HOST=mongodb rshalgochev/post:1.0
docker run -d --network reddit --network-alias app_comment --name app_comment --env COMMENT_DATABASE_HOST=mongodb rshalgochev/comment:2.0
docker run -d --network reddit --name app_ui -p 9292:9292 --env POST_SERVICE_HOST=app_post --env COMMENT_SERVICE_HOST=app_comment rshalgochev/ui:2.0
Проверить рабоу приложения можно перейдя в браузере по адресу http://127.0.0.1:9292
Чтобы остановить запущенное приложение выполнить команду:
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
Написал docker-compose.yml Чтобы чтобы развернуть приложение выполнить команду
docker-compose up -d
Если необходимо переопределить стандартный префикс проекта, то запустить необходимо командой
docker-compose -p "PROJECT_NAME" up -d
Автоматизировал запуск сервера gitlab. Чтобы запустить сервер необходимо в директории gitlab-ci/terraform создать файл terrafotm.tfvars из файла terrafotm.tfvars.exmple. Затем выполнить команду:
terraform apply
Дождаться создания ВМ в облаке и запуска сервера gitlab-ci. Затем подключиться по ssh и провести первоначальную настройку самого gitlab, а имено - настроить пароль для пользователя root. Далее можно выполнить нужные настройки в web-части сервиса. После создания проекта необходимо перейти в настройки CI/CD, узнать там токен для регистрации gitlab-runner и запустить в директории gitlab-ci/ansible плейбук, который зарегистрирует раннер командой:
ansible-playbook register_runner.yml -e gitlab_token=your_token -e gitlab_url=your_gitlab_url
ссылки на образы
https://hub.docker.com/repository/docker/batala/comment
https://hub.docker.com/repository/docker/batala/post
https://hub.docker.com/repository/docker/batala/ui
Для запуска выполнить следующий порядок действий: Перейти в директорию docker и заполнить .env файл, образец заполнения в .env.example Запустить порилождение и систему мониторинга командой docker-compose up -d Для проверки работы мониторинга перейти в браузере по адресу http://адрес сервера на котором запущен compouse:9090
- Развернул кластер kubernetes
- Подготовил манифесты для развертывания приложений
- Выполнил развертывание командами
kubectl apply -f mongo-deployment.yml
kubectl apply -f ui-deployment.yml
kubectl apply -f post-deployment.yml
kubectl apply -f comment-deployment.yml
- Написал конфиг terraform и ansible для автоматизации развертывания кластера
- Развернул manageg-кластер kubernetes в yandex-cloud
- Подготовил автоматизацию через сценарий terraform для запуска кластера
- Чтобы запустить выполнить команду:
cd kubernetes/managed-k8s-terraform && \
terraform apply
- Подготовил конфиги сервисов для настройки взаимодействия компонентов прилоения между собой в кластере
- Выполнил установку приложений через kubectl
- Подготовил манифесты для применения сетевых политик, запроса постоянного хранилища
- Подготовил манифест для настройки ingress-контроллера
- Установил ingress-контроллер и задеплоил приложение