Gogen120 microservices repository
- Создал docker образ и загрузил его в dockerhub -
gogen120/otus-reddit:1.0 - С помощью
docker-machineзапустил на виртуальной машине yandex-а контейнер с приложением - Добавил terraform манифесты, ansible плейбуки, шаблоны пакера для запуска и конфигурирования приложения в докере
- Добавил докерфайлы для отдельных микросервисов, необходимых для запуска reddit приложения
- Сжал образы микросервисов с помощью alpine образов
- Добавил
docker-composeфайл с описанием микросервисов и сетей - Параметризовал некоторыые переменные для
docker-composeфайла - Добавил переменную
COMPOSE_PROJECT_NAME, с помощью которой можно изменять префиксы контенеров - Добавил
docker-compose.overrideфайл с монтированием директорий (чтобы код был доступен приложению) и запускомpumaв дебаг режиме с двумя воркерами
- Добавил terraform манифесты для создания VM
- Добавил ansible плейбуки для уствановки докера и gitlab-а
- Добавил gitlab ci пайплайн для сборки, тестирования и деплоя на различные окружения
- Описал в
docker-composeфайлеprometheus,node-exporter,mongodb-exporterиblackbox-exporter - Запушил образы микросервисов, прометеуса и экспортеров в docker-hub
- Добавил
Makefileдля сборки образов (build) и их пуша в docker-hub (push)
- Добавил контейнеры для логирования приложения (
elasticsearch,kibana,fluentd) - Подключил логирование для микросервисов reddit-а
- Добавил парсинг логов для
postсервиса и дляuiсервиса - Добавил сервис для распределенного трейсинга (
zipkin) - Подключил
zipkinдля микросервисов reddit-а - Проанализировал приложение со сломанным кодом с помощью
zipkin: проблема заключается в вызовеtime.sleep(3)в функцииfind_postвpostмикросервисе
- Добавил манифесты с описанием микросервисов reddit приложения
- Добавил terraform манифест для создания виртуальных машин, на которых будет запускаться kebernetes
- Добавил ansible плейбуки для установки необходимого софта и развертывания master и worker нод
- Использовал
minikubeдля локального развертывания приложения в k8s - Использовал Managed Service for Kubernetes от яндекса для развертывания приложения
- Добавил terraform манифест для создания кластера k8s
- Разобрался с сетевым взаимодействием внутри кубернетес (service, dns-kube, load balancer, ingress)
- Установил ingress в кубернетес с помощью команды
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/cloud/deploy.yaml - Настроил использование TLS, создал для этого сертификаты
- Добавил NetworkPolicy
- Добавил PersistentVolume для базы