First draft in Mermaid, Co-authored-by: Eric Herman <eric@commonscaretakers.com>
This commit is contained in:
		
							parent
							
								
									bd7334b1ac
								
							
						
					
					
						commit
						6a92fa8ca6
					
				
					 1 changed files with 102 additions and 0 deletions
				
			
		
							
								
								
									
										102
									
								
								architecture-docs/Fediversity-architecture-notes.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								architecture-docs/Fediversity-architecture-notes.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,102 @@ | |||
| <!-- Note: we're "abusing" the classDiagram for the moment as we sketch this out --> | ||||
| 
 | ||||
| ``` mermaid | ||||
| 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) | ||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Ronny Lam
						Ronny Lam