Ehm ... muze to fungovat jako ty windows, ktere vas prihlasi do docasneho profilu (protoze ten vas se z neznameho duvodu nepodarilo nacist) a vsechny vase pripadne zmeny po odhlaseni .... proste smazou. Takovy ERP by jiste kupovali nadsene zakaznici po celem svete ;D.
Apropos, aplikacni sever a databaze se oddeluji jednak kvuli vykonu, a pak take kvuli tomu, ze aplikacni server muze komunikovat s nekolika servery databazovymi, stejne jako i tech aplikacnich serveru muzete mit nekolik. Ovsem v prostredi MS rozhodne zadnym zpusobem nic z toho neudelate bez toho, aby to prislusna aplikace na vsech urovnich umela. Jinak receno, vas system musi byt naprogramovan tak, ze neco takoveho umozni. V opacnem pripade si drive nebo pozdeji nabehnete na nejakou obzvlaste vypecenou chybu, ktera muze pachat skody i mesice, nez se projevi. MS cluster totiz neni transparentni, chova se jinak nez samostatny server.
Zažil jsem několik systémů a architektur. Včetně ERP kde aplikační server byl napsaný v PL/SQL. A nějak nerozumím tomu, jak tohle souvisí s "buď všechno jede a nebo všechno spadne"?
To je tak nějak totiž obvyklé - když spadne databáze, tak teoreticky aplikační server může simulovat, jako že něco dělá, ale když ta data neuloží tak je to asi zbytečné. No a když umře aplikační server tak je taky tak nějak obecně po všem a že databáze jede vesele dál nemá vliv ani na funkci rostlináře. Nebo vás napadá něco užitečného, co by se mohlo stát po "skladník naskenuje čárový kód" i v situaci, kdy neběží databáze nebo neběží aplikační server?
Podle mého názoru tudíž vůbec nezáleží na tom, že je business logika v tisících uložených procedur přímo v databázi. Tam má tak maximálně smysl bavit se o tom, zda je důvod, aby to byl systém jeden, nebo má smysl to rozdělit na více nezávislých systémů, které si boudou jen asynchronně povídat. Mít aplikační server oddělený od databáze výhoda není, protože věci fungují beztak jen pokud jede oboje. Když byť jeden z těch serverů spadne, tak stejně nejede nic.
U Alzy je hlavní problém v tom, že jejich produkt je monolit, který používá MS SQL jako hlavní komponentu.
Všechna business logika je v tisících uložených procedur a to až do úrovně: skladník naskenuje čárový kód -> spouští se procedura v MS SQL
Buď všechno jede anebo všechno spadne. Nic mezi.
Operační systém ani databázi od Microsoftu na kritické věci nepoužívat
tolik veci na tom bezi, ze jakykoli komentar k tomu by defacto popiral realitu... ale musi se to umet - jako nakonec vse... zatim jsem tohle vzdy slysel od lidi, kterych jsem si profesne nevazil a zase naopak je vice lidi, kteri zvolili konkurenci a presto si jich vazim
K tomu bodu 1 bych dodal, že starat se o black box na produkci je vždycky o hubu. Asi tak, jako když v nejmenované atomové elektrárně neřekli operátorům, že na konci regulačních tyčí je palivo a jak blbě se to díky tomu chová při nízkým výkonu... Spolu s pár dalšíma "drobnostma" z toho pak byl opravdu velký průšvih.
Poučení z krizového vývoje:
1. Operační systém ani databázi od Microsoftu na kritické věci nepoužívat
2. Admini s programátory spolu musí lépe komunikovat
3. Testovat se má na prostředí co nejpodobnějším produkci a mají se tam provádět i výkonnostní testy
Bod jedna mi přijde naprosto zjevný. Snad bych to pochopil u nějakého miniprojektu, ze kterého se postupně vyvine velká firma. (I proto je dobré trochu přemýšlet už při návrhu miniprojektů, i když windowsovému klikači se to bude jevit jako overkill.) Bod dva je věčný problém ve spoustě firem. Tam, kde to nefunguje samo by to měl vynutit šéf. Bod tři je samozřejmě práce navíc a stojí to prachy. Na druhou stranu se tím opravdu předejde nepříjemným překvapením.