Перейти к содержанию

Архитектура моей лаборатории

Моя лаборатория - это мой мини прокет по освоению новых для меня технологий. Для всей лаборатории я использую монорепозиторий.

На чем развернуто

У меня есть 2 стенда:
1) Домашний ПК
2) Виртуалки в клауде
Что дома, что в клауде используется Proxmox для виртуализации. Приложения разворачиваются в kubernetes. На отдельной ВМ крутятся БД. Стенды по содержанию идентичны
Схема стенда ./docs/sailor-lab/scema-sailor-lab-components.puml
Все виртуалки созданы Terraform через API Proxmox

Настройка окружения

Так как я люблю поиграть рабочая машина у меня на Win10 Pro. Программы которые я использую для работы в лабе и просто мое рабочее окружение
1) Visual Studio Code - IDE
Расширения Vs code:
- Remote SSH - Удаленный доступ на сервера. Иногда приходится подключаться через Vs code
- Python - Пакет для работы с питоном
- PlantUml - Поддержка синтаксиса и рендер диаграмм
- Markdownlint - Поддержка синтаксиса и рендер маркдауна
- HashiCorp Terraform - Поддержка синтаксиса HCL (Языка тераформа)
- Cline - АИ кодинг агент. Использую локальную нейронку
2) Tabby - SSH client
3) OpenTofu - Описание инфры как IaC. Перешел в моменте когда терраформ менял лицензию и так и остался
4) sops + age Для работы и хранения секретов
5) kubectl - работа с k8s
6) Helm - работа с k8s
7) KeePass - Менеджер паролей
8) Git - git
9) LM Studio - LLM на локальном ПК
10) V2rayTun - VPN client

Стек

Compute

- K8s
- Docker

Monitoring

- Victoriametrics
- Grafana

DevOps

- Gitea

Backup

- Restic

Docs

- Mkdocs

Inventory

- Netbox

VPN

- Wireguard
- Xray + Vless

Proxy

- NPM (Nginx Proxy Manager)

Регламент работы с ветками в монорепозитории

  • Запрещен прямой commit в main ветку

Разделение на ветки

  • Перед началом создается задача с описанием фичи и палном
  • Для добавления фичи в репозиторий создается отдельная ветка с именем фичи
  • Если мы возвращаемся к доработке какой то фичи, то перед началом работы подтягиваем изменения с мейн ветки
  • После заверешния работы создается PR в main ветку

Компоненты

  • Сама фича (код)
  • Документация к ней