spec v0.1
Signed-off-by: rscnt <rascnt@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								dfec8c29fd
							
						
					
				
			
			
				commit
				
					
						9ffb4698cd
					
				
			
		
					 1 changed files with 191 additions and 0 deletions
				
			
		
							
								
								
									
										191
									
								
								docs/hosting_app_spec.rst.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								docs/hosting_app_spec.rst.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,191 @@
 | 
				
			||||||
 | 
					=====================================
 | 
				
			||||||
 | 
					Ungleich Hosting WebApp Specification
 | 
				
			||||||
 | 
					=====================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Author: Raul Ascencio
 | 
				
			||||||
 | 
					Contact: raul.ascencio@ungleich.ch
 | 
				
			||||||
 | 
					Version: 0.1
 | 
				
			||||||
 | 
					Date: 2015-06-11
 | 
				
			||||||
 | 
					Copyright © ungleich GmbH 2015
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----
 | 
				
			||||||
 | 
					Terms
 | 
				
			||||||
 | 
					-----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					User
 | 
				
			||||||
 | 
					    The end-user, person/entity who books/use one or more vm's.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ungleich
 | 
				
			||||||
 | 
					    The company agents/users the creators and admins ofr the ungleich hosting
 | 
				
			||||||
 | 
					    webapp.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					Overview
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ungleich hosting is a Plataform as  a Service (PaaS) for multiple application
 | 
				
			||||||
 | 
					stack, offers multiple languages (ruby, python, javascript {node,io}.js),
 | 
				
			||||||
 | 
					application servers and databases.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ungleich hosting let the user focus on being more productive, without having
 | 
				
			||||||
 | 
					to worry about the complexities of maintaining a production enviroment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**This spec is not complete**, in fact it hasn't even be reviewed once, it
 | 
				
			||||||
 | 
					probably needs a couple of revisions to be accepted.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					What the ungleich plataform offers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Stack management.
 | 
				
			||||||
 | 
					- Monitoring and alerting.
 | 
				
			||||||
 | 
					- High availability.
 | 
				
			||||||
 | 
					- Automatic aplication deployment.
 | 
				
			||||||
 | 
					- Ready to use stacks.
 | 
				
			||||||
 | 
					- Automated Management.
 | 
				
			||||||
 | 
					- User Access Management [?].
 | 
				
			||||||
 | 
					- Production Ready Services (Postgresql, Memcached, Redis...).
 | 
				
			||||||
 | 
					- Backups and redundancy.
 | 
				
			||||||
 | 
					- Full management and support for stack-related issues [?]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Avilable stacks:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Ruby Stack**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Load balancers:
 | 
				
			||||||
 | 
					  - HAProxy
 | 
				
			||||||
 | 
					- Frameworks:
 | 
				
			||||||
 | 
					  - Ruby on Rails
 | 
				
			||||||
 | 
					  - ...
 | 
				
			||||||
 | 
					- Web Servers:
 | 
				
			||||||
 | 
					  - NGINX
 | 
				
			||||||
 | 
					  - ...
 | 
				
			||||||
 | 
					- Application Servers:
 | 
				
			||||||
 | 
					  - Unicorn
 | 
				
			||||||
 | 
					  - Passenger
 | 
				
			||||||
 | 
					  - Puma [?]
 | 
				
			||||||
 | 
					- Databases:
 | 
				
			||||||
 | 
					  - Postgresql
 | 
				
			||||||
 | 
					  - Mysql [?]
 | 
				
			||||||
 | 
					  - Mongodb [?]
 | 
				
			||||||
 | 
					- Caching:
 | 
				
			||||||
 | 
					  - Memcached [?]
 | 
				
			||||||
 | 
					  - Redis (people often use it for other things and it's nice to have) [?]
 | 
				
			||||||
 | 
					- Misc:
 | 
				
			||||||
 | 
					  - Preinstalled gems (sidekiq/resque, )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Python Stack**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- << Inserts Ruby Stack and replace:
 | 
				
			||||||
 | 
					- Application Servers:
 | 
				
			||||||
 | 
					  - Gunicorn
 | 
				
			||||||
 | 
					  - uWSGI
 | 
				
			||||||
 | 
					- Frameworks:
 | 
				
			||||||
 | 
					  - Django
 | 
				
			||||||
 | 
					  - ...
 | 
				
			||||||
 | 
					- Misc:
 | 
				
			||||||
 | 
					  - Celery/Gearman
 | 
				
			||||||
 | 
					  - ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Node Stack**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- << Inserts Ruby Stack and replace:
 | 
				
			||||||
 | 
					- Frameworks:
 | 
				
			||||||
 | 
					  - Express
 | 
				
			||||||
 | 
					  - Meteor
 | 
				
			||||||
 | 
					  - Hoodie
 | 
				
			||||||
 | 
					- Databases:
 | 
				
			||||||
 | 
					  - ...
 | 
				
			||||||
 | 
					  - Couchdb (Hoodie)
 | 
				
			||||||
 | 
					- Misc:
 | 
				
			||||||
 | 
					  - npm
 | 
				
			||||||
 | 
					  - pm2
 | 
				
			||||||
 | 
					  - browserify/requirejs/webpack
 | 
				
			||||||
 | 
					  - ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Brief summary of how it works:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. The *User* goes to an Ungleich Hosting website to register.
 | 
				
			||||||
 | 
					2. Once logged in, the *User* get asked for his/her billing information to start
 | 
				
			||||||
 | 
					   booking machines.
 | 
				
			||||||
 | 
					3. After the *User* inserts a 'valid' credit card he books a VM.
 | 
				
			||||||
 | 
					4. When a VM is booked the *User* is subscribed to a 'plan' that it's related
 | 
				
			||||||
 | 
					   with the VM specs.
 | 
				
			||||||
 | 
					   a. User can be asked for a public SSH key, this key can be used to access
 | 
				
			||||||
 | 
					   to the server.
 | 
				
			||||||
 | 
					5. The subscription gets confirmed, *Ugleich* deploy the requested infrastructure
 | 
				
			||||||
 | 
					   and stack.
 | 
				
			||||||
 | 
					6. *User* is notified that the new VM is ready to use.
 | 
				
			||||||
 | 
					7. The *User* access the new VM and deploys the Application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-----------------------
 | 
				
			||||||
 | 
					Ungleich Hosting - Goal
 | 
				
			||||||
 | 
					-----------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    As ungleich, we want to offer "Application Hosting" - pre-configured VMs plus
 | 
				
			||||||
 | 
					    support for the technologies running on them, the VMs should be "clickable"
 | 
				
			||||||
 | 
					    as in self service mid term.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------
 | 
				
			||||||
 | 
					Ungleich Hosting - Phase 0
 | 
				
			||||||
 | 
					--------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This phase will deliver a fully functional webpage for railshosting, without the
 | 
				
			||||||
 | 
					capabilities of the 'ungleich hosting app', except from selecting an stack
 | 
				
			||||||
 | 
					ordering it by email and the user being subscribed to a plan (billing).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Where this phase come from:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    + ...for the moment, it is enough if we generate a mail for every order
 | 
				
			||||||
 | 
					    + get rails-hosting.ch running so that somebody can order a VM including
 | 
				
			||||||
 | 
					      payment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*********
 | 
				
			||||||
 | 
					Non Goals
 | 
				
			||||||
 | 
					*********
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					+ The VMs should be "clickable" as in self service.
 | 
				
			||||||
 | 
					+ End-User interface to manage their VMs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*******************
 | 
				
			||||||
 | 
					The User Experience
 | 
				
			||||||
 | 
					*******************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					We assume that the *User* (Masteen) has a Rails Application ready to deploy with our
 | 
				
			||||||
 | 
					current stack for RoR application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------
 | 
				
			||||||
 | 
					Ungleich Hosting - Phase 1
 | 
				
			||||||
 | 
					--------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This phase will deliver the foundations for most of the ungleich hosting app capabilities.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for the moment, it is enough if we generate a mail for every order
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					************
 | 
				
			||||||
 | 
					User Stories
 | 
				
			||||||
 | 
					************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					User stories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					get rails-hosting.ch running so that somebody can order a VM including payment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					migrate www.ungleich.ch to Django
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let me try makes an entry in a database, but so far we are not checking it regulary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					the hosting price samples link nowhere
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Info needing for user:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					+ User Info
 | 
				
			||||||
 | 
					+ Addrress
 | 
				
			||||||
 | 
					+ Billing Details
 | 
				
			||||||
 | 
					+ Phone Verification [?]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DO:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					+ email & password
 | 
				
			||||||
 | 
					+ Comfirm email -> Billing Details -> Create Droplet
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue