tnr: proof of concept bohužel znamená "zbastlíme to stejně jak finální aplikaci". Frameworky mají svoje místo, netvrdím, že se má pokaždé všechno znovu vymýšlet a stavět na zelené louce, ale je třeba to brát trochu inteligentně. Nemám to "vývojářům" (čti aplikačním malířům) za zlé, chyba je i na straně zákazníka, že dokáže na neskutečný prasečiny podepsat smlouvu.
Typický příklad:
Zákazník: chci statický web, asi 5 stránek, pár návštěv za den
Dodavatel: Fajn, uděláme to v XY, potřebujeme 8 jader, 16GB RAM, 2 měsíce, 2 mega
Z: a pak chci IS na míru, 100 uživatelů, cca 50 současných přístupů
D: Fajn, uděláme to v XY, potřebujeme 8 jader, 16GB RAM, 10 měsíců, 10 mega
Z: Aha... a to můžete něčím podložit, nebo si to cucáte z prstu?
D: Sme snad blbci, nebo co? Máme zkušenosti, jsme špička v oboru, tak jsme řekli, tak to bude.
Smutnou realitou je, že absolutní většina SW malířských firem nemá ani páru o tom co dělá. Opakovaně za jejich vývojáře řeším jejich problémy, který oni odmítají řešit s tím, že máme rozbitý a pomalý servery a v absolutní většině případů je problém na straně SW. Oblíbená fičura je SQL dotaz s 50 joinama a z toho aspoň 10 LIKE %kokotina%. Aháááá a to se jako nesmí? Vždyť to fungovalo... dokud nebylo moc dat... no tak přidáme indexy, neee? Na rootu jsem četl, že indexy to zrychlujou... WTF? My jsme špičkoví vývojáři a né ňácí pošahaní databázisti. Buďte rádi, že jsme to spíchli aspoň nějak.
Další oblíbenou fičurou je škálovatelnost... fajn, něco se rozrůst může až za nejbláznivější původní představy, ale co s tím? Joooo přihodíme jádra... aha, on ten výpočet jede jenom v single threadu... no tak rychlejší CPU... no vidíte, už to netrvá hodinu, ale jenom 3/4, měli jste to rozbitý...
A co teprve lahůdky typu totálně zasekanej server a přitom se CPU nudí a paměti je dost... takový wait for interrupt je pěkná svině... A co to je? A proč to je? Máte to rozbitý, nám to na našich testovacích datech (kterých je možná setina oproti ostrým) funguje skvěle.
A nějaký navazující věci? Zálohy? Monitoring? Kontroly konzistence? Heee? Ste spadli z jahody na znak? To nedělá nikdo.
Takže jinak. Profesionální práci si představuji takhle:
Aplikační jádro cca 2GB
Každý připojení si může spustit proces, kterej potřebuje 10-100 mega, průměrně to bývá kolem 30, maximum je při takové a takové operaci
Chcete to pro 50 současných přístupů? 2048+50*30 a doporučujeme přidat 30 procent rezervu na špičky + tolik a tolik pro OS.
Klidně začněte s tím, že bude 10 přístupů, přidat se dá vždycky. Ostatně, jako profesionálové máme v ceně projektu analýzu po 3, 6 a 12 měsících, po které vždy upravíme nastavení, přidáme indexy kde budou třeba a případně dáme další doporučení.
Líbí, nebo nelíbí? A jestli víš o někom, kdo je toho schopnej, tak sem s ním.
Co se týče výběru dodavatelů... jsou prostě věci, kde není moc z čeho vybírat a tam je potřeba se přizpůsobit. Jinak rozházet servery na několik různých virtualizací je dobrej nápad... kromě toho, že se musíš starat o víc systémů, tak chci třeba vědět, jak v případě potřeby přemigruješ bez výpadku virtuálku mezi OpenVZ, LXC, Dockerem, VMW... aha... to asi neklapne...