15. 11. 2013

Jelastic aneb jak chutná svoboda

Před pár dny mě opět políbila programátorská můza a takřka přes noc jsem stvořil aplikaci, o kterou bych se chtěl podělit se světem. Jelikož nemám žádný svůj veřejný server, kam bych ji mohl nasadit, začal jsem se rozhlížet po službě, která by mi tohle vyřešila.

Respektive, moc jsem se nerozhlížel. Protože už z dřívějška znám Google App Engine (GAE), což je služba, která přesně tohle nabízí (možnost nasadit svoje aplikace do cloudu, na googlí servery), byl jsem rozhodnutý nasadit svou aplikaci tam. Docela mě překvapilo, že to není úplně tak jednoduché, jak jsem si myslel.

Některé problémy, které se objevily:

  • Aplikace musí být napsaná speciálně pro jejich SDK, které nemusí odpovídat (a zřejmě ani neodpovídá) na 100% standartnímu Java SDK. To znamená jednak že je třeba při vývoji dávat extra pozor, protože všechno nemusí fungovat tak, jak je vývojář zvyklý, a jednak že výsledná aplikace je v podstatě nepřenositelná (nebo není přenositelná bez úprav), na server používající jinou technologii (SDK) - což je v podstatě jakýkoliv server, protože SDK Googlu nepoužívá nikdo jiný než Google.
  • Moje aplikace je postavená na frameworku Wicket, jehož integrace s GAE SDK také není úplně bez práce (kvůli omezením GAE SDK).
  • Kvůli použití nestandartního SDK je potřeba pracně konfigurovat nové vývojářské prostředí.
  • GAE SDK klade na aplikace různá omezení - např. načtení do minuty, zákaz zápisů na filesystem (resp. vůbec žádný přístup na filesystem), ...
  • Dodatečně jsem se pak dozvěděl ještě o dalších problémech, jako například že nelze používat svojí doménu (aplikace musí běžet na nazev.appspot.com) nebo že jsou problémy s databázemi - jsou pomalé, nelze dělat JOINy atd. Tady ale nevím, co je na tom pravdy, protože jsem to sám nezkoušel.

Můj největší problém byl hned konfigurace prostředí. Neustále jsem řešil nějaké chyby a problémy, až mi došla trpělivost a začal jsem se rozhlížet po alternativách. Frustraci a vztek ale brzo vystřídalo nadšení a vděčnost, protože jsem narazil na Jelastic.

Jelastic je stejně jako GAE cloudová PaaS (platform-as-a-service) služba, která nabízí možnost nasazovat vaše java aplikace do cloudu na prostředí, které si sami nakonfigurujete.

Vytvoření prostředí je maximálně jednoduché, je to pár kliknutí, kterými vás ještě navíc po prvním přihlášení provede jednoduchý wizard. Možnosti technologií, které bude vaše prostředí obsahovat, jsou široké a co je na tom všem nejlepší, zahrnují nejčastěji používané open-source nástroje, na které je většina vývojářů zvyklá. Není tedy potřeba se učit nic nového a aplikace mohou být naprosto standartní, což je velké plus. Pár příkladů za všechny:

Java 6 i 7

Aplikační servery
    - Tomcat 6.0, 7.0
    - Glassfish 3.1
    - Jetty 6.1

SQL Databáze
    - PostgreSQL 8.4, 9.2
    - MySQL 5.5

NoSQL Databáze
    - MongoDB 2.4
    - CouchDB 1.3

A to ani nemluvím o dalších advanced možnostech, které ještě pořádně neznám: load balancing, memcache, horizontální i vertikální škálování, propojení s mavenem a svn, SSL, virtuální servery...

Vytvořené prostředí se dá (opět velmi snadno a přehledně) dál různě nastavovat a měnit, hlavně s ohledem na požadovaný výkon, se kterým pak souvisí cena, která se každý měsíc platí.

Nasazení aplikace je otázka uploadu .war souboru a několika kliknutí (po propojení s mavenem a svn odpadá i upload, možná že půjde i nastavit automatický build, to zatím nevím), vše funguje naprosto perfektně a rychle.

Uvidíme, jak to bude fungovat dál, jak bude moje aplikace růst, ale zatím jsem z Jelastic nadšený, maximálně spokojený a rozhodně doporučuji.

Žádné komentáře:

Okomentovat