Łatwość hostingu aplikacji - framework, język?

0

Cześć wszyscy ;)
Naszła mnie ostatnio taka refleksja. Tytuł wątku może mało mówi, bo trudno mi było go w ogóle nadać. Może opisze pokrótce o co mi chodzi.
Lubie pisać w javie, grzebać w javie itp, pisze aktualnie projekt dla siebie. Jednak w jej wypadku nie ukrywajmy, że trochę ciężko jest w warunkach domowych napisać aplikacje i upublicznić ją w internecie. Hostingi są bardzo drogie, a jeśli już są darmowe, to mają spore ograniczenia, a samo deployowanie aplikacji na ten serwer jest mega trudne i czasochłonne.

Wiem, że tu nie ma co porównywać, ale weźmy takiego PHP'a: darmowych hostingów cała kupa. Żeby ją upublicznić na hostingu jakimś potrzeba nam FileZilla'i, parę minut i gotowe.

No więc co do mojej refleksji, która to mnie naszła, pomyślałem sobie, że gdybym w Javie chciał napisać coś dla siebie, wrzucić do netu i korzystać, to zajęłoby mi to kupę czasu (ile w ogóle by się udało, bo ze względu na ograniczenia hostingów mogę być zmuszony do korzystania tylko z narzuconego mi zestawu technologii). Do tej pory pisałem sobie na localhostcie i dalej pisze bo mi to sprawia radochę, tylko ostatnio gdzieś pojawiła się ta obawa, że ciężko będzie to hostingować. Czuje taką pustke, że piszę, ale nie mogę tego gdzieś wrzucić i zobaczyć jak na prawde działa.

Jakby np znajomy chciał, żebym mu coś małego napisał i wrzucił na jakis hosting - no nie ukrywajmy, że w javie to armata na muche. Może w warunkach korpo, gdzie są ogromne systemy jest fajnie, ale dla własnej potrzeby stworzyć coś to trochę ciężka sprawa. Gdybym aktualnie zostal poproszony o napisanie coś nietrywialnego, choć niewielkiego i wrzucenie tego na hosting - wybrałbym PHP, którego znam beznadziejnie, ale wiem, że łatwo będzie mi to upublicznić.

Do czego dążę? myślę która technologia będzie fajna do takich domowych, mniejszych zastosowań. (pisania dla siebie lub np nietrywialnych małych aplikacji dla kogos itp) Na myśl przychodzą mi django, railsy i może jakis node.js? w django pisałem i jest ok, ale nie dokładnie wiem jak sie ma sprawa hostingu takich appek. PHP nie wymieniam, bo choć uważam go za fajny na małe zastosowania, nie przepadam za nim.

Jesli ktoś zrozumiał o co mi chodzi i coś ciekawego może powiedzieć to będę wdzięczny. Dzięki ;)

0

Lubie pisać w javie, grzebać w javie itp, pisze aktualnie projekt dla siebie. Jednak w jej wypadku nie ukrywajmy, że trochę ciężko jest w warunkach domowych napisać aplikacje i upublicznić ją w internecie. Hostingi są bardzo drogie, a jeśli już są darmowe, to mają spore ograniczenia, a samo deployowanie aplikacji na ten serwer jest mega trudne i czasochłonne.

Sprawdzałeś opcje stąd: Hosting dla aplikacji webowych na platformę Java ?

0

tak sprawdzałem sprawdzałem, na heroku próbowałem (co prawda z grubsza) ale jednak wciąż stworzenie czegoś mniejszego np. postawionego na spring boot'cie i wrzucenie gdzieś jest czasochłonne i trudne
chyba, że to ja się mylę i potrzeba po prostu wprawy? i przekopania tutoriali wzdłuż i wszerz

A takie pytanie dodatkowo: gdybym przykładowo chciał w javie zrobić serwis RESTowy albo jakąś aplikacje w Thymeleaf + Spring MVC to jaki zestaw wybrać? Tomcat/Jetty? pisać to od podstaw, czy użyć spring boota? jaki hosting jest aktualnie najlepszy na start?

0

Dawno nie bawiłem się w hostowanie aplikacji Javowych, ale powinny być jakieś wtyczki do IDE, które mocno automatyzują deployowanie.

Do stworzenia projektu możesz spróbować archetypów Mavenowych: https://cloud.google.com/appengine/docs/java/tools/maven
A nóż widelec może coś gotowego przypasuje :)

0

@Wibowit Jeśli chodzi o tworzenie projektu, chodzi mi bardziej o to, co wybrać, żeby własnie wpasować się w najczęściej spotykany zestaw technologii na hostingu, żeby np uniknąć problemów typu, że jak mam przykładowo jetty embedded to musze zrobić 100 dodatkowych rzeczy, żeby działało :)

Hmm heroku np ma wtyczke z tego co pamiętam dla intelij i eclipsa.
Tylko ciekaw jestem jakich frameworków moge używać na tych darmowych hostinach. A może to nie ma znaczenia i po prostu to co wpisze w pom.xml to będe miał?

0

Google App Engine udostępniało (i chyba nadal udostępnia) SDK z wbudowanym jettym, więc można było sobie lokalnie testować (co niestety nie dawało 100% gwarancji, że będzie działać po zdeployowaniu, ale i tak było dobre).

Programując pod chmurę trzeba pamiętać o tym, by nie zakładać, że dana instancja będzie działać wiecznie. Instancje są tworzone i ubijane w zależności od obciążenia i trzeba dbać o to, by aplikacja szybko startowała, a dane były utrwalane na bieżąco (chociażby w sesji, która jest serializowana chyba za każdym razem do datastore w GAE/J).

0

@Wibowit prawde mówiąc to z chmurą i pisaniem pod chmure mam zero doświadczenia i wiem, że to spory dział wiedzy w tych czasach.
z trójki: Heroku, GAE i OpenShift, mysle ze heroku ma najlepsze docsy jeśli chodzi o pierwsze kroki (nie wiem jak potem), ale slyszalem ze niebezpiecznie w jakis sposob udostepniac kod prosto z gita (bo tak chyba robi heroku?)

Czyli co bys polecal mi na poczatek sprobować, żeby w miare bez komplikacji hostować aplikacje spring rest + hibernate albo cos podobnego typu jakis silnik templatek + spring mvc + hibernate?

I co z tą technologią "na codzien"? lubie tez pythona, jak wyglada hosting dla django/flask'a/ innych webframeworkow pythona + na przyklad SQLAlchemy?

0

Na heroku możesz sobie pythona zahostować, w sumie znajdziesz trochę djangowych hostingów, ale ja preferuję postawić sobie to na VPSie albo shellu, wygodna konsola itd.

0

@Wizzie tak, na heroku już próbowałem django hostingować i metodą macajewa coś tam poszło, ale nic specjalnego tam nie umieszczałem, jakis prosty napis wyswietlało tylko ;)

Wiem, że OVH ma VPS tanio, 9.90zł kosztuje miesięcznie i mój znajomy go ma. Kiedys szukalismy na liście w konsoli tomcata i jettego i nie pamiętam czy oba, ale któryś na pewno był. Jak wtedy wygląda umieszczanie takiej aplikacji na hostingu w wypadku VPS'a?

0

Kupując VPSa dostajesz wirtualny komputer z swoim użytkownikiem, na którym możesz zrobić wszystko na co Ci pozwala dostawca oraz przepisy prawne. Z deploymentem aplikacji springowej na OVH nie ma żadnego problemu. Normalnie z poziomu konsoli instalujesz sobie wszystko po kolei co Ci jest potrzebne. Wpisujesz w google: "how to install tomcat on linux" i czytasz jak to zainstalować, podstawowa wiedza dotycząca konsoli linuxa zalecana ;)
Ja aktualnie mam skonfigurowany tam SVN, który przechowuje mój mavenowy projekt w springu, bazę danych PostgreSQL, jenkinsa oraz tomcata 7.
Projekt sobie komituje normalnie do SVN'a, następnie klikam w jenkins build i projekt jest aktualizowany do najnowszej wersji, zostaje zbudowany i automatycznie zadeployowany na tomcata. Po chwili aplikacja wstaje na tomcat'cie i wszystkie zmiany są uruchomione.
W razie czego służę pomocą w takiej konfiguracji ;)
Pozdrawiam

P.S. Mam właśnie tę najtańszą opcję z OVH. Nie testowałem jej produkcyjnie w stresie ;)

0

Jeśli chodzi o Jave to tu masz w miarę nowy wątek:
JSF a uruchomienie aplikacji na "prawdziwym" hostingu

Javę najłatwiej było mi postawić na Jelastic (Tomcat). Banalnie proste. Ale to jest kosztowne jeśli od razu nie zarabiasz.
Z Javą w wersji Tomcat jest taki problem że nie podgrasz sobie jakiegoś tam pliku z formularzem i już Ci działa - trzeba restartować serwis (reload).

PHP jest łatwy w hostingu dla małych stron, trochę mniej jeśli budujesz coś większego w oparciu o Drupala lub jakiś framework - dochodzi potrzeba konfiguracji .htaccess, php.ini, chmod, uruchomienia APC, memcache, CDN, możliwe też że trzeba będzie kiedyś tam rozbić bazę (sharding lub NoSQL): http://codefutures.com/database-sharding/.

To co różni Javę i języki skryptowe to to że w skryptach nie trzeba nic kompilować, ale gdy pracujesz z Javą lokalnie to tego etapu możesz nie zauważyć (zwłaszcza dla małych aplikacji).

VPS-y (czyli pre-konfigurowane maszyny wirtualne) są dobre do PHP-a (wszystko skonfigurowane jak trzeba), do Javy to za każdym razem coś mi tam nie pasowało (poza chyba Jelastic). Do Javy na razie najlepie sprawdziła mi się usługa typu "cloud serwer" gdzie instaluje wszystko sam od początku do końca (poza OS).

1 użytkowników online, w tym zalogowanych: 0, gości: 1