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