34 lines
3.0 KiB
Markdown
34 lines
3.0 KiB
Markdown
---
|
|
title: Принципы инфраструктуры
|
|
description: Основные принципы, обеспечивающие безопасную, предсказуемую среду с минимальными зависимостями.
|
|
weight: 5
|
|
---
|
|
|
|
Общие модули построены на ключевых принципах, предназначенных для обеспечения безопасной, предсказуемой среды с минимальными зависимостями для независимых self-hosted проектов.
|
|
|
|
## Предсказуемость через структуру {#predictability}
|
|
|
|
Ручная настройка сервера подвержена «дрейфу конфигурации» (configuration drift), когда хосты, которые должны быть идентичными, со временем начинают различаться. Общие модули решают эту проблему следующим образом:
|
|
|
|
- **Git как источник истины**: Каждая конфигурация, от правил UFW до crontab, хранится в репозитории.
|
|
- **Идемпотентная автоматизация**: [Action-скрипты](/root/glossary#action) разработаны так, чтобы их можно было запускать многократно без побочных эффектов, гарантируя, что хост всегда соответствует заданному состоянию.
|
|
|
|
## Минимальное количество зависимостей {#minimalism}
|
|
|
|
Для обеспечения долгосрочной поддерживаемости общие модули избегают сложных инструментов управления конфигурацией (таких как Ansible или Salt). Вместо этого они полагаются на:
|
|
|
|
- **Bash**: Универсальный язык Unix-систем.
|
|
- **Docker**: Для изоляции приложений и согласованности окружения.
|
|
- **Стандартные инструменты Linux**: Прямое использование `systemd`, `ufw` и `cron`.
|
|
|
|
## Децентрализация {#decentralization}
|
|
|
|
Каждый [Узел (Node)](/root/glossary#node) является независимым. Хотя они используют библиотеку общих модулей ([Commons](/root/glossary#commons)), они не зависят от центрального «мастер»-сервера. Такая архитектура гарантирует, что сбой на одном хосте не повлияет на несвязанные сервисы.
|
|
|
|
---
|
|
|
|
**См. также:**
|
|
|
|
- [Концепция: Модель безопасности и изоляция](/root/concepts/security-model)
|
|
- [Концепция: Модель многоуровневого хранения](/root/concepts/tiered-storage)
|