Nette aplikace v cloudu, jak na snažší aktualizace a nové instance?
- hancs
- Člen | 57
Ahoj všem,
mám vytvořený ERP systém na řízení firem v nette a mám následující problém. Jelikož jsem to na začátku asi špatně dekomponoval, tak mám aplikaci napsanou tak, že každá firma má vlastní zdrojáky appky v doménové složce na hostingu a vlastní MySQL databázi. To funguje samo o sobě dobře, problém ale nastává při instalaci dalších instancí. Musím totiž pokaždé vytvořit novou subdoménu, nahrát na server zdrojáky, vytvořit config.local a databázi. O aktualizaci ani nemluvím, to je doslova očistec. Sice mám různé scripty na updaty ale stejně je to časově moc náročné.
Potřeboval bych nejlépe udržovat jen jedny zdrojové kódy a každá firma by měla jen vlastní DB, config file, (temp složku?), složku pro data. Je to vůbec možné? Máte někdo zkušenosti s takovým přístupem? Chtěl bych si totiž napsat script, který mi automaticky tyto kroky udělá(subdomena, DB, config) Přemýšlel jsem například o AWS a jeho API, jestli by to nešlo takhle řešit. Bohužel najít co bych motřeboval mezi tunou služeb co nabízí AWS asi nezvládnu, proto mi zajímá co by jste mi doporučili.
Předem děkuji všem za jakoukoliv radu, nebo odkaz.
- David Matějka
- Moderator | 6445
na to nepotřebuješ AWS ani žádný složitý věci. Přes DNS wildcard cname nasměruješ všechny subdomény na jeden server, stejně tak http server nasměruješ na jednu aplikaci, config nette ti teoreticky taky stačí jen jeden, jen dle subdomény vybereš správnou databázi (takže potřebuješ dynamickou factory na connection), údaje k db můžeš mít třeba uložený v nějaký oddělený databázi, kde bude seznam klientů s jejich konfigurací.
Jediná složitější věc je ta databáze, kterou budeš muset zakládat a migrovat pro všechny samostatně.
- hancs
- Člen | 57
David Matějka napsal(a):
na to nepotřebuješ AWS ani žádný složitý věci. Přes DNS wildcard cname nasměruješ všechny subdomény na jeden server, stejně tak http server nasměruješ na jednu aplikaci, config nette ti teoreticky taky stačí jen jeden, jen dle subdomény vybereš správnou databázi (takže potřebuješ dynamickou factory na connection), údaje k db můžeš mít třeba uložený v nějaký oddělený databázi, kde bude seznam klientů s jejich konfigurací.
Jediná složitější věc je ta databáze, kterou budeš muset zakládat a migrovat pro všechny samostatně.
Díky moc za rady,
tohle vypadá dobře. Takže bych udělal globální databázi a tam uchovával, všechny parametry co jsem měl v config.local? A ty složky pro data uživatelů a cache bys řešil třeba nějakou složitější adresářovou strukturou? Teď mám u každé app složku uploads, kde jsou všechny nahrané soubory. Tak bych to asi mohl ještě zanořit do složek např. podle subdomeny. Ale co ty cache?
Ty DB by asi šli vytvářet pokud bych je hostoval někde, kde je lze vytvářet přes API. Mám totiž ještě node.js appku na správu těch nette aplikací, ta by teoreticky mohla zakládat ty databáze a přidávat nastavení pro domény do globální databáze.
- David Matějka
- Moderator | 6445
Takže bych udělal globální databázi a tam uchovával, všechny parametry co jsem měl v config.local?
jj, tak nejak – ale nemusis tam mit vsechny parametry. dalsi nastaveni toho konkretniho klienta muze byt v jeho databazi. musi tam byt tedy hlavne pristupove udaje k dalsi db (idealne je tam mit nejak zasifrovane nejakym globalnim aplikacnim klicem)
A ty složky pro data uživatelů a cache bys řešil třeba nějakou složitější adresářovou strukturou?
jj, treba tak. v uploads by byla vzdy podslozka pro jednoho klienta
Ale co ty cache?
tak nette cache mohou byt sdilene.
pokud mas nejaky vlastni cache, tak bys potreboval zajistit, aby neleakovaly mezi klientama – tedy soucasti klice bude vzdy nazev/id klienta.
Ale muzes je samozrejme zcela oddelit – to zalezi na cache storage, co pouzivas..
Ty DB by asi šli vytvářet pokud bych je hostoval někde, kde je lze vytvářet přes API. Mám totiž ještě node.js appku na správu těch nette aplikací, ta by teoreticky mohla zakládat ty databáze a přidávat nastavení pro domény do globální databáze.
jj, to je idealni