logo
29.12.2019 19:06
1
Ahoj komunito,
uměli by jste mi prosím poradit?
Mám nápad na mobilní aplikaci, kterou bych rád realizoval pro iOS i Android. Základ je v tom, že si v rámci ní budou uživatelé moci založit a spravovat svůj uživatelský účet a pod ním pak budou vytvářet a publikovat své příspěvky. U každého příspěvku budou moct vložit sadu fotografií. V souvislosti s publikovanými příspěvky pak bude probíhat komunikace mezi uživateli.
V prvním roce fungování počítám se zhruba 100 000 uživateli. S tím, že denně aplikaci použije cca 10000 uživatelů a ve stejnou chvíli že s ní bude pracovat maximálně 1000 uživatelů.
Business model té aplikace je založený na mikroplatbách. Takže velký důraz (pokud jde o softwarové komponenty použité v řešení) bude muset být kladen na zabezpečení komunikace mezi aplikací v mobilu uživatele a serverem. Prostor na serveru pro uložení fotografií a pro databázi odhaduji v jako dostatečný v tom prvním roce provozu někde kolem 500GB až 1TB. V prvním roce počítám spíš jen s uživateli z ČR, ale pokud bude aplikace úspěšná, změní se do budoucna na globální projekt.
Umím tu aplikaci navrhnout na úrovni UseCase pro front-end i back-end část a na úrovni wirefarme prototypu. Nejsem ale architekt a tak netuším, jaké hardwarové a softwarové komponenty by byly dostačující na provoz aplikace s výše uvedenými parametry.
Dokázal by jste mi prosím někdo poradit, jak by měla vypadat konfigurace serveru (nebo cloudu) a jaké softwarové komponenty (včetně OS a databáze) by na tom železem měly běžet, aby se na tom dala provozovat mobilní aplikace s výše popsanými charakteristikami? Stačí mi v tuhle chvíli nějaký hrubý návrh architektury, poplatný míře obecnosti popisu té aplikace, tak jak jsem ho uvedl výše. V tuhle chvíli totiž ten výčet železa a softwarových komponent potřebuji primárně k tomu, abych si dokázal na základě toho zjistit, kolik by taková věc asi ročně mohla stát na licencích, pronájmu a servisních službách a jestli je tím pádem reálné, že by si ta aplikace vydělala alespoň na svůj provoz.
Ještě více by mi proto pomohlo, pokud by jste někdo měl typ na poskytovatele, který takovou hardwarovu a softwarovou konfiguraci poskytuje jako kompletní službu, u které sám kompletně zajišťuje její provoz. Protože já se chci starat jen o běh své aplikace a nechci si sám (alespoň ne hned v počátku) řešit, že správně běží server a databáze, že se dělají zálohy, atd. To bych chtěl dostat jako službu.
Předem moc díky, pokud by jste byl někdo ochotný mi s tím návrhem architektury poradit.
29.12.2019 19:35
2
Vyber si free software podle toho jak populární jsou na trhu (jazyk/db/server/...) takže linux jako platforma. Bude to stát $0 a lépe seženeš schopné lidi, jestli. Platit budeš za železo a práci (správu/vývoj). Jestli tam budeš chtít sehnat schopný lidi, tak počítej s mega ročně na hlavu minimum.

Kde si vzal ty čísla o budoucích uživatelích? Dělal sis průzkum trhu a oponoval ti to někdo? Víš o tom že 10000 lidí denně je jako 10000 lidí co potkáš na ulici? Proč by měli obětovat čas a peníze používáním tvojí appky každej den?

EDIT:
Mě to ani tak nezajímá. Odpověz si sám.
29.12.2019 20:07
3
Původně odeslal emitor
Vyber si free software podle toho jak populární jsou na trhu (jazyk/db/server/...) takže linux jako platforma. Bude to stát $0 a lépe seženeš schopné lidi, jestli. Platit budeš za železo a práci (správu/vývoj). Jestli tam budeš chtít sehnat schopný lidi, tak počítej s mega ročně na hlavu minimum.

Kde si vzal ty čísla o budoucích uživatelích? Dělal sis průzkum trhu a oponoval ti to někdo? Víš o tom že 10000 lidí denně je jako 10000 lidí co potkáš na ulici? Proč by měli obětovat čas a peníze používáním tvojí appky každej den?

EDIT:
Mě to ani tak nezajímá. Odpověz si sám.
Díky za reakci. Nicméně toto jsou přesně ty věci na které (a to záměrně) jsem se neptal.
Samozřejmě mám nějaké podklady, ze kterých vycházím při úvaze o počtu uživatelů. A je mi samozřejmě jasné, že apka bude mít nějakou pracnost/cenu vývoje.
Zde se ale dotazuju čistě na HW/SW architekturu nutnou pro provoz takové aplikace a pokud možno i odhad roční ceny za provoz takové architektury (včetně případných licencí).
29.12.2019 20:18
4
bez SW nelze říct HW nároky a natož doporučit na čem to udělat. Výbeˇr cloudových (PaaS) databází zase nelze udělat bez znalosti toho, v čem a kdo to bude programovat.

Tvoje odhady počtu návštěvníků vypadají spíše jako přání než kvalifikovaný odhad.

Tady se asi moc nedozvíš, sám nevím co ti říct, sežeň si někohoc kdo ti to technicky zajistí a pak detaily řeš s ním.
29.12.2019 20:37
5
V první řadě by se mělo rozhodnout, v čem se bude programovat serverová část a jaká bude databáze. Na základě toho se bude řešit OS atd.. HW je na začátku asi zbytečné řešit, protože to byste museli mít hned dalšího člověka na jeho správu a proto je lepší pronájem VPS nebo cloudu.
Výběr OS zase závisí na tom, jestli máte někoho, kdo se v tom vyzná. U Linuxu musíte fakt dobře vybírat potřebné balíky, často něco vyzkoušíte a nefunguje to, jak očekáváte nebo to nefunguje vůbec a pak předěláváte celé řešení, případně se objeví nějaké špeky v ostrém provozu, které se nedaly předpokládat. Microsoft = koupíte licenci z druhé ruky za pár korun, nainstalujete a nějak to funguje (většinou se to podělá při updatu, ale to linux taky) a je tam nějaká garance kompatibility při upgradu.
Já třeba provozoval MSSQL na debianu a makalo to v pohodě. Pokud pak děláte nějaké zásadní změny, tak snapshoty ušetří miliardu času a nemusíte být expert na mysql, aby to bylo nějak použitelné.
29.12.2019 21:46
6
Pomicham ti jablka a hrusky.

Budes delat typ appky HA, CPA, HWA nebo PWA?

Jak bude front-end komunikovat s back-endem? Pomoci REST nebo GraphQL?

Tvoji appku bude instalovat presne 1000 az 1 000 000 lidi, pouzivat denne 10 az 1 000 000.

Takze hledas neco jako BAAS, co treba https://aws.amazon.com/amplify/ pripadne https://mobile.back4app.com/ ?

Cena, no zalezi na tom, bud 50k nebo klidne 1M. Zalezi na tom, jak jsi to vymyslel a kolik mas penez. Oskubat tvuj rozpocet pri vyvoji se da jakkoliv.

Tak hlavne si promysli technicke zadani, koncept, sepis to vsechno hezky tak, aby to pochopilo i 13 letw dite. Priprav si poptavku a hura do toho.

Nebo ocekavas technicke zadani zdarma?

Opravdu nezacinej cisly, cislo uzivatelu je zcela irelevantni v zacatku.
29.12.2019 22:09
7
Původně odeslal TomášX
bez SW nelze říct HW nároky a natož doporučit na čem to udělat. Výbeˇr cloudových (PaaS) databází zase nelze udělat bez znalosti toho, v čem a kdo to bude programovat.

Tvoje odhady počtu návštěvníků vypadají spíše jako přání než kvalifikovaný odhad.

Tady se asi moc nedozvíš, sám nevím co ti říct, sežeň si někohoc kdo ti to technicky zajistí a pak detaily řeš s ním.
Ano souhlasím že HW nároky nelze říct bez SW nároků. Proto jsme se také ptal na obojí.
Pokud jde o ty počty uživatelů, tak v tuhle chvíli neřeším, jak moc jsou má čísla reálná. Protože ať už udělám jakýkoli průzkum, vždy to bude jen odhad. Obzvlášť když není s čím srovnávat a nebo jen velmi přibližně.
Vycházím z předpokladu, že SW/HW architektura (a tím i měsíční náklady na provoz a správu), která má zvládnout objem komunikace mezi aplikační(mobilní) a serverovou vrstvou pro 10000 aktivních uživatelů denně, se nebude výrazně lišit od SW/HW architektury pro obsluhu aplikace, užívané denně polovičním, nebo naopak dvojnásobným počtem aktivních uživatelů. Výrazný rozdíl bych očekával až v případě, že by musela být schopná obsloužit třeba desetinásobek.
V podstatě jsem tedy čekal, že mi zde někdo, kdo je na rozdíl ode mě zkušený solution architekt mobilních aplikací, řekne: "Pro mobilní aplikaci tebou popsaného typu a s tebou předpokládaným počtem uživatelů, se jako typická(nebo jako dostačující) SW/HW architektura může použít následující: ... . Pokud by jsi celou tu SW/HW architekturu chtěl jako službu, tak možnosti jsou třeba u poskytovatelů A, B, C. Počítej s tím, že pokud si to celé budeš u těch poskytovatelů A, B,C chtít pořídit jako službu (tedy že si nebudeš platit svého vlastního správce SW/HW architektury), tak tě to velmi nahrubo odhadnuto, vyjde měsíčně někde kolem 1000Kč/5000Kč/10000Kč/víc než 10000Kč"
29.12.2019 22:57
8
nejprve ale musíš dát dohromady technický popis aplikace, z něho lze odvodit architekturu a z ní rozpočet.

My ale netušíme co vlastně chceš dělat. To co jsi napsal se dá zprovoznit na serveru za 2 tis měsíčně na open source řešení nebo na servové farmě.

Nikdo ti tady nedokáže říct kolik provozu spotřebuje online uživatel, jak náročné bude obsloužit mikroplatby, kolik fotek a v jakých velikostech budou uživatelé nahrát. Napsal jsi jen nějaký nástin, ďábel je schovaný v detailech a implementaci a těžko odhadovat něco co není běžná aplikace typu blog/eshop a co je nejspíš vývoj na zakázku.
30.12.2019 08:54
9
Pokud opravdu planujete takovy narust uzivatelu, tak brzy narazite na problemy skalovani celeho deploymentu (ne jenom DB nebo backend API), osobne bych doporucil zacit na nejakem mensim Kubernetes clusteru, pouzit managed DB, at' nemusite resit security updaty atd. Z dodavatelu mam zkusenosti s DigitalOcean a AWS, posledni je drazsi a vyspelejsi. Na start-up bych pouzit spis DO. Na konkretnich technologiich prave moc nezalezi, predpokladam, ze stejne skoncite u PHP/Python/Node.js a Docker.