Skip to content
@S-VIPER

S-VIPER

Welcome to the S-VIPER 🐍

S-viper – это сервис для подбора и организации плейлистов и сетов с интерактивным интерфейсом свайпов

mobile

🔥 Full-Stack Project Overview

Этот репозиторий служит точкой входа для всех компонентов проекта. Ниже перечислены основные модули, участвующие в разработке.

🧰 Технологии

  • Backend: Go (Gin, REST API, gRPC), MongoDB
  • Infrastructure: Docker, Docker Compose, Kubernetes, Terraform, Nginx, CI/CD (GitHub Actions)
  • Cloud & DevOps: VK Cloud (IaaS), GitHub Container Registry, Git submodules, многорепозитной структуры, управление артефактами и окружениями, GitHub Relesase
  • Mobile: Kotlin, Jetpack Compose
  • Project Management: проектирование архитектуры сервисов и инфраструктуры, настройка окружений, документация и организация GitHub Projects/Issues

Репозитории и их назначения

🔹compose-env

  1. Docker Compose окружение для быстрого развёртывания всех сервисов локально.
  2. Terraform конфиги для деплоя backend части сервиса на одной VM.
  3. k8s и terrafrom конфиги для деплоя backend части сервиса на кластере.

Включает backend, mongo-db, nginx-api-gateway через git submodules

🔹backend

  1. Основная серверная часть проекта. Реализует бизнес-логику, REST API и взаимодействие с базой данных.
  2. Включает небольшой скрипт на go для заполнения БД.

Артефакты CI: backend image, seeder image.

🔹 mobile

Мобильное Android приложение клиента. Предоставляет интерфейс для пользователей и взаимодействует с backend через API.

🔹mongo-db

Конфигурация MongoDB.

🔹nginx-api-gateway

Reverse-proxy и шлюз для всех API. Обеспечивает маршрутизацию, а также статическое хранилище для mp3 файлов.

🖧 Описание инфраструктуры проекта S-VIPER, архитектурную схему и список k8s-ресурсов.

infra

Компоненты инфраструктуры:

  • Mobile: Android-приложение (клиент)
  • API Gateway: Nginx (раздача треков по пути /tracks/{id} + перенаправление на API)
  • Tracks/Playlists API: сервис на Go + Gin (обслуживание API для метаданных и управления)
  • MongoDB: БД для метаданных
  • Seeder job: сервис для заполнения БД метаданными треков

Kubernetes — ресурсы

☁️ Сам кластер разворачивается через Terraform в VK Cloud. Конфиги в репозитории compose-env/k8s/terraform.

Кластер состоит из 2 worker node на VM STD2-1-2 и ControlPlane на VM STD2-2-6.

В результате применения конфигурационных файлов появится kubeconfig.yaml, который нужен для взаимодействия с кластером через kubectl.

Имеющиеся ресурсы:

  • Глобальный namespace для приложения
  • Service ClusterIP: Music API, MongoDB
  • Service LoadBalancer: API Gateway
  • Deployments: Nginx (как Gateway), backend, mongoDB
  • PVC: MongoDB, Nginx
  • PersistentVolume: локальное хранилище на нодах.
  • Secrets: GitHub Container Registry, MongoDB credentials
  • Job: Seeder для заполнения MongoDB

Backend, seeder images подтягиваются из приватного CR, остальные из DockerHub.


Деплой приложений и подробные инструкции по CI/CD и командам находятся в соответствующих репозиториях сервисов.

Документация

🚀 Быстрый старт

  1. Клонируйте репозиторий и перейдите в compose-env
  2. Запустите все сервисы:
    docker-compose up --build
  3. Клонируйте репозиторий mobile
  4. Соберите apk

Popular repositories Loading

  1. mobile mobile Public

    Kotlin

  2. backend backend Public

    Go

  3. compose-env compose-env Public

    HCL

  4. nginx-api-gateway nginx-api-gateway Public

  5. mongo-db mongo-db Public

  6. .github .github Public

    S-viper – это сервис для подбора и организации плейлистов и сетов с интерактивным интерфейсом свайпов

Repositories

Showing 6 of 6 repositories

Top languages

Loading…

Most used topics

Loading…