3. Výběr vhodných technologií pro startup
v prostředí cloudu
Obsah přednášky
• Definice startupu
• Výběr úložiště (SQL nebo NoSQL)
• Výběr backendu aneb co na server
• Jak naložit s frontendem
7. Výběr úložiště
Máme k dispozici
• key-valued databáze
• dokumentově orientované
• relační databáze
• grafové
• sloupcově orientované
Tak kterou vybrat?
8. NoSQL - key-value,document oriented
• výhody
o extrémně rychlé na čtení a zápis
o dobře škálovatelné
o bez nutnosti vytvářet schéma
• nevýhody
o veškerá logika na aplikační úrovni
o vysoká redundance dat
Vhodné spíše jako cache.
9. NoSQL – column family
• Výhody
o schéma
o škálovatelné
o map reduce
• Nevýhody
• na jednom serveru nebudou lepší než relační
• Různé API (MapReduce,Thrift )
10. Zlaté pravidlo
Vždy se řiďte zlatým pravidlem
Neřešte problém který nemáte.
Pokud nemáte speciální architekturu, tak použijte relační DB.
12. Co na server?
• java - Google,Sun,Apache Foundation
– Google App Engine,Glassfish,Apache Tomcat
• python – Google
– Google App Engine
• ruby - 37signals
• php - Yahoo,Facebook
– Apache Tomcat
• .NET – Microsoft
– Microsoft Azure, MS Server 2008
13. Co na server?
Co takhle Javu?
• je rychlá
• má spoustu knihoven
• plno problémů dobře dokumentovaných
• JVM
• na českých technických univerzitách se v javě učí
programovat skoro každý student (povinně)
14. Co na server?
A nemá Java nějaké nevýhody?
• Java je ukecaná
• nemůžete upravovat onfly, musíte kompilovat
• musíte všechno typovat
• často mraky XML konfigurace
Naštěstí se blýská na lepší časy
• Play Framework
o scafolding
o žádné xml konfigurace
o automaticky generované testy
o MVC
o automatický deployment
16. A frontend nic?
Jestliže výběr aplikačního prostředí byl problém, tak tohle je
výzva
Jedna platforma - HTML/CSS/JS ale tolik různých
implementací
• IE
• Opera
• Chrome
• Safari
• Firefox
17. Jak z toho ven?
Použít frameworky jak na CSS, tak na JavaScript
JavaScript frameworky
• JQuery
• Prototype
• GWT
• YUI Libs
Který je ten pravý?
18. Zdánlivá odbočka
Stát se v něčem expert znamená věnovat se té oblasti nejméně
10 000 hodin.
Což jsou aspoň 3 roky, učení.
Ideálně kdyby jeden jazyk mohl obsáhnout vše.
19. Java má tuto vlastnost
Backend -
• dobré MVC frameworky (Spring,Struts,Play)
• fulltextové vyhledávaní Lucene
• ORM - Hibernate
• Hadoop,HBase - MapReduce
• a mraky dalších knihoven
Vynikající IDE - Eclipse,Netbeans
• debugger
• profilování aplikace
• nápověda
20. Java má tuto vlastnost
Frontend
• Google Web Toolkit
o nepíšete javascript ale programujete v Javě
o podpora IDE - debugger, nápověda, generování kódu
o optimalizace JavaScriptu
o lehce integrovatelné různé JS knihovny