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

1.8 KiB

classDiagram

%% TODO: replace classDiagram

Hardware --|> Storage
Hardware --|> Virtualization
Virtualization --|> Nixos
Virtualization --|> LinuxOS
Core_Services <|-- Services
Core_Services <|-- FediServices
Storage <|-- Services
Storage <|-- FediServices
Nixos --|> Services
Nixos --|> FediServices
Management_UI --|> NixOps
Management_UI --|> Administration

class Core_Services{
  DNS
  EMail
  identity_management
  secret_management
  authentication()
  SASL()
}

class Services {
  NextCloud
  secure_document_collaboration
  Forgejo
  webmail
  HedgeDoc
  project_planning
}

class FediServices {
  Matrix
  Pixelfed
  Peertube
  Mastadon %%GotoSocial
  activityPub()
}

class Administration {
  monitoring
  alerting
  graphing
  restore_backups
}

class Management_UI {
   human-oriented administration
   replication()
   migration()
}

class Storage {
  exclusive_filesystem
  shared_blob
  zfs()
}

class Hardware {
Storage
Networking
Operating-system
Virtualization
}

class Virtualization {
  Proxmox 
}

class Nixos {
  Application
}

class LinuxOS {
  Application
}

class NixOps {
orchestration
}
  • 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)