forked from fediversity/meta
		
	update roadmap following team meeting
This commit is contained in:
		
							parent
							
								
									f79e3a1492
								
							
						
					
					
						commit
						cfdfbf59b0
					
				
					 2 changed files with 110 additions and 54 deletions
				
			
		|  | @ -1,54 +0,0 @@ | ||||||
| # Target: Demo at Fediforum online conference 2025-04-01  |  | ||||||
| 
 |  | ||||||
| Goal: Demo Fediversity and make this demo available for download for others to use. |  | ||||||
| Focus on 1 or 2 Fediverse applications that can be 'automagically' installed aka a minimal viable product. |  | ||||||
| 
 |  | ||||||
| To determine: |  | ||||||
| 
 |  | ||||||
| - What are the minimal requirements to make this happen? |  | ||||||
| - What components are needed? |  | ||||||
| - Which Fediverse services are we going to offer? |  | ||||||
| - There are ~47 (~9weeks) workdays between 27-01-2025 and 01-04-2025. How will we divide the work among the team? |  | ||||||
| 
 |  | ||||||
| # Roadmap |  | ||||||
| 
 |  | ||||||
| * As a first measure, set up a new site with a simple email form: "set up your Fediverse services" |  | ||||||
|  * Initial form fields: |  | ||||||
|   * text field: subdomain to use under e.g. <code>demo.fediversity.eu</code> |  | ||||||
|   * multi-select: services to deploy (start with one or two) |  | ||||||
|   * text fields: ssh public keys |  | ||||||
|   * freeform: additional requests |  | ||||||
|  * Simply send an email to the project team for manual processing |  | ||||||
|  * Figure out the rest as we go, automate time-consuming repetitive tasks incrementally |  | ||||||
|   * Systematically keep procedural notes from which we can later derive code |  | ||||||
| * Split test environment into staging and production deployment |  | ||||||
| * Start preparing a Django service ([as discussed 2024-11-06](../meeting-notes/2024-11-06%20standup%20notes.md#working-session-architecture-discussion)) that will eventually replace the manually processed form |  | ||||||
|  * It will take about a work week to make the development cycle smooth (maybe 2 weeks on the wall clock), enough to refine the initial data model |  | ||||||
|  * It could trigger NixOps4 asynchronously on form submission |  | ||||||
|   * Requires figuring out the exact interaction model on the backend. Especially how deployment state gets stored, retrieved, and updated |  | ||||||
|   * Requires a Passbolt provider for dynamic secrets ([as discussed regarding secrets handling 2024-12-10](meeting-notes/2024-12-10-decision-making-meeting-dealing-with-secrets.md)) |  | ||||||
|    * We probably don't want to mess with Git-backed storage there |  | ||||||
|   * Requires a proper deployment provider |  | ||||||
|    * Terraform is currently planned |  | ||||||
|    * For single NixOS machines something more robust than a shellscript would already be nice, but that would require talking to Proxmox via API anyway |  | ||||||
| * Rebrand MyProtagio to Fediversity |  | ||||||
|   * It currently interfaces with an intermediate registrar, need to remove that |  | ||||||
|   * Demo users could register an actual domain using a voucher token |  | ||||||
| * Interfacing with MyProtagio for leveraging its DNS setup capabilities may need more time to study the code |  | ||||||
|   * We’d ideally co-deploy an instance with the other front-end to enable smooth CI/CD; though that’s more up-front work |  | ||||||
|   * MyProtagio doesn't have metering or billing yet |  | ||||||
|     * If we hand out exactly one credit, it would include one domain name and some bulk service package for some period of time |  | ||||||
| 
 |  | ||||||
| # TODO |  | ||||||
| 
 |  | ||||||
| * Division of labor |  | ||||||
|   * Tweag can do the domain-specific data types and transformations, as well as the the backend wiring |  | ||||||
|     * Ronny asked to get involved in the domain modeling |  | ||||||
|   * Waiting for Koen to contact their UI expert   |  | ||||||
|   * Robert needed for NixOps4 providers |  | ||||||
| * Selection of initial services |  | ||||||
|   * Also have to resolve friction around versions being up to date in Nixpkgs |  | ||||||
| 
 |  | ||||||
| # Next steps |  | ||||||
| 
 |  | ||||||
| * Define detailed scope, integration points, schedule |  | ||||||
							
								
								
									
										110
									
								
								meeting-notes/2025-01-24-mvp-demo-roadmap.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								meeting-notes/2025-01-24-mvp-demo-roadmap.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,110 @@ | ||||||
|  | # Target: Demo at Fediforum online conference 2025-04-01 | ||||||
|  | 
 | ||||||
|  | This is a result of the [team discussion on 2025-01-23](https://git.fediversity.eu/Fediversity/intra/src/branch/main/2025-01-23-roadmap-discussion-fediforum.md). | ||||||
|  | 
 | ||||||
|  | # Goal | ||||||
|  | 
 | ||||||
|  | Demo the key aspects of Fediversity: | ||||||
|  | 1. One-click deployment of Fediverse services | ||||||
|  | 2. (stretch goal) One-click portability between hosting providers | ||||||
|  | 
 | ||||||
|  | The point of the demo is to communicate: | ||||||
|  |  - That the project extists, what it is about, how it's special, and that it's progressing towards its goals | ||||||
|  |  - That this is the infrastructure you can use to provide a micro-cloud to end users | ||||||
|  |  - The ultimate goal is infrastructure portability | ||||||
|  |  - That we care about technological and economic sustainability | ||||||
|  |  - For organisations that want to participate in the Fediverse, we may be a good partner | ||||||
|  | 
 | ||||||
|  | Target audiences: | ||||||
|  | - Peers, potential clients, policymakers | ||||||
|  | - Hosting providers, organisations with sysadmins | ||||||
|  | 
 | ||||||
|  | # Assumptions | ||||||
|  | 
 | ||||||
|  | - There are ~47 (~9weeks) workdays between 27-01-2025 and 01-04-2025. | ||||||
|  | 
 | ||||||
|  | - Demo users will use the Fediversity infrastructure. | ||||||
|  | 
 | ||||||
|  |   There are a few things we have to hard-code for now, so the backend setup won't be easily adopted by others, and this isn't the goal for the demo. | ||||||
|  |   Eventually we'll also need to describe the infrastructure one needs to run the whole thing. | ||||||
|  | 
 | ||||||
|  | - At this point it's not clear if we'll manage to enable service portability. | ||||||
|  | 
 | ||||||
|  |   Services ready to run on top of Garage: PeerTube, Mastodon, Pixelfed. | ||||||
|  |   Making them portable is fairly involved though. | ||||||
|  | 
 | ||||||
|  |   [Galene](https://github.com/jech/galene) doesn't have any state and only needs configuration files to be ported over. | ||||||
|  |   But it doesn't have a NixOS service yet. | ||||||
|  |   Likely we we'll only need the Nix expression once we have it. | ||||||
|  | 
 | ||||||
|  | # User story 1: Deployment | ||||||
|  | 
 | ||||||
|  | - Log in with NixPanel | ||||||
|  | - Configure a DNS domain and select services to deploy | ||||||
|  | - Observe a progress indicator | ||||||
|  | - (optional) Get a notification when the process finishes | ||||||
|  | - Check that the services are accessible under the configured domain | ||||||
|  | 
 | ||||||
|  | # User story 2: Migration | ||||||
|  | 
 | ||||||
|  | - Log in on a different instance of NixPanel | ||||||
|  | - Create a migration token (e.g. callback URL) | ||||||
|  | - Paste the token in the first instance and start migration | ||||||
|  | - Observe a progress indicator | ||||||
|  | - (optional) Get a notification when the process finishes | ||||||
|  | - Check that the services run on the new instance | ||||||
|  | 
 | ||||||
|  | # Roadmap | ||||||
|  | 
 | ||||||
|  | * Set up a Django [CRM](https://en.wikipedia.org/wiki/Customer_relationship_management) service ([as discussed 2024-11-06](./2024-11-06%20standup%20notes.md#working-session-architecture-discussion)) | ||||||
|  |  * Trigger NixOps4 on form submission: | ||||||
|  |   * Requires a provider for the NixPanel to store deployment state and send progress updates | ||||||
|  |   * Requires a Passbolt provider for dynamic secrets ([as discussed regarding secrets handling 2024-12-10](meeting-notes/2024-12-10-decision-making-meeting-dealing-with-secrets.md)) | ||||||
|  |   * First step: assume a fixed provisioned setup | ||||||
|  |   * For (optional) migratio: VM provisioning will be handled via Ansible for now: | ||||||
|  |     * A NixOps4 Terraform provider is currently planned but will not be ready in time | ||||||
|  | * Rebrand MyProtagio to Fediversity | ||||||
|  |   * Remove the intermediate registrar and register DNS domains ourselves | ||||||
|  |   * Demo users will register an actual domain (and a bulk service package) using a voucher token | ||||||
|  | 
 | ||||||
|  | # Next steps | ||||||
|  | 
 | ||||||
|  | * Define: | ||||||
|  |   * Detailed scope | ||||||
|  | 
 | ||||||
|  |     Which components need which capabilities to fulfill the user stories? | ||||||
|  | 
 | ||||||
|  |     Example: | ||||||
|  |     - We need a Passbolt provider for NixOps4 | ||||||
|  |     - We need a CRM to be set up and running, ready for triggering deployments | ||||||
|  | 
 | ||||||
|  |   * Specific division of labor | ||||||
|  | 
 | ||||||
|  |     Who exactly is responsible for which compononents? | ||||||
|  |     Which time capcities are available for each contributor? | ||||||
|  |      | ||||||
|  |     Example: | ||||||
|  |     - Tweag: Valentin will do the data modeling, Nicolas will wire up deployment-related Nix code | ||||||
|  |     - Procolix: Hans will help integrate the existing Ansible script to spin up VMs on demand | ||||||
|  |     - Robert will develop a provider for NixOps4 to interact with the CRM | ||||||
|  | 
 | ||||||
|  |   * Milestones (scheduled delivery of capabilities) | ||||||
|  | 
 | ||||||
|  |     What are the component capabilities we can test together? | ||||||
|  |     When can we provide these aggregate capabilities? | ||||||
|  | 
 | ||||||
|  |     Example: | ||||||
|  |     - Week 1: Spin up the CRM and configure a rudimentary data model | ||||||
|  |     - Week 2: Let a fixed CRM user trigger NixOps to deploy a fixed config to a fixed existing VM | ||||||
|  |     - Week 3: Configure SSH keys in the CRM, deploy to a fixed VM a NixOS config accessible with these keys | ||||||
|  |     - ... | ||||||
|  | 
 | ||||||
|  |   * Issues (granular tasks) | ||||||
|  | 
 | ||||||
|  |     What exactly needs to be done to reach the milestones? | ||||||
|  | 
 | ||||||
|  |     Example: | ||||||
|  |     - Deploy CRM | ||||||
|  |     - Add UI for selecting a service | ||||||
|  |     - ... | ||||||
|  | 
 | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Valentin Gagarin
						Valentin Gagarin