meta/architecture-docs/Fediversity-architecture-notes.md

56 lines
2 KiB
Markdown
Raw Normal View History

<!-- Note: we're "abusing" the classDiagram for the moment as we sketch this out -->
2024-10-31 13:39:53 +01:00
```mermaid
graph TB
2024-10-31 13:46:18 +01:00
Core[<b>Core-services</b><br/><small>DNS<br/>Email<br/>identity_management<br/>secret_management<br/>authentication<br/>SASL</small>]
subgraph Management
Administration[<b>Administration</b><br/><small>monitoring<br/>alerting<br/>graphing<br/>restore_backups</small>]
Management_UI[<b>Management_UI</b><br/><small>human-oriented<br/>administration<br/>replication<br/>migration</small>]
NixOps[<b>NixOps</b><br/><small>orchestration</small>]
end
2024-10-31 14:21:52 +01:00
subgraph Hardware
Systems[<b>Systems</b><br/><small>Storage<br/>Networking<br/>Operating-system<br/>Virtualization</small>]
Storage[<b>Storage</b><br/><small>exclusive_filesystem<br/>shared_blob<br/>zfs</small>]
end
2024-10-31 14:21:52 +01:00
subgraph Virtualization
Nixos[<b>Nixos</b><br/><small>Application</small>]
LinuxOS[<b>LinuxOS</b><br/><small>Application</small>]
2024-10-31 14:21:52 +01:00
Services[<b>Services</b><br/><small>NextCloud<br/>secure_document_collaboration<br/>Forgejo<br/>webmail<br/>HedgeDoc<br/>project_planning</small>]
FediServices[<b>FediServices</b><br/><small>Matrix<br/>Pixelfed<br/>Peertube<br/>Mastadon<br/>GotoSocial<br/>activityPub</small>]
end
2024-10-31 14:21:52 +01:00
Systems --> Storage
2024-10-31 13:39:53 +01:00
Hardware --> Virtualization
2024-10-31 14:21:52 +01:00
Virtualization --> Hardware
2024-10-31 13:39:53 +01:00
Services --> Core
FediServices --> Core
2024-10-31 14:21:52 +01:00
Core --> Hardware
2024-10-31 13:39:53 +01:00
Nixos --> Services
Nixos --> FediServices
Management_UI --> NixOps
Management_UI --> Administration
```
2024-10-31 13:39:53 +01:00
* human-centric
* easy, automated, replication and migration to different datacenter provider
* blob storage replicated generically
* files on the exclusive filesystems replicated via application-aware process, e.g.:
* asynchronous, but "live" database replication
* shutdown app then rsync directories
* ZFS replication and snapshot-ing
* Strengths, Weaknesses, Opportunities, and Threats awareness for all apps
* Not everything needs to start on Nix, NixOs, or with NixOps
* Do not use "Open Core"
* GitLab
* Dovcot
* Zimbra
* LXC containers (not Docker-style)