diff --git a/architecture.md b/architecture.md index e131c39..ec5f1ca 100644 --- a/architecture.md +++ b/architecture.md @@ -108,48 +108,61 @@ Whereas the core abstraction in Fediversity is a NixOS configuration template, a Whereas details of the implementation may need to be decided as the technical challenges involved become clear, we can already give a higher-level planning of relevant milestones and some of their salient features: -- Initial internal user to kick-start feedback process: - - automate provisioning of: - - [databases](https://git.fediversity.eu/Fediversity/Fediversity/issues/115) - - [object storage](https://git.fediversity.eu/Fediversity/Fediversity/issues/185) - - [virtual machines](https://git.fediversity.eu/Fediversity/Fediversity/issues/116) (and related resources) - - [DNS](https://git.fediversity.eu/Fediversity/Fediversity/issues/110) - - [SMTP service](https://git.fediversity.eu/Fediversity/Fediversity/issues/117) - - [email accounts](https://git.fediversity.eu/Fediversity/Fediversity/issues/118) - - [ephemeral state](https://git.fediversity.eu/Fediversity/Fediversity/issues/314) - - [publish specification](https://git.fediversity.eu/Fediversity/Fediversity/issues/334) using e.g. JSON Schema / OpenAPI - - [facilitate multi-tenancy](https://git.fediversity.eu/Fediversity/Fediversity/issues/241) - - [provision admin accounts](https://git.fediversity.eu/Fediversity/Fediversity/issues/178) - - [ensure users can update their configurations](https://git.fediversity.eu/Fediversity/Fediversity/issues/158) -- Software ready for web hosts to take into production: - - [garbage collection of unallocated resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/188) - - [Nix-less bootstrap](https://git.fediversity.eu/Fediversity/Fediversity/issues/332) - - [ensure hosts may update users' deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/159) - - [allow control over version of module deployed](https://git.fediversity.eu/Fediversity/Fediversity/issues/304) - - [security audit](https://git.fediversity.eu/Fediversity/Fediversity/issues/291) - - [automate dependency updates](https://git.fediversity.eu/Fediversity/Fediversity/issues/65) -- Features to improve user experience and increase host adoption: - - [enqueue deployment syncs](https://git.fediversity.eu/Fediversity/Fediversity/issues/242) - - [application data back-ups](https://git.fediversity.eu/Fediversity/Fediversity/issues/123) - - [migrating application data between hosting providers](https://git.fediversity.eu/Fediversity/Fediversity/issues/100) - - [provide single sign-on](https://git.fediversity.eu/Fediversity/Fediversity/issues/212) - - [expand exposed configuration settings](https://git.fediversity.eu/Fediversity/Fediversity/issues/195) - - [allow disabling application while retaining data](https://git.fediversity.eu/Fediversity/Fediversity/issues/186) - - [aid needed user actions on schema update](https://git.fediversity.eu/Fediversity/Fediversity/issues/214) - - [scaling application resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/119) - - [pooling application instances to shared VMs](https://git.fediversity.eu/Fediversity/Fediversity/issues/322) - - [allow use of external single sign-on](https://git.fediversity.eu/Fediversity/Fediversity/issues/161) - - [on migration, allow reconfiguring monolithic vs distributed](https://git.fediversity.eu/Fediversity/Fediversity/issues/341) -- Facilitate engagement from external developers: - - [create integration tests](https://git.fediversity.eu/Fediversity/Fediversity/issues/277) - - [add continuous integration builds to a public cache](https://git.fediversity.eu/Fediversity/Fediversity/issues/92) - - [reproduce required infrastructure](https://git.fediversity.eu/Fediversity/Fediversity/issues/336) - - [continuous deployment](https://git.fediversity.eu/Fediversity/Fediversity/issues/177) - - [separate staging/testing environments](https://git.fediversity.eu/Fediversity/Fediversity/issues/69) - - [facilitate user signup](https://git.fediversity.eu/Fediversity/Fediversity/issues/335) - - [facilitate code reviews](https://git.fediversity.eu/Fediversity/Fediversity/issues/302) - - [get documentation ready](https://git.fediversity.eu/Fediversity/Fediversity/issues/288) - - [upstream to NixOS](https://git.fediversity.eu/Fediversity/Fediversity/issues/333) +1. [Implement a way to run online services in a way that emphasises user autonomy and portability](https://git.fediversity.eu/Fediversity/Fediversity/issues/347) + - ['one-click' deployment of Fediversity applications](https://git.fediversity.eu/Fediversity/Fediversity/issues/99) + - ['one-click' portability between hosting providers](https://git.fediversity.eu/Fediversity/Fediversity/issues/100) +1. [Disseminate our results by engaging the open-source community to further expand on work in this direction](https://git.fediversity.eu/Fediversity/Fediversity/issues/348) + - [automated dev-ops workflows](https://git.fediversity.eu/Fediversity/Fediversity/issues/224): + - [separate test environments for staging vs. production](https://git.fediversity.eu/Fediversity/Fediversity/issues/69) + - [continuous deployment](https://git.fediversity.eu/Fediversity/Fediversity/issues/177) + - [CI rejects failing deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/102) + - [Nix package overlays upstreamed](https://git.fediversity.eu/Fediversity/Fediversity/issues/248) + - [facilitate suggestions in PR reviews](https://git.fediversity.eu/Fediversity/Fediversity/issues/302) + - [integration test](https://git.fediversity.eu/Fediversity/Fediversity/issues/277) + - [external developers empowered to contribute](https://git.fediversity.eu/Fediversity/Fediversity/issues/288): + - [NixOS configuration as the core abstraction](https://git.fediversity.eu/Fediversity/Fediversity/issues/339) + - [create integration tests](https://git.fediversity.eu/Fediversity/Fediversity/issues/277) + - [add continuous integration builds to a public cache](https://git.fediversity.eu/Fediversity/Fediversity/issues/92) + - [reproduce required infrastructure](https://git.fediversity.eu/Fediversity/Fediversity/issues/336) + - [continuous deployment](https://git.fediversity.eu/Fediversity/Fediversity/issues/177) + - [separate staging/testing environments](https://git.fediversity.eu/Fediversity/Fediversity/issues/69) + - [facilitate user signup](https://git.fediversity.eu/Fediversity/Fediversity/issues/335) + - [facilitate code reviews](https://git.fediversity.eu/Fediversity/Fediversity/issues/302) + - [get documentation ready](https://git.fediversity.eu/Fediversity/Fediversity/issues/288) + - [upstream to NixOS](https://git.fediversity.eu/Fediversity/Fediversity/issues/333) +1. [Exploit our work by facilitating the sample use-case of web hosting organisations using an initial set of services](https://git.fediversity.eu/Fediversity/Fediversity/issues/349) + - [Initial internal user to kick-start feedback process](https://git.fediversity.eu/Fediversity/Fediversity/issues/225): + - automated provisioning of: + - [databases](https://git.fediversity.eu/Fediversity/Fediversity/issues/115) + - [object storage](https://git.fediversity.eu/Fediversity/Fediversity/issues/185) + - [virtual machines](https://git.fediversity.eu/Fediversity/Fediversity/issues/116) (and related resources) + - [DNS](https://git.fediversity.eu/Fediversity/Fediversity/issues/110) + - [SMTP service](https://git.fediversity.eu/Fediversity/Fediversity/issues/117) + - [email accounts](https://git.fediversity.eu/Fediversity/Fediversity/issues/118) + - [ephemeral state](https://git.fediversity.eu/Fediversity/Fediversity/issues/314) + - [publish specification](https://git.fediversity.eu/Fediversity/Fediversity/issues/334) using e.g. JSON Schema / OpenAPI + - [facilitate multi-tenancy](https://git.fediversity.eu/Fediversity/Fediversity/issues/241) + - [provision admin accounts](https://git.fediversity.eu/Fediversity/Fediversity/issues/178) + - [ensure users can update their configurations](https://git.fediversity.eu/Fediversity/Fediversity/issues/158) + - [Software ready for web hosts to take into production](https://git.fediversity.eu/Fediversity/Fediversity/issues/228): + - [garbage collection of unallocated resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/188) + - [Nix-less bootstrap](https://git.fediversity.eu/Fediversity/Fediversity/issues/332) + - [ensure hosts may update users' deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/159) + - [allow control over version of module deployed](https://git.fediversity.eu/Fediversity/Fediversity/issues/304) + - [security audit](https://git.fediversity.eu/Fediversity/Fediversity/issues/291) + - [automate dependency updates](https://git.fediversity.eu/Fediversity/Fediversity/issues/65) + - [Implemented key features to improve user experience](https://git.fediversity.eu/Fediversity/Fediversity/issues/289): + - [enqueue deployment syncs](https://git.fediversity.eu/Fediversity/Fediversity/issues/242) + - [application data back-ups](https://git.fediversity.eu/Fediversity/Fediversity/issues/123) + - [migrating application data between hosting providers](https://git.fediversity.eu/Fediversity/Fediversity/issues/100) + - [provide single sign-on](https://git.fediversity.eu/Fediversity/Fediversity/issues/212) + - [upstream configuration options exposed](https://git.fediversity.eu/Fediversity/Fediversity/issues/195) + - [allow disabling application while retaining data](https://git.fediversity.eu/Fediversity/Fediversity/issues/186) + - [aid needed user actions on schema update](https://git.fediversity.eu/Fediversity/Fediversity/issues/214) + - [scaling application resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/119) + - [pooling application instances to shared VMs](https://git.fediversity.eu/Fediversity/Fediversity/issues/322) + - [allow use of external single sign-on](https://git.fediversity.eu/Fediversity/Fediversity/issues/161) + - [on migration, allow reconfiguring monolithic vs distributed](https://git.fediversity.eu/Fediversity/Fediversity/issues/341) ## Technologies used