Wednesday, August 30, 2006

Monitoring server

Server for monitoring IT services is crucial for effective management of IT infrastructure and to guarantee SLA. Two years ago we developed something like that and in the end it was realy usefull piece of software. ZABBIX is very interesting open-source project for network and service monitoring. For further information check out http://www.zabbix.com

Sunday, August 20, 2006

Fedora Core 5 on USB hard disk

I have DELL notebook Latitude D610 with preinstaled company standard image. We have lot of restrictions and security constraints in this image. It's absolutly correct from security and company's point of view. But because I'm working as solution/system consultant I have to test a lot of systems, softwares and solutions to have a practical experiences with latest technologies. So I had two possibilities. To buy another hardware for testing or use a company notebook with another hard disk and another OS. Second posibility is chiper and more convinient for me. You can pretty easy demount internal HDD from DELL Latitude 610 but it's not so professional. Much better way is to use external USB hard disk and during the boot press F12 key and choose a boot device. Because we are suggesting virtualization tou our customers I decide to install linux and VMWare. I choosed linux distro Fedora Core 5 (FC5) as hosted OS. There are some hacks haw to install FC5 to external USB disk. First of all you have to choose different type of installation method from DVD/CD medium. You have to use option "linux expert" which is not sugested in instalation wizard. Only "linux expert" and "linux rescue" are loading USB modules so it's working with external USB disk. After common CD/DVD installation you have to reboot. But after reboot system is not booting propperly from external hard disk. You can see "kernel panic" on the screen. The reason is that generic instalation doesn't contain USB modul. There is work-arround. You have to boot from CD/DVD to rescue mode (linux rescue). Installed system is mounted to /mnt/sysimage/. You have to mount boot image by command
mount /dev/sda1 /mnt/sysimage/boot
set a chroot directory
chroot /mnt/sysimage
and create new initrd image with modules for USB storage
mkinitrd ––preload=ehci–hcd ––preload=usb–storage ––preload=scsi_mod ––preload=sd_mod /boot/initrd-2.6.15-1.2054_FC5.img
2.6.15-1.2054_FC5

This work-arround change booting image to new boot image with USB disk support and after reboot Linux OS should boot from external USB hard disk without any problem.

VMWare instalation to be continued ...

Wednesday, July 19, 2006

Business proceses and Workflow Software - Part II.

Continued from part I. ... We found (with my collegue Juraj) much more enterprise software suits for BPM. It looks that BPM is trendy and lot of vendors try to catch market share. You can find these vendors in Gartner Magic Quadrant: Tibco Software, Lombardi, Savvion, Pegasystems, Fuego, IBM, and others. After our "hot" discussion about the best tool to use for workflow application we decide to use OpenSource JBoss engine jBPM and develop other components in-house in SUN Java Studio Creator which looks like pretty interesting RAD (Rapid Application Development) tool for web based applications. The reason of this decision is that we have programmers background and it looks like best way for us. It's not a common way of course :) I will write later about our experiences.

Sunday, June 25, 2006

DELL & JBoss Partnership


Do you known that DELL and JBoss have a partnership? See at http://www.jboss.com/partners/dell and http://www.dell.com/jboss

Marc Fleury's (JBoss Founder, Chairman and CEO) published at his blog a really funny and absolutly typical DELL story because this is the way how DELL is working. DELL is always waiting until particular technology is standards based, commoditized, with business perspective and without potential business, TCO, and ROI impact. Read more at Marc Fleury blog http://jboss.org/jbossBlog/blog/mfleury/2005/08/24/DELL_I_love_Systems.txt

Business proceses and Workflow Software

I believe to process-driven business to be successfull in long term perspective. The main key are right designed core and supported business proceses. When proceses exists you have to follow up them. There isn't big issue to design BPs but you need some tool for be sure and have a full control if everything is going on the right way. So you need some workflow software. The basic idea of workflow is not so complicated. From mathematical point of view it's just oriented graph. I have two main requirements for this software tool. Firstly, it must be good in worflow design (easy import already designed or refactored BPs). Secondly, system must be open for integration with other systems like mail and messaging systems, document management systems, and so on. I found two interesting product JBoss (http://www.jboss.com) nad WokflowGen (http://www.workflowgen.com). I want to spent some time to study and practicly check what benefits these solutions giving us. I personally prefer open source solutions with comercial support so JBoss have small advantage. I'll write full conclusion later.

Saturday, June 24, 2006

DELL | EMC storage products


I have just passed all EMC eLearning tests which are necessary to get EMC sales certification. Since 15 May till 20 May I was in EMC New Hire Trainig in Cork, Ireland to get first overview of DELL | EMC storage products. I was really impressed what is possible to do with inteligent disk arrays. The true is that products are pretty expensive for small busines but on the other hand the functionality is incredible and SMB or enterprise customers who knows what is the value of information can benefit from this technology. I really like functions like snaps, clones, and synchronous/asynchronous mirrors. And what disk space you can use in those arrays? Depends on model. For price sensitive customers there are models DELL | EMC AX 150/AX 150i with up to 12 SATA drives which means 6TB of raw capacity if you use 500GB disk. Difference between AX 150 and AX 150i is connectivity. AX150 have fiber channel ports and AX150i have ethernet ports and works as iSCSI tagets. Enterprise model CX300 is a member of previous generation but it's still available and can handle up to 60 Fiber Channel (FC) disks. New geeneration models CX3-20, CX3-40, CX3-80 can mix up FC disks and Low Cost Fiber Channel (LC-FC) disks. CX3-20 support up to 140 disks, CX-40 up to 280 disks, and CX-80 up to 480 disks. Imagine that today you can buy 300GB FC and 500GB LC-FC disks. You can calculate usable disk space by your self. The main message is that with such products is server and storage consolidations significantly easier. Better days for administrators are comming.

Moderní software

Ono se řekne fungující aplikace, ale dnešní aplikace, nebo lépe řečeno softwarové systémy, už nejsou tak jednoduché jako v dobách jednouživatelských aplikací v DOSu. Dnes chceme softwarové systémy, které umějí zpracovat velmi mnoho transakcí za sekundu, pracují s nimi stovky nebo ještě lépe tisíce uživatelů, jsou vícevrstvé, integrované z více vzájemně propojených subsystémů těmi nejlepšími integračními nástroji, tím jsou i škálovatelné a robustní. O těchto termínech už jste možná slyšeli, ale kdo se v tom má nakonec vyznat? To aby jste k provozu takovéhoto systému měli tým odborníků. Koho že to vlastně potřebujete? Softwarového architekta, analytika, vývojáře, administrátora operačního systému, databázového administrátora a sítového administrátora. Skvěle, ale to už máte takové měsíční náklady, že to musí být opravdu výtečný obchodní plán, který pokreje režii všech těchto lidí a ještě Vám něco zbyde. Ale i kdyby nakrásně jste takový tým měli, je schopný tento tým rychle a kvalitně odhalit veškeré problémy s provozem systému? Na jednom konkrétním případě se pokusím ukázat, že odhalení nefunkčnosti softwarového systému nemusí být až tak triviální. Pro jednoho zákazníka již léta vyvíjíme a provozujeme online rezervační systém letenek. Systém je rozdělen do několika vzájemně komunikujících vrstev. Vrstva (říkejme jí vrstva 1), která je nejblíže zákazníkovi je klasický webový systém, který pomocí objektově orientovaných technik (dědičnosti), rozšiřuje jednodušší webovou vrstvou (říkejme jí vrstva 2), jenž obsahuje veškerou funkčnost logiky uživatelského rozhraní, ale neobsahuje všechny uživatelské vlastnosti, specifický design, texty a další customizace, které implementuje až vrstva 1. Toto je velmi vhodné hlavně proto, že existuje velké množství customizovaných webů, které fungují nad stejným základem. Obě tyto vrstvy zajišťují pouze grafické uživatelské rozhraní a vlastní rezervační logika je na straně aplikačního serveru (vrstva 3), se kterým vrstva 2 komunikuje pomocí XML přes TCP/IP protokol. Vrstva 3 simuluje práci živého cestovního operátora a snaží se najít v mezinárodním rezervačním systému AMADEUS optimální letecké spoje podle požadavků internetového uživatele. Vrstva 3 tedy komunikuje se systémem AMADEUS pomocí speciálních API funkcí systému AMADEUS přes TCP/IP. Vrstva 3 si však musí pamatovat určité informace a k tomu používá databázový server, se kterým také komunikuje po síti přes protokol TCP/IP. Uznejte, že o tomuto systému už rozhodně nelze mluvit jako o jednoduchém softwarovém systému. Když se na celý systém podíváme s pohledu hardwaru, pak jsou použity minimálně 3 servery. Webový server pro vrstvy 1 a 2, aplikační server pro vrstvu 3 a databázový server.Všechny tyto servery musí být propojeny sítí. A to nemluvíme o serverech systému AMADEUS, které jsou umístěny na druhé straně zeměkoule, ani o případných dalších serverech pro rozdělení zátěže, zálohování, automatické mailování informací o rezervacích, serverech DNS, apod. Celý popis tohoto "poměrně jednoduchého" systému jsem však sepsal proto, abych ukázal, jak není vůbec lehké najít příčinu najednou se objevící závady. Celý systém softwarově vyvíjíme a upravujeme zhruba 5 let a provoz zajišťovala třetí firma, se kterou majitel systému spolupracoval. Asi před rokem se majitel po delší nespokojenosti rozhodl ukončit spolupráci s třetí firmou a požádal nás i o provoz systému. Ten kdo po někom někdy přebíral nějaký informační systém určitě ví, že to rozhodně nění procházka růžovým sadem. Pro nás, jako vývojáře systému to bylo o dost jednodušší, neboť jsme celému systému jako takovému rozuměli, ale i tak se za dobu provozu udělalo na produkčních serverech několik "vylepšení", o kterých nikdo nic moc nevěděl. Naštěstí se povedlo domluvit s bývalým provozovatelem systému, že dojde k postupnému předání serverů a k dodatečné dokumentaci všech "vylepšení". Nebudu zastírat, že postupný převod serverů probíhá již 9 měsíců, ale jelikož systém funguje, tak nebylo zase až tak kam spěchat. Přesun probíhal a probíhá tak, že se vždy připraví nový hardware a vše se úplně znovu nainstaluje. Zároveň se provede upgrade hardwaru, operačního systému i potřebných knihoven. Nicméně již se pomalu dostáváme k pointě celého článku. Jednoho dne systém vypadal tak, že webové servery i aplikační server byly v servrovně bývalého provozovatele a databázový server již byl úspěšně přesunut do naší servrovny. V takovémto stavu systém úspěšně fungoval několik týdnů. V tom volal zákazník a stěžoval si na občasnou nefunkčnost webového rezervačního systému. Po další diagnostice se ukázalo, že systém se občas jeví jako funkční, občas pomalý a občas nefunkční. Po prostudování logů bylo jasné, že problém je mezi aplikačním (vrstva 3) a databázovým serverem. V logu aplikačního serveru se objevovali hlášky o neúspěšných připojeních do databáze. Začal jsem hledat co se v posledních hodinách a dnech se systémem dělo. Den před incidentem jsme nasazovali novější verzi aplikačního serveru. Změny však nebyly nijak velké a rozhodně by neměly mít vliv na spojení do databáze. Nicméně jsme pro jistotu nasadil starší verzi aplikačního serveru. To však nepomohlo. Zaměřil jsem se tedy na prověření funkčnosti databáze. V logu databáze byly záznamy o mnoha neúspěšných pokusech o připojení aplikačního serveru. Po mnoha neúspěšných pokusech databázový server úplně zablokoval možnost připojení z problematického místa. Zaměřil jsem se tedy na zkoumání konfigurace datábáze. Pokusil jsem se zvětšit maximální počet připojených klientů, zvětšit timeout pro připojení klientů a podobné konfigurační parametry. Na problému už jsem celkově trávil asi dvě hodiny a nic z toho nevedlo ke zlepšení situace. V tu chvíli jsem si vzpomněl na týden staré mailové upozornění od našeho ISP, u kterého máme pronajatý rack v servrovně, že budou mít 5ti minutový výpadek v 5:00 hodin ráno. Okamžitě jsem se podíval do mailů a zjistil, že opravdu ten den výpadku byl dnes. Navíc to přesně souhlasilo s časem, kdy se objevily v logu aplikačního serveru první problémy s připojením do databáze. Tomuto mailu jsme sice před týdnem věnovali patřičnou pozornost, ale naše systémy se s podobným výpadkem běžně umí bez problému vypořádat. Navíc náš centrální monitoring systém nehlásil žádný problém. Už asi tušíte, že jelikož byl aplikační server v jiné servorvně než server databázový (u různých ISP), tak to vypadalo na problém síťový. Okamžitě jsem provedl trošku masivnější ping y aplikačního serveru na databázový a objevila se ztrátovost paketů kolem 10ti procent. V tu chvíli bylo jasno a pomocí utilit traceroute a ping bylo otázkou vteřin identifikovat kde je přesně problém. Problém byl samozřejmě mezi routerem v naší servrovně a switchem našeho ISP. Takovéto problémy má na svědomí v 99% špatně nastavený duplex na síťových rozhraních. Na našem rozhraní byla nastavena autodetekce zdetekovaná na 10Mbps half-duplex a po telefonátu s ISP nám bylo řečeno, že u nich je nastaven 10Mbps full-duplex. Přenastavil jsem tedy nastavení našeho rozhraní na 10Mpbs full-duplex a ztrátovost byla vyřešena. Jako mávnutím kouzelného proutku byl vyřešen i problém s celým softwarovým systémem. V tu chvíli jsem si utřel pot z čela a začal celou situaci hodnotit. Problém zavinil ISP tím, že neuložil na jeho switchi konfiguraci, kterou jsme si před několika měsíci domluvili (auto-negotiation na portu). Po výpadku proudu se samozřejmě nahrálo předchozí nastavení switche. Mám štěstí, že jsem ještě z generace IT lidí, kteří mají široký záběr a všechny popsané postupy si umím zajistit sám. Nedovedu si představit, že by podobný problém řešil administrátor OS, administrátor databáze, programátor aplikačního serveru a nakonec by stejně museli zavolat síťaře. Ať žijí jednoduché systémy! Chce se mi křičet "KDO TOMU VŠEMU MÁ ROZUMĚT!". Nicméně s tím se prostě budeme muset smířit a všichni z IT se neustále vzdělávat, aby jsme byli schopni co nejdříve identifikovat opravdové příčiny problémů. Nejhorší je se dostat do stavu, kdy nevíte čím to může být a říkat sobě i druhým, "JO, TO JE HOLT NĚCO MEZI NEBEM A ZEMÍ".

Dell, jak ho možná neznáte

Můj nový zaměstnavatel bude od 15.5.2006 firma Dell. Dell je znám jako dodavatel hardware. Svojí stabilitou a kvalitou jsou proslaveny Dell servery, desktopy, notebooky, PDA, apod. Již méně je Dell znám jako dodavatel řešení. Dell má však speciální divizi - Dell Professional Services (DPS) - která poskytuje služby v oblastech jako jsou velké sítě SAN (storage area network), HPC (high-performance computing), HA (High Available Computing), serverová a datová konsolidace, monitoring infrastruktury, služby v oblastech jako jsou Microsoft Exchange, SAP, Oracle, Linux apod. DPS je divize s celosvětovou působností, a proto má DELL v každé BU (busines unit) lokální divize, zaměřené na výše uvedené komplexní služby. Tato skupina, která se dříve jmenovala "ASG - Advanced System Group" se nyní jmenuje "Solutions". Právě do divize Solutions nastupuji jako Solution/System Consultant.

Update: Po nástupu do DELLu jsem zjistil, že ASG/Solutions je oddělení technického pre-salesu a nikoliv DPS - Dell Professional Services. Divize DPS v ČR v té době ani nebyla. Technický presales pro mne nebyl zase až tak něco nového, jelikož jsem ve své firmě musel rovněž umět prodat naše technická řešení, ale pojetí presalesu nadnárodní firmy bylo rozhodně jiné. Musím uznat, že mě to docela i bavilo. Nicméně asi po dvou letech se DPS v ČR zrodila a já mohl přejít od presales aktivit k designu a implementacím reálných projektů u zákazníků. 

Profesní milník

Právě dnes (8.4.2006), vlastně již včera, jsem obdržel finální nabídku od jedné velké nadnárodní IT firmy na pozici solution konzultanta. Job description zní velmi zajímavě a finanční podmínky solečně s dalšími benefity jsou více než příjemné. Rozhodl jsem se proto pověsit vlastni IT startup po pěti letech na hřebíček a chvilku si odpočinout (myšleno s nadsázkou) v korporátní sféře. V IT startupu zaměřeném na internetová a intranetová řešení založená na open source produktech jsme udělali celkem zajímavé a úspěšné projekty. Poslední dobou však platební morálka klientů, permanentní stres, neustálé hledání kvalitních lidí do týmu a hlavně nejednotná firemní vize a strategie, na které jsme se nebyli schopni dohodnout s druhým spolumajitelem firmy mne přimněli k tomuto kroku. Věřím, že tímto krokem budu mít více volného času na vlastní zájmy a případně i na open source projekty, které mi připadají zajímavé. Chtěl bych se případně věnovat třem projektům, o kterých snad budu informovat i na tomto blogu. Jedná se o projekt embedded OS pro routery www.wibsd.cz, o projekt PHP frameworku pro webové aplikace a případně o projekt digitální knihovny (software pro archivaci digitálních objektů). Navíc mne oslovil ještě jeden velmi dobrý kamarád, který by chtěl nastartovat ještě jeden úplně jiný projekt. Takže uvidíme jak to bude s časem, kterého rozhodně není mnoho, ale už teď je zřejmé, že bude potřeba stanovit priority, protože věnovat se všemu prostě a jednoduše nelze. Člověk má kromě profesního života také nějaký soukromý život, na který nelze zapomínat.

Bloguju, blogujes, blogujeme ...

Již delší dobu čtu v různých časopisech a webech, že psát blogy je in. Ono se řekne psát blogy! Začít je celkem jednoduché, ale pravidelně o něčem psát, a ještě aby to mělo hlavu a patu, to už tak jednoduché nebude. A o čem, že bych to chtěl vůbec psát? Bude to, jak jinak, hlavně o IT, které je již dlouhá léta a dalo by se říct i desetiletí mým koníčkem i povoláním. Takže uvidíme jak to s tím blogem nakonec dopadne.