Skip to content

Latest commit

 

History

History
96 lines (94 loc) · 7.75 KB

File metadata and controls

96 lines (94 loc) · 7.75 KB

Дорожная карта проекта

  • Делаем проект сайт визитку, по аналогии с https://tosinonikute.com/

    • Определимся на какой технологии его делаем (Python FastAPI + React)
    • Организовать хранение проекта на Git
    • Делаем MVP
      • Делаем заготовку
      • Проверяем что заготовка работает
      • Наполняем заготовку базовым содержимым (пока пропускаем, это же не MPV иначе получается)
    • Контейнеризуем приложение (Dockerfile, Docker Compose)
      • Формируем Dockerfile
        • для бэкенда
        • для фронтенда
      • Собираем Docker образы локально
      • Тестируем образы локально (запуск и проверка работы)
      • Формируем файл Docker Compose
      • Тестируем приложение через Docker Compose
    • Отрабатываем локальное развёртывание
      • Настраиваем локальное окружение (minikube)
      • Создаём Kubernetes манифесты
      • Тестируем и отлаживаем развертывание в minikube
      • Настраиваем Helm charts
      • Тестируем развертывание через Helm
      • Настраиваем Terraform для инфраструктуры
    • Подготавливаем облачное развёртывание
      • Выбор облачного провайдера (Yandex Cloud)
      • Настройка доступа к облаку (установлен yc, выполнены yc init и yc config list)
    • Настройка инфраструктуры через Terraform для serverless bundle (Yandex Serverless Containers)
      • Подключение облачного provider в Terraform
      • Описание backend/frontend как serverless containers
      • Настройка сервисного аккаунта и IAM (invoker, registry)
      • Развёртывание через terraform и получение публичных endpoint-адресов
      • Тестирование развернутых сервисов через endpoints (по отдельности)
      • Настройки сети внутри облака
        • Настроить статический хостинг фронтенда в Object Storage (kulibin-devops-portfolio.website.yandexcloud.net)
        • Перевести frontend в Object Storage (Terraform, отключить serverless frontend container)
        • Настроить API Gateway как прокси к backend serverless container (публичный URL)
        • Включить CORS/авторизацию для API, выдать gateway роль serverless.containers.invoker
        • Проверка, что приложение доступно из Интернета
    • Настраиваем CI/CD пайплайн
      • Настроить GitHub Actions/GitLab CI для сборки backend-образа и публикации в YCR
      • Добавить шаг сборки фронтенда и выгрузки dist в Object Storage через CLI
      • Подготовить отдельный job для terraform apply/yc serverless после публикации артефактов
      • Подключить секреты (tokens/keys) и уведомления о статусе пайплайна
      • Выполнить тестирование CI
    • Мержим проект в master
    • Документируем проект
      • Рефакторинг структуры проекта
        • Переименовать папку "devops-portfolio" в "helm", проверив работоспособность и отразив это в документации
        • Перенести папки "backend" и "frontend" в "src", проверив работоспособность и отразив это в документации
      • Обновить основной README.md
        • Описание проекта и его назначение
        • Структура проекта
        • Быстрый старт (локальное развёртывание)
        • Ссылки на документацию по компонентам
    • Настраиваем мониторинг
      • Yandex Monitoring для serverless контейнеров (встроенный мониторинг, метрики, алерты)
    • Настраиваем логирование
      • Yandex Logging для serverless контейнеров (встроенное логирование)
    • Наполняем заготовку базовым содержимым
    • Проверяем различные аспекты проекта
      • Исправить пропавшее локальное развёртывание minicube при помощи Terraform
      • Автоматически генерировать Mermaid-диаграмму из .github/workflows/ci.yml
      • Оптимизировать сборку проекта
        • build-backend
    • Настраиваем DevSecOps практики
      • Сканирование Docker образов на уязвимости в CI/CD (Trivy, Grype)
      • SAST анализ кода (SonarQube, CodeQL)
      • Управление секретами (GitHub Secrets, Yandex Lockbox)
      • Политики безопасности для Container Registry
    • Документируем проект (README, архитектура)
      • Документация архитектуры
      • Схема компонентов и их взаимодействие
      • Описание инфраструктуры (Terraform, Yandex Cloud)
      • Описание CI/CD пайплайна
      • Документация развёртывания
        • Инструкции по локальному развёртыванию
        • Инструкции по облачному развёртыванию
        • Настройка секретов и переменных окружения
      • Документация API (если требуется)
  • Доработка развертывания на Kubernetes

    • Доработка развертывания из terraform/cloudK8
      • Завершить настройку Managed Kubernetes Cluster в Yandex Cloud
      • Настроить Ingress для доступа к приложению
      • Интеграция с CI/CD для автоматического развёртывания в k8s
    • Настраиваем мониторинг для Kubernetes
      • Prometheus + Grafana для Kubernetes развёртывания
      • Настройка метрик и алертов
    • Настраиваем логирование для Kubernetes
      • Централизованное логирование (ELK/Loki) для Kubernetes
      • Настройка сбора логов из подов
    • Настраиваем GitOps (ArgoCD/Flux)
      • Установка и настройка ArgoCD или Flux
      • Настройка автоматического развёртывания из Git репозитория
      • Интеграция с Helm charts