Архітектурна специфікація

🛠️ Етапи реалізації проєкту

В межах інженерного експерименту було спроєктовано та реалізовано автономну відмовостійку серверну інфраструктуру типу Self-Hosted Edge Node на базі мобільної архітектури ARM64.

Нижче наведено технічний стек та детальний перелік впроваджених інженерних рішень.

1. Системне середовище та ініціалізація (OS & Lifecycle Management)

  • Контейнеризація без Root: Як базове операційне середовище розгорнуто Termux — ізольований простір користувача (user-space) Linux, який функціонує на базі системних викликів ядра Android без необхідності отримання Root-прав.
  • Автоматизація життєвого циклу (Init System): Реалізовано запуск сервісів через надбудову Termux:Boot. Створено завантажувальні скрипти, які перехоплюють системну подію BOOT_COMPLETED, автоматично ініціалізують демони та запобігають переходу процесора в режим глибокого сну (Wakelock). Це гарантує підняття сервера після раптового перезавантаження пристрою.

2. Вебстек та СУБД (LNMP Stack Optimization)

  • Асинхронний Вебсервер (Nginx): Налаштовано nginx для обробки статичного контенту та проксіювання динамічних запитів. Оптимізовано параметри worker_processes та worker_connections під архітектуру процесора Cortex-A53.
  • Процесинг Динаміки (PHP-FPM): Розгорнуто пул процесів php-fpm. Комунікацію між Nginx та PHP-FPM переведено на швидкі Unix-сокети (unix:/var/run/php-fpm.sock) замість TCP-сокетів, що мінімізувало затримки на рівні мережевого стека всередині пристрою.
  • Реляційна СУБД (MariaDB): Розгорнуто сервер баз даних mariadbd. Налаштовано рушій InnoDB з оптимізацією буферів (innodb_buffer_pool_size), що дозволило базі даних активно використовувати оперативну пам’ять пристрою як кеш і мінімізувати прямі операції читання з флеш-пам’яті.

3. Мережева інфраструктура, Безпека та Маршрутизація

  • Захищений тунель (Cloudflare Tunnel): Для розв’язання проблеми динамічного IP та перебування сервера за натівським фаєрволом провайдера (CGNAT) впроваджено демон cloudflared. Створено стійкий зворотний тунель (Reverse Tunnel) до Edge-мережі Cloudflare.
  • Криптографічний захист: Маршрутизація трафіку здійснюється через захищений протокол TLSv1.3. Реальна IP-адреса та геопозиція мобільного сервера повністю приховані від зовнішнього сканування.

4. Автоматизація бекапування (Disaster Recovery & Cron)

  • Планувальник задач (Cron): Увімкнено службу crond для періодичного виконання фонових завдань.
  • Скрипт резервного копіювання (Bash): Написано кастомний автоматизований скрипт backup.sh, який щоночі о 03:00 виконує такі операції:
    1. Експортує консистентний зліпок бази даних за допомогою сучасної утиліти mariadb-dump.
    2. Архівує файлову структуру WordPress за допомогою утиліти tar зі стисненням.
    3. Здійснює автентифікацію в хмарі за допомогою OAuth2-токенів та синхронізує архіви з Google Drive через rclone.
    4. Проводить ротацію резервних копій у хмарі, автоматично видаляючи файли, старіші за 14 днів, для оптимізації дискового простору.

5. Навантажувальне тестування та телеметрія (Benchmarking)

  • Стрес-тест HTTP (ApacheBench): Проведено серію запусків ab з конфігурацією до 3000 загальних запитів та високим рівнем конкурентності (c=100). Виявлено та задокументовано вплив локального мережевого інтерфейсу (Loopback overhead) при тестуванні “всередині” системи проти чистого тестування з окремої хост-машини.
  • Стрес-тест СУБД (mysqlslap): Проведено синтетичне навантаження на MariaDB для перевірки паралельної обробки важких потоків SQL-запитів. Зафіксовано продуктивність на рівні ~247 RPS та виявлено часові просідання (з 1.7 до 5.8 сек), викликані апаратним захистом ядра Android від перегріву (Thermal Throttling).
  • Тест дискової підсистеми (I/O Benchmarking): За допомогою утиліти dd із прапором синхронізації conv=fdatasync визначено чисту швидкість послідовного запису накопичувача (140 MB/s), що підтвердило використання архітектури пам’яті типу UFS 2.1.