Skip to content

Sun8877777 microservices repository

License

Notifications You must be signed in to change notification settings

Otus-DevOps-2022-05/Sun8877777_microservices

Repository files navigation

Sun8877777_microservices

Sun8877777 microservices repository

ДЗ-12.Технология контейнеризации.контейнеризации.

Введение в Docker

План Создание docker host Создание своего образа Работа с Docker Hub

Выполнены все пункты задания и задания со *.

ДЗ-13. Docker-образы. Микросервисы

Цели задания

  1. Научиться описывать и собирать Docker-образы для сервисного приложения
  2. Научиться оптимизировать работу с Docker-образами
  3. Запуск и работа приложения на основе Docker-образов, оценка удобства запуска контейнеров при помощи docker run

План

  1. Разбить наше приложение на несколько компонентов
  2. Запустить наше микросервисное приложение

Задание со ⭐

  1. Остановите контейнеры --- docker kill $(docker ps -q)

  2. Запустите контейнеры с другими сетевыми алиасами

  3. Адреса для взаимодействия контейнеров задаются через ENV - переменные внутри Dockerfile 'ов

  4. При запуске контейнеров ( docker run ) задайте им переменные окружения соответствующие новым сетевым алиасам, не пересоздавая образ

  5. Проверьте работоспособность сервиса

commands

docker run -d --network=reddit --network-alias=post_db_mongo --network-alias=comment_db_mongo mongo:latest docker run -d --network=reddit --network-alias=post_new -e POST_DATABASE_HOST='post_db_mongo' -e POST_DATABASE='posts_db' sun8877777/post:1.0 docker run -d --network=reddit --network-alias=comment_new -e COMMENT_DATABASE_HOST='comment_db_mongo' -e COMMENT_DATABASE='comments_db' sun8877777/comment:1.0 docker run -d --network=reddit -e POST_SERVICE_HOST='post_new' -e COMMENT_SERVICE_HOST='comment_new' -p 9292:9292 sun8877777/ui:1.0

Выполнено

Задания со ⭐ Попробуйте собрать образ на основе Alpine Linux Придумайте еще способы уменьшить размер образа Можете реализовать как только для UI сервиса, так и для остальных ( post , comment ) Все оптимизации проводите в Dockerfile сервиса. Дополнительные варианты решения уменьшения размера образов можете оформить в виде файла Dockerfile.<цифра> в папке сервиса

Выполнено

HW14 Docker: сети, docker-compose

  • Работа с сетями в Docker
  • Использование docker-compose

Задание:

  1. Изменить docker-compose под кейс с множеством сетей, сетевых алиасов (стр 18). Сделано
  2. Параметризуйте с помощью переменных окружений: • порт публикации сервиса ui • версии сервисов • возможно что-либо еще на ваше усмотрение Сделано
  3. Параметризованные параметры запишите в отдельный файл c расширением .env сделано
  4. Без использования команд source и export docker-compose должен подхватить переменные из этого файла. Сделано

При запуске проекта вы увидите, что все создаваемые docker-compose сущности имеют одинаковый префикс, к примеру dockermicroservices_ui_1 Этот префикс можно изменит с помощью параметра -p. Оно образуется из названия папки, в которой находится docker-compose файл. docker-compose -p compose_project up -d


Задание со * Создайте docker-compose.override.yml для reddit проекта, который позволит • Изменять код каждого из приложений, не выполняя сборку образа сделано • Запускать puma для руби приложений в дебаг режиме с двумя воркерами (флаги --debug и -w 2) Итоговый файл закоммитьте. сделано

HW16 Устройство Gitlab CI. Построение процесса непрерывной поставки.

Выполнены все пунктиы основного задания. Сделано 1 -е задание со *.

HW17 Введение в мониторинг. Системы мониторинга.

Выполнены все пунктиы основного задания. Ссылки на образы: https://hub.docker.com/repository/docker/sun8877777/prometheus https://hub.docker.com/repository/docker/sun8877777/comment https://hub.docker.com/repository/docker/sun8877777/post https://hub.docker.com/repository/docker/sun8877777/ui

Сделаны все задания со *, кроме последнего (makefile).

HW18 Логирование и распределенная трассировка.

План

  1. Подготовка окружения
  2. Логирование Docker-контейнеров
  3. Сбор неструктурированных логов
  4. Визуализация логов
  5. Сбор структурированных логов
  6. Распределенный трейсинг

Выполнено 1 ое задание со *.

HW19 Введение в kubernetes

План

  1. Разобрать на практике все компоненты Kubernetes, развернуть их вручную используя kubeadm
  2. Ознакомиться с описанием основных примитивов нашего приложения и его дальнейшим запуском в Kubernetes

Выполнено задание со *.

HW20 Kubernetes. Запусккластера и приложения.Модель безопасности

  • План
  1. Развернуть локальное окружение для работы с Kubernetes
  2. Развернуть Kubernetes в Yandex Cloud
  3. Запустить reddit в Kubernetes Выполнены все задания со *

HW21 Kubernetes. Networks, Storages.

План

  1. Ingress Controller
  2. Ingress
  3. Secret
  4. TLS
  5. LoadBalancer Service
  6. Network Policies
  7. PersistentVolumes
  8. PersistentVolumeClaims Все задания выполнены полностью, включая задачу со *

HW22 CI/CD в Kubernetes.

Работа с Helm Развертывание Gitlab в Kubernetes Запуск CI/CD конвейера в Kubernetes