Miért nem beszéltem a 10 GB-os Expressről?

<puffogás>
Mert nem tudtam róla. Más sem nagyon tudott róla.

A Microsoft számomra az a cég, amelyiknek olyan kiváló fejlesztői vannak, hogy csak na, és olyan marketingesei, hogy ha nem lennének olyan kiválók a fejlesztők, talán be is csuktak volna már. Erre az egyik kirívó példa az SQL 2008 kampány volt. Hányan szenvedtek azzal, hogy hiába volt clusterük, nem tudtak installálni SP-t 10-15 perc leállás nélkül, ami alapjaiban döntötte meg a nagy rendelkezésreállás élményét. Ehhez képest SQL 2008-at lehet node-onként patchelni, egy failovernyi, azaz 25-55 másodperc kieséssel. Ég és föld szerintem – de csak véletlen, egy technikai blogon tudtam ezt meg. Ugyanakkor a tonnányi marketingvacak meg már égette a szememet, ha megnéztem az SQL Server honlapot.

Most az R2-nél valahogy hiányzott az egységes kommunikáció, mint olyan. Különböző emberek különböző dolgokat tudtak, hogy hogy fog kinézni a végleges termék, de pl. a 10 GB-os Express mérethatárt csak a bejelentés napján az SQL Express blogban olvastam először. Az amerikai MVP-k meg azon buktak ki, hogy miért 2008-as feature-öket marketingelnek a 2008 R2 bemutatón, miért nem 2008 R2-eseket.

Sebaj, majd a Denali (SQL Server 11) talán jobb lesz… A nevet Dan Jones hozta nyilvánosságra, tévedésből (azt hitte,hogy publikus), le is szúrták érte, a http://blogs.msdn.com/dtjones/archive/2010/02/14/codename-denali.aspx pedig hamar el is tűnt, de akkorra már késő volt… Az MVP Summiton ki is röhögte mindenki szegényt, amikor az NDA fontosságára hívta fel a figyelmünket az előadása kezdetén. Ő is nevetett, bár nem pont úgy, mint mi.

Megnéznék egy céget, ahol az Apple marketingesei dolgoznak a Microsoft fejlesztőivel. Az nagyot szólna…
</puffogás>

SQL Server User Group avagy kerekasztal kockáknak

Először is BUÉK mindenkinek. Új évre egy nem annyira új gondolattal kezdek: Már régóta foglalkoztat a gondolata egy olyan klubnak/fórumnak, ahol az emberek megoszthatják SQL-hez bármilyen módon kapcsolódó örömüket/bánatukat, tehát nem olyan, mint a Technet fórum, hanem annál tágabb, kötetlenebb, és alkalmanként interaktív eseményeket is tartalmaz (élőt vagy online-t).

  • Tudtátok, hogy ha megnyomom ezt az izét, akkor zenél is az SQL Server?
  • Olyat kell csinálnom, amit szerintem nem tud az SQL Server. Mit csináljak? (avagy ki tud többet nálam a MSSQL-ről vagy az Oracle-ről:)
  • Ti hogyan kezelitek a failed jobokat? És az inkompetens fejlesztőket?
  • írtam egy scriptet, így néz ki. Van jobb?
  • Mindent tudni akarok az indexekről!

Ami az interaktív dolgokat illeti, arra gondoltam, hogy lehet egy téma, amihez mindenki hoz valami előre definiált kis opcionális házi feladatot, aztán megvitatjuk/előadja valaki a legjobb megoldások egyikét. Például általános szerver üzemeltetés – mindenki hoz egy pár dolgot, amit szerinte tök jól csinál, egy párat, amit tök bénán, megbeszéljük, megértük, aztán megnézünk egy lehetséges működő változatot (kiselőadás), aztán megnézzük, hogy hogyan lehet még jobbá tenni az előtte elhangzott és közben felmerült ötletek alapján. Élőben persze ez sokkal jobban működik, ugyanakkor valószínűleg ez nehezítés lenne annak, aki 200 km-re lakik (lehet viszont, hogy megéri).

Mit szeretnék? Egy olyan közösségnek a tagja lenni, amiben az emberek segítik egymást, akár csak annyival, hogy elmondják azt, hogy ők mit hogyan csinálnak – akár azon az áron is, hogy megszervezem :) Én nagyon sokat tanulok mások scriptjeiből, példáiból, még a rosszakból is sokszor, és szerintem van itt elég sok olyan szakember és ember, akikből ezt meg lehetne csinálni. Nemcsak kifejezetten SQL-esekre gondolok, és nem tömeget képzelek magam elé, hanem egy (-két) tucat embert, akik szeretnének jobb szakemberek lenni, és/vagy látni azt, hogy mások hogy csinálják. Kicsit olyan “Technet gyakorlat” jelleget képzelek el, ahol lehet szidni is a Microsoftot (is, meg mást is – nálunk négyféle adatbáziskezelő van), meg nem csak a technológiáról, hanem a szemléletről, módszertanról is lehet beszélni :)

Nagyon kíváncsi vagyok a véleményetekre, gondolataitokra ebben a témában. Kommentezzetek, fikázzatok, javasoljatok.
Köszönöm.

Egy MVP interjú margójára

Utolért a sors, velem is készült MVP interjú a Technet portálon. Kedvenc kérdésem a “Miért pont Microsoft technológiákkal foglalkozol” volt. Bakker, egy olyan csoportot vezetek, ahol az emberek fele rögtön kiütéses lesz, ha meghallja vagy meglátja a Microsoft szót. Szóval ez egy kissé sportszerűtlen kérdés volt, de megragadtam az alkalmat, hogy népszerűsítsem az open source szemléletet. Szeretném leszögezni, nem az ingyenességet támogatom, hanem a nyílt kódot. Tényleg segítség a fejlesztésben (vagy üzemeltetésben), ha nem kell reverse engineerkednem még egy csomót, hogy rájöjjek, hogy miért nem úgy működnek a dolgok, ahogy elvárom. Plusz öröm volna, ha a licensz megengedné a custom buildet is. Jelenleg pl. a .NET Framework kódja már meg lett nyitva, de csak debugra, nem lehet buildelni. Én meg a múltkor azzal szenvedtem, hogy szerettem volna a HttpWebRequest osztálynál Host headert specifikálni, de azt a rendszer automatikusan kitölti a kért URL alapján – ez nekem tök nem volt jó, mert DNS változtatást kellett tesztelnem. A végén Powershellből hívogattam a wget-et, hogy tudjak tesztelni… Na de mind1, az SQL Server akkor is SQL Server, és szeretem :)

Maga az interjú egyébként elolvasható a Techneten.

Üzemeltetés megint…

(ez a post a folytatása az Üzemeltetés belülről címűnek, szintén kevéssé rendezett struktúrával)

Az automatizálás az egyik legfontosabb fegyver az üzemeltető kezében, mivel ahhoz, hogy gép csináljon meg valamit, előbb formalizálnia kell az embernek az elvárásokat, és ha eddig nem tette volna, szisztematikusan végiggondolni. Ezek az automatizálások teremtik meg az időt és energiát a színvonalas, minőségi üzemeltetéshez. Természetesen ez eleinte többletmunkát jelent, de általában lehet apránként haladni, bár mindig érdemes egy átfogó stratégiát építeni: mi mindent kell/lehet automatizálni – lehet, hogy némi körültekintéssel ugyanazt a scriptet több feladatra is alkalmassá tehetjük.

Mindezek mellett/után a másik nagy feladat: kommunikáció. Derítsük ki jó előre, mi fog történni, szóljunk hozzá (konstruktívan), véleményezzünk. Az ideális az, amikor a tervezési fázisban bevonják az üzemeltetést, a struktúrát is már véleményezhetik, javasolhatnak. Erre most sokan azt mondják, hogy nálunk ez sosem működne. Én azt mondom, hogy lehet, hogy így van, de én például most két év után kezdem érezni, hogy megtérül az így befektetett munkám, a fejlesztő megkérdezi, hogy mi volna a leghatékonyabb megoldás szerintünk.

A kommunikáció akkor is fontos, amikor mi (nem) csinálunk valamit, és például szolgáltatáskiesés van. Sokkal jobban érzik magukat az emberek, ha kapnak egy levelet, hogy ez és ez történt/történik, ekkorra lesz megoldva, illetve ezt és ezt tervezzük a jövőben, hogy ne forduljon ez elő még egyszer.

Volt menedzseremnek a két alapkérdése a következő volt: mi történt, mit tehetünk, hogy ez még egyszer ne forduljon elő. Ezt mondenki úgy könyvelte el, mint okoskodó kérdéseket, pedig alapvetően nagyon fontos és jó kérdések minden szolgáltatási problémánál. Ezúton is szeretném megkövetni Gozót, hogy mindenféle érdekes, ámde kevéssé kellemes helyekre kívántam, amikor ezekkel a kérdésekkel közelített az asztalomhoz.

Van, amikor nekünk kell(ene) változást kezdeményeznünk. Például lassú egy alkalmazás, és nyilvánvalóan az alkalmazás hibája (külön téma, hogy ezt mi alapján mondod meg biztosan), és valamit kellene tenni ellene. Néha az embernek bele kell nyúlnia az alkalmazásba – nekem például kényszerem van az SQL kódok piszkálására. Az ilyen változtatásokat végig kell nyomni az egész telepítési láncon utána: élesen és az összes teszten, beleértve a fejlesztő saját környezetét. Lehet, hogy neki nincs teljesítményproblémája a kétfelhasználós rendszerben, de ha módosít a lekérdezésen, és mi felülcsapjuk az optimalizált kódot az övével, akkor nekünk lesz.

Az üzemeltetés által kezdeményezett módosítás másik esete az infrastruktúra patch/upgrade. Ezzel sokszor nem foglalkozunk, pedig ez olyan, mint a fogorvos: előbb-utóbb meg kell tenni, és ritkán lesz jobb attól, hogy halogattuk. Nem azt mondom, hogy mindig upgrade-eljünk, hanem, hogy ezt ne hanyagoljuk el. A munkahelyemen például valószínűleg ki fogjuk hagyni az SQL 2008-at mint globál platformot, és SQL 2010/11 lesz majd a következő teljes váltás, de addig a SQL 2005-öt patcheljük rendesen. Az infrastruktúra projektek szoktak kimaradni a keretből a leggyakrabban, mert az üzleti projektek sokkal fontosabbak. Legyünk ügyesek: csomagoljuk be az ilyeneket “ez most tulajdonképpen neked lesz jó” papírba: a jövőben az üzlet sokkal csicsásabb alkalmazásokat készíttethet, sokkal megbízhatóbb lesz az egész, sokkal több levelet küldhet és fogadhat, sokkal egyszerűbb lesz az élete. Mellesleg a miénk is, de ez tényleg csak egy mellékhatás.

És minden változtatáshoz a legfontosabb: tesztelni, tesztelni, tesztelni. Teszteld, hogy fel lehet-e telepíteni, le lehet-e venni, hogyan reagál arra, ha valami komponens/paraméter hiányzik (ez hülyeségnek tűnik addig, amíg egyszer nem találkozol azzal, hogy a távoli webservice elérhetetlenségét konfigurációs hiba történt hibaüzenettel közli egy alkalmazás). A megfelelő tesztelés a megfelelő tesztkörnyezettel kezdődik: ha gagyi a tesztkörnyezet, a tesztelés megbízhatósága sem lesz különb. Minél inkább hasonlítson a teszt az élesre. Lényegtelennek tűnő részletek nagyon is tudnak számítani, pl. szoftververziók – SQL 2000 SP3 vagy SP4 vagy post-SP4? 64 vagy 32 bites oprencer/szoftver? A komponensek ugyanazon a gépen vannak-e vagy úgy szétszórva, mint az éles környezetben? Milyen joga van a futtató accountnak? És még sok más hasonló kérdés van, amire figyelnünk kell. Ja, és ráadásul utána karban is kell tartanunk a tesztkörnyezetet…

Talán mégis van fontosabb, mint a tesztelés: a tervezés. Tervezzük meg a munkát, elejétől a végéig, gondoljuk végig, hogy mit hogyan csinálunk majd, mi mindenhez nyúlunk. Én egy elektronikus papír fölött gondolatban végigcsinálom a munkát, és leírom, hogy mi mindent kell tenni. Aztán másnap megint végiggondolom, és beírom azt, ami kimaradt. A teszt jó támpont, de sok dolog nem úgy van a tesztrendszerben, például nem okozunk szolgáltatáskiesést, és nem kell kommunikálni az üzleti arcokkal. Aztán megkérem a többieket, hogy nézzék meg – mindig van jó hozzászólás. Vagy ők jók, vagy én vagyok béna. Szerintem ők nagyon jók.

Hát ennyi. Most kijött belőlem a nagyja annak, ami már régóta kikívánkozott, de azért még van 1-2 gondolat a fejemben.

Üzemeltetés belülről

(Ez a post afféle “írok ki a fejemből mindenfélét” jellegű lesz.)

Az üzemeltetés külön állatfajta az informatikán belül, már ha komolyan csinálják. Senkit nem akarok megsérteni, de az üzemeltetés szerintem ott kezdődik, hogy létezik az üzembiztonság, tehát a “van pár szerverünk, amit én frissítek, meg indítok újra, ha kell, meg adminisztrálok” szerintem nem üzemeltetés, amíg nincs BIZONYÍTOTTAN HASZNÁLHATÓ, RENDSZERES mentés a szerverről, és valamiféle monitorozás. Bizonyítottan használható az, hogy csak a mentés segítségével fel tudok állítani egy új rendszert, ami használható a régi helyett, legalább a fő funkciók tekintetében (ezt majd egyszer kifejtem külön). Ha még ennél is picit feljebb akarom tenni a lécet, akkor azt mondom, hogy ha valamit csinálok, akkor tudom, hogy hogyan tudok visszajutni a kiindulási állapotba (az a bizonyos rollback nem véletlenül szerepel a lap tetején nagy betűkkel). Ez természetesen időnként úgy hangzik, hogy “fogom a backupot a, és visszatöltök mindent nulláról” – lehet ez is egy jó válasz, de ha mindig ez a válasz, az elég gyanús… Continue reading ‘Üzemeltetés belülről’ »