!!! Od 1.6.2022 jsem zaměstnán na HPP. Kde? To tady nemůžu napsat (kvůli Compliance). Ale na mém Linkedin účtu (nick: Jirka Pinkas) to určitě najdete. 😁 V současnosti mám volných 10 dní, které mohu alokovat na školení 😊

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

Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek

Certicon
David

Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.

Jaroslav

Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.

Retia
Jaromír


Novinky

14.9.2024: Github Copilot & IntelliJ Idea
Novinky v Github Copilot + IntelliJ Idea

31.8.2024: AI & Copilot

25.12.2023: testcontainers pro lokální vývoj