Pozadí ubytovníčku: platforma


Konečně se dostáváme do trochu techničtější fáze, o které měl původně tento seriál celý být. Ovšem pro některé souvislosti a nasměrování i na trochu potřebné teorie byla odbočka směrem k Running lean nezbytná. Tato fáze vychází z některých polí v Lean canvasu a sice pole cena a pole zisk. Nejsem si jistý, zda tento způsob zadání je možné považovat za korektní vyplnění těchto polí, ale popravdě – je mi to docela jedno.

V poli cena mám pouze dvě položky – platba za doménu a čas. Od toho se bude odvíjet veškerý návrh technické části. Všimněte si, že nikde není uvedena cena za hosting či virtuál, ceny za licence na ten který použitý software, cena za grafiku a další. Opravdu jedinou investicí by měl být můj čas.

Lean canvas
Lean canvas

Jaké technické řešení teda zvolit, když má být zdarma? Mohl bych si vybrat nějaký free hosting s podporou třeba php, ale vzhledem k mému odporu k tomuto jazyku to nehrozí. Jsem Javista a přestože mám v plánu pustit se do učení se nějakého dalšího nového jazyka, nemyslím si, že tohle je vhodná příležitost, takže zůstanu u té Javy. Možností běhu javy zdarma (alespoň několika instancí) na serverech je dneska už taky poměrně velké množství (Amazon Elastic Computing Cloud, Google App Engine, Heroku, Cloudbees, CloudFoundry a další), zkušenost mám pouze s Google App Enginem a Cloud Foundry, takže budu volit z nich. Volba je poměrně jasná, protože GAE je uzavřený (nejenom, svého času mě pěkně vytočil, když jsem se snažil udělat abstrakty pro persistentní objekty), navíc mi neumožní zdarma běh většího množství instancí a (jako bonus) můj odpor vůči této společnosti v poslední době docela stoupá, začínám na ni koukat jako na „evil one“.

O Cloud Foundry jsem mluvil už už minulý rok v Ostravě na Dev Skillz. A protože už o tomto řešení bylo napsáno více než dost kdekoliv jinde, tak se čtenář bude muset spokojit se základní informací, že se jedná o  PaaS řešení zaštítěné VmWare, které běží na jejich infrastruktuře, infrastrukturách jiných (AppFog, Uhuru), případně je možné sáhnout po komunity forku tohoto projektu a rozjet si jej na vlastních serverech. Spíše než o jazycích je vhodnější mluvit spíše o podporovaných frameworcích, kterýchž škála je poměrně pestrá: Spring, Grails, Lift, Play, Node.JS, Rails a Sinatra, persistence je zajištěna databázemi relačními (MySQL, vFabric Postgres) i NoSQL (Redis, MongoDB) a pro komunikační mezivrstvu je možné použít RabbitMQ.

Zásadní výhoda je tedy následující: s CloudFoundry mám možnost běhu aplikace zdarma, pokud bych vyžadoval více instancí, větší dostupnost nebo nějaké perličky, můžu si připlatit, nebo přímo přesunout aplikaci na EC2, či na vlastní infrastrukturu!

Jak jsem zmínil, Cloud Foundry přímo umožňuje využití některého z množství oblíbených frameworků, což rozhodně využiju, protože jsem člověk líný, abych začínal od píky. A jsem líný tak, že využiju nějaký RAD, v mém případě Spring ROO, protože nově podporovaný Play v době návrhu ubytovníčku ještě CF nebyl nabízen.

Roo nabízí využití některého ze dvou frameworků pro tvorbu view – Google Web Toolkit a Apache Tiles, takže sahám po Tiles v kombinaci s  jQuery a čistými JSP. Opět nepůjdu do detailů, zájemce odkážu na některý z mnoha tutoriálů na ovládání roo.

V poli zisk mám nejzásadnější položku – zkušenost. V praxi rád testuju různé nápady na lidech, jak se co ujme, jestli to vyhovuje…na malých částech, dalo by se to nazvat uživatelský prototyping. Nejinak tomu je i u tohoto projektu. Chci zkusit, jaký bude poměr registrovaným uživatelům ku uživatelům pouze využívajícím službu (jsem zastáncem možnosti anonymního využívání aplikací na webu, jako tomu bývalo odjakživa – před všemožnými facebooky a unifikovanými loginy v podobě openId a dalších) a prozkoumat zájem potencionálních zákazníků (provozovatelů ubytování), jak se budou stavět k nabídce využívání tohoto systému – vyzkoušet svoje „social skills“, totiž jak s „nepočítačovníky“ správně a slušně komunikovat.

Dalším pokusem (ziskem v podobě informace) bude sestavit vůbec funkční aplikaci nad Cloud Foundry – předchozí byly jenom pokusy v podobě helloworld a drobností pro zábavu – a získat pro ni nějaké reálné uživatele, na kterých se budu moci učit – ať už komunikovat jakožto „já projekt“, nebo ladit přivětivost systému, „zážitek“ z použití služby a další.

V neposlední řadě taky aplikaci zařadím do kategorie svých „pet projektů“, ke kterým se můžu uchýlit k odreagování se, když mě všechno ostatní točí a rád bych se jednorázově alespoň na chvíli věnoval něčemu jinému.

PS Jako side-project vznikl Air Cargo Forwarder, což je aplikace pro Android pro monitorování a ovládání aplikací běžících na platformě Cloud Foundry.

(Repost z ubytovnicek.cz)

,

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *