Дек. 142006
 

Тези, които ме познават от близо знаят, че житейската ми философия е „Бъди усмихнат!”.
Винаги се опитвам да бъда хубав човек. И вярвам, че „на хубавите хора им се случват хубави неща”. В общи линии майка ми ме е възпитала така, но и съм имал много късмет за да повярвам, че това е истина.
За това във всичко търся добрата страна. Позитивното. И наистина вярвам, че работи. Може би е въпрос на вътрешна нагласа. Може би сега просто съм в момент на възход на късмета. Но наистина го вярвам, от години.
Днес с изненада открих, че това дори е научно доказано. Много се зарадвах на този сайт. Alexander Kjerulf е първият човек, който съм намерил, който вярва в позитивизма като оръжие поне колкото мен. Даже и пари прави от това.
Евала!

 Posted by at 18:50
Дек. 132006
 

Хубав месец е Декември. Много празници, подаръци, коледно настроение… и, естествено, месец за равносметка. Този месец започват едни ретроспекции, едни класации за най-……. на годината, едно обобщаване… Ами защо не?
Лично за мен тази година беше много… много пълна година. Емоционално. Ако мога сега да се върна и да си напиша късметчето за баницата, което съм изтеглил на новогодишната трапеза, то трябва да е нещо от сорта:

нова работа; нов град; екскурзия в чужбина; нова кола; нова любов

(естествено, не в този ред)
Ммм… Никога не бих повярвал на такова късметче. Просто няма начин толкова много и толкова хубави неща да се случат в рамките на една мъничка годинка. Ох! Ами другата година какво ли ми се пише?
Понякога имам чувството, че съм събрал всичкия късмет на света. И се замислям до кога ли ще е така. Ама… то това не зависи от мен. По-точно, до колкото зависи от мен, ще се опитвам цял живот да съм късметлия. Пък да видим до къде ще го докарам.
А на теб какво късметче ти се е паднало от миналогодишната баница?

 Posted by at 11:07
Дек. 122006
 

През 1973 Артър Кларк формулира третия си закон, който гласи

Any sufficiently advanced technology is indistinguishable from magic

Поствам го без превод, за да не изгубя някоя тънка подробност от смисъла му.
Напълно съм съгласен с него. Нямам дефиниция за „магия”, но то в общият смисъл е нещо, което
– не разбираш (но това не ти пречи да го използваш)
– „обикновенният човек“ не може да го направи (правят го „магьосници”)
– върши страхотна работа, която по друг начин или не може да се свърши, или би отнела страшно много ресурси

Във втората точка от дефиницията е моят повод за гордост. Защото може да се изведе следствието

Всеки, който се занимава (си вади хляба) с достатъчно напреднала технология е неотличим от магьосник

Това май означава, че аз съм магьосник 🙂
И се събираме с другите магьосници на нашите сборища (два пъти годишно), или се срещаме случайно на купона за студентския празник и си говорим открито за нашите тайни, защото никой не може да ни разбере.
А някои от заявките към базите са си направо заклинания…
Колкото повече мисля, толкова повече паралели откривам. Само дето сървърите не се варят в голям казан.

 Posted by at 15:03
Дек. 112006
 

Тази статия е написана на база на опита ми като Database Expert. Въпреки това съм уверен, че същите думи могат да се кажат и за системен администратор, мрежов администратор и всеки друг, чиято работа изисква превенция и отстраняване на компютърни проблеми.

Замисляли ли сте се някога кое е най-ценното качество на един DBA (или database expert, в по-широкият случай)? Дали това е познаването на SQL, езика за работа с данните? Дали е познаването на database engine, идеологията и механизмите, зададени в него? Дали е познаването на приложението? Организираност? Отговорност?

Всички тези неща са важни. Но най-ценно е умението да се отстраняват проблеми. Troubleshooting. Това е ценната способност да се вземат правилни решения и да се търсят правилни варианти в заплетени ситуации. Това е качеството, по което се различава добрият database expert. Качеството, което се цени най-много (от добрите мениджъри ;-)). Качеството, което стои между работещата и неработещата БД.

За съжаление, няма книги и уроци по troubleshooting. Това е начин на мислене, модел на поведение на съзнанието, който се вижда най-добре в моменти на силно напрежение. Ситуация, в която критична система е заплашена от тотален срив, бизнеса е поставен на колене, мениджмънта е на главата ти а ти продължаваш да се чудиш защо, мътните го взели, не иска да се вдигне базата или как да подкараш проклетото приложение така, че дори и по коледа продажбите да вървят.

Може би всичко зависи от човека. Но за мен добрият troubleshooter има набор от няколко оръжия, които се припокриват:

– тънък баланс между внимателно обмисляне и бързи решения. Когато положението стане напечено, няма време за задълбочено проучване на документация или измисляне на стратегия за справяне с проблема. Системата трябва да се върне в работно положение ASAP. Но, от друга страна, не веднъж съм виждал случаи, в които при възникване дори на малък проблем започват да се прилагат светкавични решения, които не са добре обмислени. И проблема става по-дълбок и по-дълбок и всичко отива на зле.
Има една тънка граница. Понякога мислиш и мислиш решения, какво ще стане сега, ами ако направя еди-какво-си – какво ще последва, ами после какво ще правим… Трябва в един момент да си кажеш „до тук с мислите, действам”. Не преди да си обмислил внимателно ситуацията, но не и твърде късно. Усета за тази граница е голямо оръжие в ръцете на добрия troubleshooter.

– без паника! Това се научава много трудно, а е толкова важно… Някои хора, когато са подложени на напрежение, просто изключват и почват да вършат глупост след глупост. Това много рядко помага за решаване на проблема. Обикновено го задълбочава (съответно задълбочава и паниката). Погледнато отстрани това се вижда много ясно. Но в момент на напрежение съзнанието преминава в едно особено състояние, характерно със склонност към отчаяние и необмислени постъпки. Добрият troubleshooter трябва да издържа на огромно външно напрежение и да запазва разума си. Да продължава да прави това, което трябва да прави: да мисли.

– запазване както на вътрешно спокойствие и самоувереност, така и на външно хладнокръвие. В критични ситуации телефона прегрява от обаждания на хора, които питат какво става, намерихте ли проблема, хайде, до кога няма да работи системата… В такива случаи е изключително важно да се запази авторитета на човека, който се е заел с оправяне на бакиите. Думите „ох, и аз вече не знам какво да правя” или „нямам идея какво става” или нещо подобно, показната нервност и видима нестабилност помагат за експоненциалното нарастване на напрежението. В такива моменти е по-добре да казваш само „работим по въпроса”. И е задължително да изглеждаш стабилен и спокоен. Хората имат нужда от това да усетят, че поне някой е спокоен, следователно поне някой знае какво става, следователно нещата ще се оправят, някога…

– възможност да погледнеш от високо / отстрани. Това не са само приказки. Понякога проблема е много лесно забележим и лесно решим. Но, заровен в корените но драмата, затънал до уши в подробности човек не вижда ясно. „Не може да види гората от толкова много дървета край него”. Много ценна е способността да се изключиш за момент от подробностите, да погледнеш от друг ъгъл. С течение на времето това става начин на мислене. Много полезен навик във всякакви житейски ситуации.

– генератор на идеи. Адски полезна е способността да генерираш идеи за разследване или решаване на проблема. Опитваш нещо, не става; опитваш друго. И трето, и четвърто… Свършат ли ти идеите, свършен си. В такива моменти много помага погледа отстрани. Генератора на идеи, този ценен мисловен механизъм, много бързо прекъсва ако се намеси паниката.

Разбира се, и тук огромна роля играе опита. Това е нещо като парадокса „Ако нямам опит, никой няма да ме наеме за ХХХ. Ако не ме наемат, няма как да натрупам опит…” (като ХХХ може да бъде почти всичко – от DBA до моряк, от мениджър до кофражист…).

С натрупването на опит се подобрява както устойчивостта срещу паниката и намирането на границата, така и способността да погледнеш отстрани и да генерираш идеи. Колкото повече решени случаи имаш зад гърба си, толкова по-спокоен и самоуверен си. Толкова повече идеи имаш (натрупал си опит). Толкова по-лесно запазваш авторитета. Толкова по-добър ставаш в гледането отстрани. Ставаш experienced troubleshooter. Опитен стрелец на проблеми.

 Posted by at 11:16
Дек. 092006
 

Вчера беше 8 декември. Много хубав, светъл празник. Естествено, аз не си останах вкъщи вечерта. Един приятел ме покани на купон у тях и аз с радост приех.
Не бяхме много хора – 7-8 души, от които само 2 дами. Как се случи така, че седнах между двете девойки – и аз не знам. Но като се запознавахме, изникна default-ния въпрос „Какво работиш?“.
Винаги ми е трудно да преценя как да отговоря. Още повече, че не знам човека срещу мен до колко е на ясно със света на компютрите. За някои „компютърджия“ е достатъчно, от там нататък всички са под общ знаменател. Но за да опипам почвата, аз си казах „Oracle DBA“.
„Aaa… Много добре…“ и така нататък. Явно дамите бяха поне малко запознати с термина. Разговора си продължи съвсем неангажиращо.
Някъде след час-два една от девойките (приятна дама, на вид малко по-млада от мен) разцепи един момент на мълчание с „Ти като си oracle dba можеш ли да ми помогнеш с един проблем…“ Съвсем учтиво помолих да изложи проблема си, очаквайки някакъв „общ компютърен въпрос“, примерно „защо не ми печата принтера с новия компютър“ или нещо такова. Изобщо не бях подготвен за
„Абе имам една partitioned таблица, която има bitmap индекси. Индексите са локални. Искам да преместя единия partition, обаче ми дава някаква грешка…“
Шах с пешката!
Е такова нещо не съм очаквал на купон за студентския празник 🙂

 Posted by at 17:18

Характeристиките на DBA

 Общи  Коментарите са изключени за Характeристиките на DBA
Дек. 082006
 

* Аура на всезнание. Това се базира на впечатлението на околните, а не на реалното наличие на познания. В началото се поддържа трудно, но докато се издигнеш до senior DBA вече става без да се замисляш.
* Излъчва желание да обсъжда проблеми. С девелъпърите, с потребителите, с мениджърите… и да открива, че проблема не е в БД, а съответно в потребителите, мениджърите, девелъпърите.
* Безстрашие родено от живота без бекъпи.
* Способност да взема светкавични решения за критични данни докато се прозява.
* Водоустойчив GSM, който носи и под душа

 Posted by at 14:32

Предварителните тестове

 Consultant  Коментарите са изключени за Предварителните тестове
Дек. 072006
 

Преди няколко дни писах за подготовката и колко важно е всичко да се тества изчерпателно.
Но това предварително тестване, всъщност, се „пропуска“ често не поради липса на желание. А поради липса на знание.
Този тест трябва да натовари системата с натоварване, максимално близко до реалното:
– системата да е възможно по-близка (хардуерно и софтуерно) до тази, която ще работи реално. В повечето случаи с малко усилие може да се осигури за тестване и самата реална система (освен в случай на ъпгрейд върху същата машина)
– натоварването да е от порядък, аналогичен на реалното натоварване. Т.е. ако със системата ще работят 500 човека, не може 10 да я тестват
– натоварването като структура да е аналогично на реалното. Реално съотношение бизнес транзакции към репорти.
На практика, ако няма вградени възможности за stress test в самото приложение, тестовете могат да се извършат само с помощта на голяма част от служителите. Което е нещо, което трудно се защитава като идея пред „висшия мениджмънт“. Но е наистина много важно.
Ето няколко реални примера „от живота” как не се прави:
Ами ние цял месец търкаляхме training базата на новия сървър, той си се държеше добре
Ще пуснем най-злите репорти от 10-20 компютъра с идеята „това ако мине – всичко ще минава”
Имам тука едно приложение, което симулира XXX превода в минута…
Оставям ги без комнтар 🙂

 Posted by at 15:24

За подготовката

 Consultant  Коментарите са изключени за За подготовката
Дек. 052006
 

Имаше някъде една мъдра мисъл, нещо в смисъл

„Failing to prepare is preparing to fail“.

Ах, колко верни са тези думи!
Вече на няколко места наблюдавам един и същ сценарий. Става дума за миграция – веднъж беше към нов сървър; веднъж – към нова система; веднъж – към нова версия на Oracle. И трите клиента имаха един общ проблем, който при двама доведе до много сериозни проблеми. Сценарият е следния:
– взима се решение за миграция
– точат се процедури по закупуване на техника и други подробности
– изведнъж наближава крайния срок за миграция
– всики се разбързват и всичко се прави „хайде, че дойде крайния срок“
Резултат – де факто няма време (или желание?) за истински тестове на новата система преди да влезе в production. И как се развиват нещата?
Вариант 1: миграцията се случва успешно според плана. Никакви проблеми. В понеделник се оказва, че нещата по някаква причина не вървят. Няколко часа около хиляда души не могат да работят. После се възстановява старата система. При това този сценарий се повтаря два пъти за 3 седмици!
Вариант 2: миграцията се случва успешно според плана. Никакви проблеми. В понеделник 100 души работят ОК. Във вториник се закачат 150. В петък достигат до 400 (от общо 700). Системата де факто спира. Цялата организация престава да работи, но връщане назад няма. В този момент се привличат консултанти на килограм (и се плаща на килограм). В крайна сметка системата е вдигната на крака, но след много излишни нерви
Вариант 3: За сега изглежда успешен (след инфарктна намеса от наша страна в последните дни преди production). Със свито сърце изчаквам да заработи на пълни обороти.
И в трите случая де факто няма предварителни изчерпателни тестове. Няма натоварване на системата преди да влезе в production. Все едно да сглобиш автомобил и да го продаваш, без да си пробвал дали ще запали. Може и да запали, де. Нали всчико е по плана, сглобено както трябва… 🙂

 Posted by at 11:46