spec v0.1
Signed-off-by: rscnt <rascnt@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								207fc31417
							
						
					
				
			
			
				commit
				
					
						9cf8bcd7f3
					
				
			
		
					 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