Zdarma Java hosting: Heroku vs OpenShift

publikováno: 26.4.2015

Na Heroku i OpenShift je možné mít úplně zdarma Java web. aplikaci spolu s databází, přičemž to celé bude běžet na vlastní doméně. Tímto způsobem mi už přes rok běží v produkci některé mé weby, tudíž bych řekl, že s tím mám dost zkušeností a mohu porovnávat. Poznámka: Blíží se velký OpenShift upgrade (za dva měsíce), se kterým by se mohla vyřešit starší verze Javy a dalších aplikací (a také množství addonů).

Upozornění: Heroku 7.5.2015 oznámilo, že od července 2015 jejich free hosting výrazně omezí a prakticky bude kompletně nepoužitelný (idling každých 30 minut a aplikace bude mít uptime pouze 18 hodin - čili 6 hodin za den bude mít povinný výpadek ... čili tím prakticky zlikvidovali free hosting).

Funkce Heroku OpenShift
Number of web. apps
 
Neomezený počet aplikací.
3 aplikace per account.
Server
 
Vlastní Tomcat nebo Jetty, nejjednodušší je, aby aplikace byla spustitelný JAR soubor, který v sobě obsahuje embedded server (například Spring Boot), jinak je nutné použít Tomcat / Jetty runner
 
Tomcat / JBoss, nad verzí serveru není plná kontrola (což je problematické když je v té verzi zrovna nějaká chybička), zase na druhou stranu je to jednodušší pokud nepoužíváte Spring Boot.
Boot Timeout Aplikace musí nastartovat během 60 vteřin, jinak ji Heroku stopne. Tohle je obzvlášť nepříjemné zejména když aplikace používá Spring (singletony se vytvářejí při startu) a když se databáze automaticky generuje pomocí Hibernate (to se také děje při startu).
 
Žádný timeout při startu
Idling Když na jakoukoli webovou stránku během jedné hodiny nepřijde žádný požadavek, pak se "uspí" (v podání Heroku se celý server vypne).
 
Na jakoukoli web. stránku aplikace musí přijít požadavek během 24 hodin.
Latest Java Version
 
Java 8 (nejnovější)
Java 7 (starší, aktuálně je dokonce EOL - End Of Life)
Database
 
PostgreSQL 9.4 (nejnovější), max. 10 000 řádků ve všech tabulkách dohromady (ale uvnitř může být cokoli, i binární data nebo JSON objekty)
 
PostgreSQL 9.2 (starší - konkrétně 2,5 roku), MySQL, MongoDB, počet řádků je neomezený. Databáze sdílí disk s web. aplikací, serverem a případně dalšími daty, celkem 1 GB.
Files Na filesystém není možné nic ukládat, pouze tmp soubory, u nichž je zaručené, že tam zůstanou pouze po dobu provádění jednoho requestu na server.
 
Na filesystém je možné ukládat cokoli, jako u databáze se se vším všudy musíte vejít do 1 GB.
Upload web. aplikace
 
Git, GitHub, DropBox
Git
Custom WAR file Krátká odpověď: ne, dlouhá odpověď: ano, ale je to deprecated a v budoucnu to nemusí fungovat
 
ano, je možné libovolným způsobem vytvořit WAR soubor a ten nahrát na OpenShift
Uptime Heroku jednou za den provede automatický restart aplikace (s čímž je spojený výpadek a to je hodně otravné)
 
Žádný automatický restart jako u Heroku
Addons
 
U Heroku je spousta addonů (145 addonů), které ale většinou nevyužijete (nebo je možné je používat i bez Heroku). Poznámka: u addonů ať se jedná o Heroku nebo OpenShift je vždy riziko že mohou kdykoli přestat fungovat, jedná se o online služby externí subjektů.
Addonů moc není (32 addonů).
Poznámky
 
Práce s Heroku mi přijde víc high-level, víc věcí jde udělat klikacím způsobem ve webové administraci. 
Téměř všechno je nutné udělat z příkazové řádky. 

Závěr: neexistuje jednoznačné doporučení jestli preferovat Heroku nebo OpenShift, každý má své silné i slabé stránky.

Reference

Velmi se mi líbila přátelská a neformální atmosféra a viditelné nadšení a zapojení přednášejícího do problematiky a tudíž skutečně zajímavé příklady z praxe a možnost zeptat se prakticky na jakoukoliv

Ondřej

Školenie a celkovo prístup školitela hodnotím veĺmi kladne. Celé školenie bolo priposobené znalostiam skupiny (v našej skupine sa preskočili úplne základy a riešili sa konkrétne rozšírujúce znalostí). Školenie neprebiehalo odrozpravaním

Martin

Školení se mi moc líbilo, použití novinek v javě na konkrétních případech použití a vždy srozumitelně vysvětleno. Školitel má převyšující kvalifikaci a dokáže informace správnou formou předávat dál. Moc se

Robin


Novinky

26.9.2017: RebelLabs Developer Productivity Report 2017
Další rok, další RebelLabs report :-)

14.9.2017: Java release cycle zrychluje & Java Flight Recorder zdarma
Dlouhé mnohaleté prodlevy mezi jednotlivými major releasy v Javě končí!

14.9.2017: Java EE se stěhuje do nadace Eclipse Foundation
Co to znamená?