Kde provozovat webovou aplikaci

Pavel P.

Kde provozovat webovou aplikaci
« kdy: 04. 06. 2017, 16:14:23 »
Ahoj,
měl bych pár obecných otázek k provozu webové aplikace. Uvedu, že aplikace bude určena pro celý svět a k běhu potřebuje celkem standardní záležitosti jako webový server, Python, PostgreSQL apod... nic speciálního. Cena provozu je důležité kritérium, protože minimálně ze začátku to nebude vydělávat nic (ale zase tam nebude ani velký traffic).

1) Kde aplikaci provozovat? Přemýšlel jsem o VPS, což vyjde nejlevněji (cca 100 Kč/měsíčně), ale člověk si musí všechno nastavit a hlídat sám. Určitě to bude chtít i nějaké logy, monitoring a zálohování. Je to v silách člověka, co je vývojář a nikdy neadministroval server? Další varianta je něco jako Heroku. Tam jsem se ale díval že pro free variantu PostgreSQL je omezení 10000 řádků, což je dost málo. Celkově to Heroku vyjde o dost dráž (Postgresql bez omezení řádků 50 USD/měsíc + cena za dyno) a nevím, jestli se to za tu cenu vyplatí. Jsou ještě nějaké podobné služby?

2) Jak zajistit dobrou odezvu pro celý svět? Když si pořídím VPS u české firmy, pojede to svižně v ČR a v Evropě. Ale v USA, Austrálii nebo Asii to pojede pomalu. Samozřejmě statické soubory plánuji dát na CDN, ale i tak si myslím že stránka se bude načítat třeba 2 vteřiny v odlehlých regionech. Jak se toto řeší? Když rozjedu víc serverů v různých místech světa, tak stejně si budou muset sáhnout na nějakou centrální databázi na druhém konci světa, ne?. Nebo má každý stroj svou databázi a nějak se to synchronizuje na pozadí?

Díky za odpovědi.


expert

Re:Kde provozovat webovou aplikaci
« Odpověď #1 kdy: 04. 06. 2017, 17:53:28 »
ad 1) jednoznačně Roští.cz

Karel

Re:Kde provozovat webovou aplikaci
« Odpověď #2 kdy: 05. 06. 2017, 09:07:18 »
Ahoj,

ad jedna zkus www.vas-server.cz - dostaneš server zkonfigurovaný podle představ a v ceně mají i správu a aktualizace.. Na vývojáři bych to nenechával... potřebuješ aby programoval aplikaci a ne se trápil s něčím co má zkušený admin za 10 minut. Navíc nemusí mít zkušenosti i když zvládne dělat konfigurace..

Časem až ti to bude vydělávat a budeš mít opravdu zákazníky z celého světa, tak můžeš přejít na amazon a umístit si servery do všech regionů.

Homeatcloud

Re:Kde provozovat webovou aplikaci
« Odpověď #3 kdy: 05. 06. 2017, 10:08:05 »
Zdravím,
za Homeatcloud mohu nabídnout na hostování Python aplikace image Turnkey GNU/Linux Django. Jsou tam všechny závosilosti a mělo by stačit tam jenom aplikaci nakopírovat. Základní samo-monitoring, automatické updaty a jednoduché administrační rozhraní jsou součástí. Lze i vyzkoušet v nabídce VPS zdarma. S instalací PostgreSQL rád pomohu a za periodickou rutinní správu si připočítáváme asi 200 Kč k ceně serveru.

Pak mohu také nabídnout něco jako Heroku. Je to PaaS cloud typu Cloud Foundry, který máme v beta testování. Databáze jsou již připravené a skutečně stačí tam jen poslat webovou aplikaci a nasadí se sama.

Z Čech bych Asii obsluhovat nedoporučoval. Spočítejte si, v kolika fázích se prohlížeč serveru dotazuje pomocí vývojářských nástrojů, vynásobte pingem do Singapuru http://www.cloudping.info/ a vyjde Vám doba načítání stránky z Asie. Při prvním navázání každého TCP spojení (prohlížeč si jich otevře třeba osm a pak je recykluje pipeliningem) připočtěte ping ještě jednou jako TCP handshake (s fast open). Většinou se počítá s tím, že uživatel je od 2s načítání nervózní a přes 8s je služba nepoužitelná.

Jak to je s databází si můžete přečíst v bakalářce kolegy Uhrína. Rozebírají se tam dvě možnosti - replikace databáze a vzdálené dotazování na centrální databázi. Ve vzorcích pro cenu cloudu je jako protiváhá právě nervozita uživatelů. Měřené to bylo na Wordpressu ve dvou módech použití. V každém případě, pokud můžete službu v Asii úplně oddělit od té evropské, udělejte to.
https://dspace.cvut.cz/handle/10467/23773

Tomáš Vondra za Homeatcloud

andy

Re:Kde provozovat webovou aplikaci
« Odpověď #4 kdy: 05. 06. 2017, 11:54:11 »
Homeatcloud: ako funguje ta 1/2 jadra? Je to 50% priorita, alebo nejako obmedzene na vypoctovy cas?


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Kde provozovat webovou aplikaci
« Odpověď #5 kdy: 05. 06. 2017, 13:04:17 »
Ahoj,
měl bych pár obecných otázek k provozu webové aplikace. Uvedu, že aplikace bude určena pro celý svět a k běhu potřebuje celkem standardní záležitosti jako webový server, Python, PostgreSQL apod... nic speciálního. Cena provozu je důležité kritérium, protože minimálně ze začátku to nebude vydělávat nic (ale zase tam nebude ani velký traffic).

1) Kde aplikaci provozovat? Přemýšlel jsem o VPS, což vyjde nejlevněji (cca 100 Kč/měsíčně), ale člověk si musí všechno nastavit a hlídat sám. Určitě to bude chtít i nějaké logy, monitoring a zálohování. Je to v silách člověka, co je vývojář a nikdy neadministroval server? Další varianta je něco jako Heroku. Tam jsem se ale díval že pro free variantu PostgreSQL je omezení 10000 řádků, což je dost málo. Celkově to Heroku vyjde o dost dráž (Postgresql bez omezení řádků 50 USD/měsíc + cena za dyno) a nevím, jestli se to za tu cenu vyplatí. Jsou ještě nějaké podobné služby?

2) Jak zajistit dobrou odezvu pro celý svět? Když si pořídím VPS u české firmy, pojede to svižně v ČR a v Evropě. Ale v USA, Austrálii nebo Asii to pojede pomalu. Samozřejmě statické soubory plánuji dát na CDN, ale i tak si myslím že stránka se bude načítat třeba 2 vteřiny v odlehlých regionech. Jak se toto řeší? Když rozjedu víc serverů v různých místech světa, tak stejně si budou muset sáhnout na nějakou centrální databázi na druhém konci světa, ne?. Nebo má každý stroj svou databázi a nějak se to synchronizuje na pozadí?

Díky za odpovědi.
Nejlepší je asi VPS, flexibilita se časem hodí. S tím načítáním to jde částečně vyřešit vhodnou technologií, typicky kombinace offline manifestu, ajaxu a lokálního cachování dat, i když pochopitelně záleží na tom, co přesně má ta aplikace dělat. Nicméně vhodná architektura dělá ohledně rychlosti přístupu divy.

MarSik

Re:Kde provozovat webovou aplikaci
« Odpověď #6 kdy: 05. 06. 2017, 14:42:32 »
Pro čistě webovou aplikaci bych se taky poohlídl po možnostech služeb typu PaaS jako jsou třeba Google App Engine (má vlastní řešení pro ukládání dat) nebo openshift (podporoval běžné databáze). Obojí mívalo free verzi.

Homeatcloud

Re:Kde provozovat webovou aplikaci
« Odpověď #7 kdy: 05. 06. 2017, 15:24:11 »
@andy:
1/2 jádra je udělané na OpenStacku tak, že nastavujeme flavor metadata
quota:cpu_quota 10000
quota:cpu_period 20000
to se propíše přes libvirt do cgroup a způsobí, že instance dostane CPU nejvýš na 10 ms za každých 20 ms.

Re:Kde provozovat webovou aplikaci
« Odpověď #8 kdy: 05. 06. 2017, 16:13:04 »
To fakt jeste nekdo v roce 2017 neco takovyho resi (omezovani vykonu CPU pro VPS)?
Děkuji za možnost editace příspěvku.

john

Re:Kde provozovat webovou aplikaci
« Odpověď #9 kdy: 05. 06. 2017, 16:41:03 »
To fakt jeste nekdo v roce 2017 neco takovyho resi (omezovani vykonu CPU pro VPS)?

Anom je to celkom bezne. Vacsinou tie najlacnejsie VPS, nie su realne ani VPS, ale iba kontajnery s public IP. Vdaka tomu vies predikovat a skalovat load v tvojej infrastukture. Pri velkych kontajnerizovanych aplikaciach nastavujes omezovanie resourcov aj per aplikaciu. Vdaka tomu vie cluster manazment (napr. Kubernetes), kolko kde coho moze nastartovat, bez toho zeby nepretazil systemove zdroje daneho noda.

1. 2. Kedze si dev, idealne by bolo neriesit ops veci - na to su serverless veci v mode. Ak sa da tak prepis app ako lambda funkcie a nemusis riesit ziadne serveri. DB tiez radsej zober ako manageovany service, nie ako samostatny server o ktory sa musis starat. Spomenuty Google App engine je tiez serverless.

andy

Re:Kde provozovat webovou aplikaci
« Odpověď #10 kdy: 05. 06. 2017, 17:06:38 »
No ako ked nechces robit php alebo iny hnus a mas tam velmi malu prevadzku, tak je to dobra vec. Akurat to nacenenie sa mi nepaci, lebo s ip4 za tu cenu mozem zobrat full cpu a 2gb ram napr na wedos. Potrebujem vps na testovanie, tak tiez nad tym spekulujem..

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Kde provozovat webovou aplikaci
« Odpověď #11 kdy: 05. 06. 2017, 17:49:30 »
Chceš po nás řešení soustavy 10ti rovnic o 50ti neznámých a z těch 10ti rovnic zadání jsi nám řekl dvě.

Pokud je to projekt, na kterém pracuješ sám ve svém volném čase, věnuj část toho času i administraci a jdi do VPS. Až se ti to rozroste, posuň to dál, někomu to svěř, ale budeš znát alespoň základy a neutáhnou tě na vařené nudli. Velmi nerad dělám reklamu, ale pro servery na pokusy s minimální zátěží využívám VPS od Forpsi, základní konfigurace 1CPU, 1GB RAM a 20GB HDD za 25 Kč na měsíc nemá konkurenci, ale nikdy jsem to nezkoušel ničím vážně zatížit. Je tam limit 2TB přenos měsíčně, což mně na malé věci problém nedělá. Pokud ti to začne generovat nějaký zisk, pár stovek měsíčně za nějakou "lepší službu" by neměl být problém a pokud neuspěješ, ztráty budou minimální.

Mimochodem, ona administrace ti velmi prospěje, pokud to má ambice stát se "velkou" službou, stejně bys měl už v aplikaci počítat s blbostma typu zálohování a nastavení prostředí, jinak se taky můžeš dostat k tomu (jako spousta jiných programátorů), že budeš mít sice "funkční věc", ale produkčně nepoužitelnou, protože to bude požírat 20GB RAM na každé připojení a konzistentní záloha bude znamenat několikahodinovou odstávku.

Yozka

Re:Kde provozovat webovou aplikaci
« Odpověď #12 kdy: 05. 06. 2017, 18:23:09 »
A jejda, máme tu dalšího frikulína, který si myslí jak začne vydělávat bez investic. Hodně štěstí :-)

John

Re:Kde provozovat webovou aplikaci
« Odpověď #13 kdy: 06. 06. 2017, 13:59:38 »
A jejda, máme tu dalšího frikulína, který si myslí jak začne vydělávat bez investic. Hodně štěstí :-)

Kvoli tomu by som ho nezhadzoval. Mladi/naivni/pekni sme raz boli vsetci :-P Ja tiez este stale cakam na svoj prvy milion :-)

Kit

Re:Kde provozovat webovou aplikaci
« Odpověď #14 kdy: 06. 06. 2017, 14:08:23 »
A jejda, máme tu dalšího frikulína, který si myslí jak začne vydělávat bez investic. Hodně štěstí :-)

Když děláš ověřovací prototyp, zda vůbec má smysl takovou aplikaci dělat, hodí se to nejlevnější řešení, které je k dispozici.