Archive for the ‘General’ Category

2012-12-30 29c3 четвърти ден

Sunday, December 30th, 2012

Пропускам afterparty-то, понеже съм скапан, мисля да напиша тоя post и да спя, утре сутрин ще ставам в 8-9 да си хвана самолета…

Сутринта гледах Millions of lessons learned on electonic napkins, по темата за online преподаването/образованието и различните неща, които авторите са открили. Имаше интересни моменти, например това, че ако има на три минути въпрос към гледащия, това много помага да се разбере материята и също така да се получи хубав feedback дали обяснението е добро. Струва си да се гледа, мисля да я дам на Наков да види дали не може да вземе от там някакви идеи.

Лекцията за локалната gsm мрежа беше интересна, въпреки много приспивния лектор. Интересно беше, че са подкарали паралелно openbts и openbsc за малко (въпреки че са нямали handover м/у двете). Аз лично ползвах мрежата и останах доволен, работеше доста прилично.

NOC review винаги ми е интересно, разказаха доста весели неща:
Имали са 22gbps upstream (2×10 до някакви хора и 2×1 към два exchange-а), напълнили са най-много 8.2gbps, в изходящата посока;
Имало около 3000 wifi клиента едновременно в пиковия момент (което е три пъти повече от предишни събития);
В някакъв момент 40% от трафика е бил ipv6, което за мен беше най-голямата изненада;
Ползвали са прилично количество juniper железария с интересни свойства – представлява много 1U парчета, които се държат като един цял switch и по-лесно може да се инсталира капацитет във всяко нужно място;
Бая са се забавлявали с окабеляването (понеже конгресът за пръв път се прави в тая сграда).
(на dashboard-а има още статистики по темата).
Изобщо, това винаги е една от най-интересните лекции.

Ходих и на Page Fault Liberation Army or Gained in Translation, доста интересен research за използването на double fault-ове за някакви странни цели, който за съжаление почти проспах и трябва да гледам пак.

Closing event-а беше весел както винаги (и с мнооого ръкопляскания). Обясниха, че тази година е имало около 500 доброволци (от тях 100 от core организацията, останалите дошли отвън), които са дали 5000 часа смени, а 100 от тях са били и на build-up-а по коледа (измежду тях и Бобсън, който трябва да вземе да напише нещо по темата, как е било). 111 часа talk-ове (приети са били 1/3 от заявките), 71 lightning talk-а, имаше за пръв път assemblies, а се оказа и че е имало неща специално за деца (например са ги учили да запояват, страх…).
Най-интересното за мен беше, че са продали 6600 билета общо, т.е. някъде толкова хора е имало на целия конгрес, и средно още толкова на stream-овете (около 8000 в някакъв пиков момент), т.е. в общи линии два пъти повече от миналата година. Казаха, че имало 3000 стола, т.е. за половината хора, но на мен все ми се виждаше, че не стигат (това извън залите), и определено нямаше достатъчно контакти, та ако има откъде, ще им пратя feedback.

Накратко – беше весело, уморително, и ако бях се наспивал предните две седмици, вероятно щеше да ми е по-леко. CCH определено е по-доброто място за такова събитие и с малко допълнения може да е направо перфектно.

2012-12-30 29c3 трети ден

Sunday, December 30th, 2012

Третия ден пак мина малко отнесено.

Стоях известно време на lightning talk-овете (Ник Фар ги организира доста весело), ето няколко, за които говориха:
Weird Ass Digital Fabrication – лесно правене на физически неща с роботи, изработка и процеси и колко лесно е да е прави и подобрява това с нашите инструменти;
Motivated Misinformation: Fabricating Facts for Fun and Profit – различни неща по темата как рекламистите лъжат хората;
tos-dr.info – занимават се да анализират промените в Terms of service на различни места и да ги обясняват на хората.
OpenBTS at Burning Man – как са тествали gsm мрежа с openBTS на burning man (има доста подробна информация online и е доста интересно). Отбелязал съм си “да си намеря papa legba sticker-и”;
Fire and how it can be fun – човек, който рисуваше синусоиди с огън, беше направил и огнемет от пожарогасител, изобщо весел пироман;
Experiences with space projects – балони, сензори на тях и интересни неща, които могат да се правят;
Solving the internet innovation paradox – това беше доста глупаво, главата ми го е изтрила.

Успях да говоря с Мич Алтман, ще си пишем с него след нова година на темата за свързани с депресията workshop-и (например той каза, че на HOPE е имало workshop-и, водени от психотерапевти по различни такива теми, трябва да видя дали има бележки).

Travis Goodspeed разказа как е направил много евтино устройство, което има два usb порта – единия се държи като нормално usb устройство, от другата страна се закача машина и се командва какво се подава, като по тоя начин може да се правят всякакви fuzz-вания и симулация на различни устройства (чиито драйвер например е с известни security проблеми). Идеята беше, че с изследване на тия неща човек може да види как се държат различни драйвери/os-ове/софтуери и да бъдат лъгани (например стандартния проблем, при който някакъв софтуер първо чете файла от usb storage, валидира го, след което го чете пак и го инсталира – така първия път може да му се даде друг файл, който е валиден, втория път да му се даде нещо “весело”. Имаше и решение на проблема с кеширането на файла).

Последната лекция, която слушах беше Russia’s surveillance state, в която беше обяснено какво ползват руснаците да следят и филтрират net-а на хората (накратко, нищо не бих host-нал там). За съжаление човекът не беше техничар и не можеше да каже колко точно bandwidth се филтрира/анализира.

Последва whiskey workshop-а. Тествах мнооого различни неща, имаше всякакви весели разговори и успях да поговоря с Milos на темата балканския компютърен конгрес, вероятно ще си пишем догодина. Прибрах се на два крака, което не го очаквах.

(изпуснах лекцията за hash flooding DoS-овете, определено трябва да я изгледам)

Update: Снимка на (част от) празните бутилки от whiskey workshop-а…

2012-12-29 29c3 втори ден

Saturday, December 29th, 2012

Вчерашния ден леко ми се губи/замазва. Трябваше да изпия едно кафе, за да не заспя там, но ефектът беше временен и минимален. Требе да направят напитка с модафинил или амфетамини…

Romantic hackers лекцията беше скучна, малко ми напомняше на час по литература, въпреки че имаше малко интересни идеи какво да правиш, ако си в затвора.

Tactical tech обясняваха как техничари помагат на активистки групи на различни места, обяснявайки им как да ползват технологии, кое как ги пази, правят им образователни материали и т.н.. Обясниха, че по принцип много често като идат при някакви такива хора и кажат “ние сме техничари, искаме да помогнем” те им казвали – “принтерът ей-там в ъгъла не работи, оправете го”.

OMG!OER! лекцията беше наистина много интересна, обясняваше как поляците правят отворени учебници и как издателите се борят срещу идеята. Имаше дискусия за различни такива инициативи, а човекът каза, че нямат подробна история как са успели да убедят правителството си, че такова нещо трябва (което беше нещото, което аз най-трудно повярвах, познавайки нашите управници) и мисля, че може би някой и при нас може да опита нещо такова. Лекторът беше доста забавен, гледайте лекцията :)
(имаше например как издателите пращали юридически заплахи към университетите да не участват в правителствената програма)

На лекцията за екосистемата на TOR едвам влязохме, за съжаление беше в малка зала (и не стигна времето). Отбелязал съм си три интересни проекта – tlsdate, flashproxy и ooni (open observatory of network interference), които трябва да погледна, и вероятно трябва да прегледам цялата лекция наново, понеже през цялото време работех в/у някакви неща и слушах с половин ухо.

(лекцията на DJB с двете девойки за чупенето на 1024-битови rsa ключове я пропуснах, пак заради работа)

Hackers as a high risk population на Violet Blue беше доста полезна, за изследванията и как групичката болни компютърджии са рискова група като наркоманите и какво е изровила тя по въпроса. Определено пак трябва да я гледам, и мисля да я издиря някъде по конгреса да я питам разни неща (като си ги избистря в главата).
(в irc канала ми казаха да я питам за телефонния и номер – няма)

Накрая на вечерта минах през cryptoparty-то, поговорихме малко за разни весели неща (основно свързани с TOR), днес мисля да разпитам по-подробно.

И днес ме чака whiskey workshop-а. Надявам се да не умра.

2012-12-27 29c3 първи ден

Friday, December 28th, 2012

Конгресът започна силно, с keynote на Jacob Appelbaum “Not my department” – идеята защо разни такива неща, дето си мислим, че не ни засягат всъщност са ни много важни (например като момента, че NSA строят купища data centre-ове из щатите, за да пазят данни за по 100 години). Като цяло много важна, много интересна лекция, намерете си записи и гледайте.

Самият конгрес е пълен с хора, но не е ад като в Берлин – има място за сядане, свободни контакти, човек може да се добере сравнително лесно до храна, само с водата е малко проблемно, понеже явно хората тук пият само matte и бира. Странна работа.

Бях на “Setting mobile phones free”, което се оказа доста скучно и не особено интересно, в общи линии правене на виртуален мобилен оператор и почти реклама.

Денят след това мина основно в workshop-и – първо беше cryptoparty workshop-а, как се организира cryptoparty (т.е. как да покажем на хората, че им трябва криптиране и как да си настроят различните услуги да ползват). Имаше доста интересни неща и един пълен piratepad с идеи, например демонстрация защо трябва криптиране – като на всеки http request ако content-type е някаква картинка, router-а (който се прави на прозрачно proxy) да я върти на 180 градуса и така да я подава на потребителя.

(note to self – да намеря някой да ми обясни как се търкалят услуги в/у tor)

Много полезен беше hackerspaces exchange workshop-а, който Весна организира – имаше хора от: Македония, Румъния, Швейцария, Германия, Ирландия, Австрия, Бразилия, Дания, Англия, Австралия, Щатите, Шотландия, Холандия, Естония, Словения, Сърбия (и вероятно пропускам някого). Всеки каза с по две думи нещо за hackerspace-а си (аз се изложих, както обикновено). Интересни неща от разговорите:
Австралийците от artifactory са си направили ключалка, която да контролират по електронен път, и която е достатъчно здрава, че да издържи нормални мизерии, може да реши един проблем на лаба;
Няколко hackerspace-ове правят проекти с деца, да ги учат на разни работи, може да помислим и ние дали може да става нещо такова, около някакви държавни/образователни работи;
Имаше няколко жени (едната каза, че е една от няколкото, за съжаление);
Говорих си доста с един сърбин за hackerspace, който искат да отворят в Нови Сад и за идеята да се направи балкански компютърен конгрес (като вариант на CCC, ама по-близо). Ще му пиша допълнително какво идеи имаме да правим догодина, може да се получи забавна програма (особено като и македонците искат да правят нещо юни месец).

Последва RIPE Atlas – бях се регистрирал и взех една джаджа, която да закача в lab-а и да помага в меренето на performance на internet.

Бях на лекцията “Enemies of the state”, където трима whistleblower-и – Jesselyn Radack (разказала за нарушаването на правата на разпитвани чрез измъчване хора), Thomas Drake и William Binney (и двамата разказали за различните програми на NSA за масово подслушване/записване на американски граждани). Не беше лошо, но не беше чак толкова интересно, като изключим, че Binney спомена нещо за някакви документи/схеми/описания на методи за подслушване и анализ, които биха били доста интересни.

Искахме да идем на лекцията за SCADA и системите в ядрени електроцентрали, но залата беше препълнена и не можахме да влезем, та отидохме на “Time is NOT on your side”. На мен адски ми се спеше и май нищо не помня.

(а на мен като много хубав ми дадоха една тениска за OHM (на нея пише само “Hack” и има някакъв странен болт) и спамих по-интересните хора да идват да говорят там)

2012-12-26 пристигане на 29c3

Wednesday, December 26th, 2012

Седя си в CCH (който е огромен, конгресът тоя път може да не е адска гъчканица), купих си вече една от локалните sim карти да ползвам тестовата gsm мрежа и се радвам на живота.
(трябва да ям…)

Пътувах през Истамбул (понеже само турските авиолинии имаха полети в свястно време да се върна), и гледката при захода над града беше страхотна – видя се Босфора, а самият град поне от въздуха изглежда страхотно.

Та пристигнах в Хамбург, посрещнахме и червото на летището (бях се объркал, че той пристига преди мен, оказа се обратното), настанихме се в хотелите (на улицата с червените фенери и sex shop-овете сме, следващия път сам ще си избирам хотела) и дойдохме да видим конгресния център и да си вземем пропуските за конгреса. Нещата са ги забързали страшно много със скенери и QR кодове, всичко стана за под минута.

Утре следват весели лекции. По някое време ще пиша :)

2012-12-22 OHM иде

Saturday, December 22nd, 2012

оммммммммм

Вече има и официален press-release по темата, та да напиша – ще има OHM 2013, наследникът на WhatTheHack и HackingAtRandom. Името значи “Observe.Hack.Make.”, което май говори достатъчно за себе си.

Ще се проведе пак в Холандия, в Geestmerambacht (което как се произнася трябва да питате някой друг), пак така на палатки, с всякакви весели хора, проекти и забавления (надявам се да не издавам нещо и не знам дали ще стане, ама се планира някаква гигантска надуваема кукла, около една от идеите за лого).

Планира се прилична групичка българи за там – до тук сме поне Яна, аз, червото, Мишо, може би Heth, bobson и още някакви хора, може да организираме пак българско посолство (както са организирали на CCC camp-а).

Та, ticket shop-а отваря тия дни, помислете по въпроса и елате – събитието ще е весело както винаги, ще може да се научат нови неща и да се запознаете с всякакви интересни (или странни) хора.

2012-12-14 Гледане на 29c3 в initLab

Friday, December 14th, 2012

Ще има прожекции на живите stream-ове от 29c3, в initLab. Ето текущата програма, имаме event в сайта на initLab, както и хора, които да отворят и да пускат лекциите (Яна, Радо Борисов). Ето началната идея за програмата за първия ден, 27.12:

Opening event
Not my department, Jacob Appelbaum
ISP’s black boc
HOWTO Hack the law
Setting mobile phones free
The Grand EU Data Protection Reform
Privacy and the Car of the Future
Defend your Freedoms Online: It’s Political, Stupid!
SCADA Strangelove, or: How I Learned to Start Worrying and Love Nuclear Plants

Мисля, че последната лекция (за hack-ването на ядрени електроцентрали) ще е мнооого интересна…

Моята програма ще е малко по-различна, понеже имам да ходя на два workshop-а (Hackerspaces exchange и RIPE Atlas пробите), както и хич не е ясно в каква друга история ще се забъркам.

Ако някой друг иска да организира процекции, нищо не пречи да се отбележи във wiki-то на събитието, или да намери къде да иде да го гледа. Мисля си, че все някой от hackerspace-овете ни трябва да го направи, да не сме само от initLab :)

2012-12-05 Панаир на книгата

Wednesday, December 5th, 2012

Посетих панаира на книгата, ето снимка на книгите и малко описание:

“Ни вест от Гурб” на Едуардо Мендоса – някъде имам нейно копие, това май ще го подарявам, щото е наистина добро и много смешно.

“Хигиена на убиеца” на Амели Нотомб – събирам си всичките нейни неща, поръчал съм и три книжки на английски на старо.

“Нов патрул” на Сергей Лукяненко (4 копия, понеже iffi ми се обади да ми каже за него и да и взема на нея и на нейни колеги).

“English for Information Technology”, за офиса да се помогне на разни колеги.

“Без заглавие” на Нася Кралева – нещо документално около прехода.

“Особености на филибейския характер” на Евгений Тодоров – чета му двата блога.

“Повярвалият” на Стефан Бочев – другият му роман не ми хареса, ще видя този.

“Пушки, вируси и стомана” (Guns, Germs and Steel) на Джарел Даймънд – отдавна ми казват да я прочета, особено около “Cathedral, forge and waterwheel” и “Sex at dawn”.

2012-11-27 видео запис от лекцията ми за сървърите

Tuesday, November 27th, 2012

Може да се гледа в тубата, или да си го свалите. Текстът го има тук.

2012-11-27 irc.ludost.net

Tuesday, November 27th, 2012

Тия дни разширих малко irc-то си – добавих още един сървър, достъп по ipv6, “irc.ludost.net” в dns-а, оправих сертификатите (слуша на порт 6697 със ssl) и сложих services.

Идеята тръгна от там, че около лекцията за депресията може да направим irc канал (#debug), в който хората да могат да идват да говорят (за в бъдеще и през web, като подкарам някой web irc клиент). Също така мрежата е удобна просто за ботовски неща – както аз си чета twitter-а там през един бот, който плюе в един канал, така хората могат да вържат каквото си искат там и да си го гледат.

Накратко – service без генерална цел, който обаче може да е удобен.
(не планирам да го вържа към каквато и да е друга мрежа, да му правя екип и т.н., харесвам си го прост и работещ)

Update: https://webirc.ludost.net/.
Update 2: webirc-то вече е по https.

2012-11-27 цитат

Tuesday, November 27th, 2012

What is a flower? A giant sexual organ in its Sunday best. The truth has been known for a long time, yet, over-aged adolescents that we are, we persist in speaking sentimental drives about the delicacy of flowers. We construct idiotic phrases like “So-and-so is in the flower of his youth”, which is as absurd as saying “in the vagina of his youth”.

Амели Нотомб, “Loving Sabotage”.

Много близко до моето мнение по въпроса. Помислете си тогава какво значи да подарявате умрели цветя :)

Всъщност, май ми е любимата жена-автор. Пише рядко добре, кратко, и ако някой ден напише нещо, което е повече от 300 страници, вероятно ще е смазващо.

2012-11-24

Saturday, November 24th, 2012

Кратък status update:

След като се напихме на 12ти, се напихме добре и на 17ти, на един от хората трябваше аз да му обувам едната обувка, щото той не можеше;
Тая седмица за 4 дни успяха да гръмнат 12 диска, което е нов рекорд;
От работа и т.н. не успявам да блогна (очевидно);
Мисля по въпроса за сайта по темата депресии и т.н. и до почти никъде не сме (има идея какво ще е, ама все пак трбява да се пусне, и в ludost.net не е ясно дали няма да звучи странно);
Понеже все мен питат, ако някой иска да следи какво е качено от записите от openfest 2012, може да гледате в youtube.
Ще ходя на 29C3 в Хамбург тая година (трябва да има повече място, отколкото в bcc), та някой друг ще трябва да организира прожекциите в initLab;
На червото студентите са му измислили нов прякор – Jesus.

2012-11-12 спирт

Monday, November 12th, 2012

(това ми е post-а с най-много backspace, чак монитора сам ходи нанякъде)

Статистиката и тестовете показват, че Octomore е велико уиски, Lagavulin също, Finlaggan е добро, и всичките са дотолкова добри, та не мога да разкажа никоя простотия от вечерта, нищо, че Стефан се постара (и всички трябва да се снимат с него).

in other news, това post от типа “zler, bair, gladuvane”.

Update: Вярно стабилно съм се напил снощи, даже не бях си балансирал скобите.

2012-11-08 “Депресията, проблемите в главата ни и други весели работи” от OpenFest 2012

Thursday, November 8th, 2012

Има вече запис от втората ни лекция, може да се свали от va.ludost.net/files/20121104depression.mp4, hades.erihon.com или да се види в тубата. Презентацията може да си свалите в odp или pdf.

Откриването, където си говорим с Кънев може да се гледа тук.

Препоръчвам също така да гледате depression panel-а от 28C3, който беше големият тласък изобщо да направим тая лекция.

Текстът ще отнеме малко повече време да се появи.

До тук имаше много положителен feedback, включително от един професионалист (което в общи линии made my day), много хора ми писаха, за да кажат, че и те са имали/имат проблем и в общи линии има и желаещи да слушат другите: Стефан Кънев, iffi, Нейчо Михов, аз и Яна. Още работя по идеята как да го организирам това, надявам се скоро да пиша нещо.

Преди това обаче имам да наваксам с работата, че някои неща взеха да се трупат (не-админски дейности).

Update: И Комитата е в групата на слушащите (аз бях говорил с него на феста и бях забравил, та той ми напомни на ТББ снощи).

2012-11-05 “Защо поддържането на 700 сървъра е по-лесно от това на 3”, текст на лекцията

Monday, November 5th, 2012

Ето текста на презентацията ми от Openfest 2012 за това как 700 сървъра се поддържат по-лесно от 3. Оставил съм бележка на кой слайд съм, понеже има няколко полезни картинки из презентацията (pdf, odp).

Update: видео запис.

[слайд 2]
Занимавам се със сървъри в общи линии от малък и винаги ми е било интересно. След като в последните 3 години се занимавах с една голяма система (около 750 машини, 7.5PB място, 260gbps трафик в разни моменти) открих как големите системи са по-лесни за поддръжка, понеже ни карат да правим нещата по правилния начин (иначе просто няма да се справим).
Също така искам да отбележа, че аз съм адски мързелив и не много умен (за последното даже имам издаден документ от МЕНСА) и намирам това за лесно, т.е. според мен всеки, който реши може да се справи:)

[слайд 3]
Това е снимка от едно от първите неща, с които съм се занимавал (за съжаление нямам снимка на първия си сървър, как стоеше до един шкаф с 6-7 модема и това си беше цялата система). Да сравним с

[слайд 4]
тези две снимки, на които отляво можем да видим извънгаранционни гръмнали дискове (около 400бр.), и в дясно пак извънгаранционни гръмнали сървъри (няма как да се направи снимка на работещите машини, която да е достатъчно интересна).

[слайд 5]

Малко бележки, преди да започна – аз различавам три типа “операции”.

Първият тип е малката фирма. Там има един-два-три сървъра, системният администратор поддържа всичко, от климатиците до базите данни и web сървърите, не му дават много време да спи, няма особено голям бюджет и като цяло всичко се прави по неприятен и неефективен начин.

Вторият вид са големите, “enterprise” операции – като пример мога да дам телекомите (които за мен са много повече неприятен начин на мислене, отколкото нещо друго) – това са компании, които разработват и изобщо разбират частично технологията си и основно плащат на външни фирми много пари, които после да могат да поемат вината за проблемите, и да реагират в някакво време (например 2-4 часа) за да оправят счупеното.

Третият вид са тези, за които ще говоря, и които по принцип наричам “порно компании”, поради това, че повечето от по-големите фирми, които се занимават да сервират и т.н. порно по интернет са такива (но и twitter, reddit, github също си приличат с тях). Това са операции, които сами поддържат почти цялата си инфраструктура и продукти, които използват почти ексклузивно open-source софтуер, дописват го за собствени цели и успяват с бюджет, който е с един-два пъти по-малък порядък от enterprise хората да постигнат толкова или повече.

(има четвърти тип, който пропуснах на лекцията, гигантите като facebook и google, от които идват някои от идеите по-долу).

И понеже има шанс да се появи въпросът “тия неща какво значение имат, като всичко ни е в облака”, малък отговор: облакът ни дава нещо, което е много подобно на моите железа, просто няма нужда да си поддържате сами хардуера. Поддръжката на хардуера поне при мен за 700 машини отнема средно по около час-два на седмица. Останалото си важи с пълна сила.

[слайд 6]

Големите системи ни принуждават да научим някои неща, без които никога няма да можем да се справим с натоварването. Разширяването на системите е много по-лесно от разширяването на персонала и доста по-ясно като задача, та ако не се работи правилно, много често админите на някаква система издъхват, преди да е стигнала някакви сериозни размери. Изброил съм доста от полезните уроци, които са ми улеснили много работата – повечето ги има в хубавите книги.
Изобщо, ако ви е интересна темата, идете и прочетете “The practice of system and network administration”. Ще откриете много интересни работи…

[слайд 7]

Да започнем с мониторинга. Лафът “има два типа хора, такива на които им е гърмял хард диск и такива, на които ще им гръмне” ми е толкова любим, че чак го написах в презентацията …
Поддръжката на система без monitoring е подобна на шофирането сляп и глух. Няма да имате идея какво правите, какво се случва и какво го предизвиква и в общи линии ще трябва да гадаете.
Имам една примерна случка от съвсем наскоро – един приятел има лична машина, co-locate-ната някъде, на която има два RAID1 масива с по два диска. Преди около година един диск от единия масив отказал, след това преди 3-4 месеца отказал още един диск, но от другия масив. По някое време един негов приятел минавал през colocation-а и после му казал “абе ти знаеш ли, че на твоята машина отпред светят две червени лампички?” (някъде тук моя приятел твърдеше, че colocation support-а е трябвало да му каже, че има такова нещо, но те няма откъде да знаят това дали е нормално или не, няма стандарт за нотификация от предните панели). Та, тръгнал той да сменя дисковете, но докато се накани му гръмнал още един диск, а докато backup-вал – и последния.
Както би казал Captain Hindsight в такъв случай – “трябвало е да има monitoring и това нямаше да се случи”.

Monitoring-а ви пази от downtime – ще видите гръмналия диск преди да стане бедствие, пълнещата се файлова система преди базата ви данни да спре да може да изпълнява заявки или mail server-а ви да може да приема поща, ще ви каже, че някой service ви е спрял и какво ли не още.
Също така monitoring-ът ще ви даде данни за бъдещо планиране – колко трафик правите, с каква скорост си запълвате ресурсите, в кои периоди може да очаквате повече или по-малко натоварване, и т.н., и т.н..

Аз лично ползвам nagios за всичките си машини, включително и за някои неща по работната ми станция вкъщи.

[слайд 8]

Тук съм показал как изглежда моя системен статус – това е nagios checker, plugin за firefox, който показва постоянно статуса на един или няколко nagios-а (това е редчето най-най-долу) и при on-mouse-over показва по-подробен статус (всичко останало, което се вижда в жълто/червено). На този се вижда как два от ftp сървърите са малко по-натоварени, има 4 дискови масива, които се rebuild-ват, два масива дето са изхвърлили по един диск, един масив, който си мисли по въпроса и един IPMI модул, който изглежда е изгорял.
Има варианти на plugin-а и директно за gnome или каквато работна среда ползвате, всеки както му е удобно. Много хора ползват външен монитор или нещо такова да им стои там целия статус.

[слайд 9]

Може да видите няколко публични примерни monitoring-а – моят публичен nagios, един munin пак за същите машини (страхотен tool, лесен за конфигуриране, прави много добри графики и писането на plugin-и е направо радост за душата), и един пример за великолепно подкаран nagios с много услуги. Моят например има по 7-8 услуги за машина, които се следят, те имат по 20-30 и все подходящо измислени, препоръчвам на всеки да погледне какво и как следят.

[слайд 10]

Това е нещо старо като света, даже го намерих в една книга за писане на бази данни от 1992ра. Идеята е, че за една система не трябва да се налага да се променят няколко различни места, когато се прави промяна по нея – не трябва да се пипнат конфигурациите на 8-9 различни неща и да се направят други 10 действия, понеже хората грешат, ние сме хора и ще сбъркаме нещо. Или ще пропуснем определено действие, или ще объркаме нещо, докато го правим, а ако направим скрипт, който от една централна конфигурация да създаде всичките тия конфигурации и направи действията, първо ще си спестим работа, второ ще си спестим грешки. Скриптовете определено грешат по-рядко от хората…
Този съвет за съжаление рядко е използваем в малки системи.

[слайд 11]

Тук съм дал един мой примерен скрипт, който генерира конфигурация на dhcp сървър. Скриптът е грозен до смърт и съдържа в себе си три езика – bash script, SQL и dhcp config – но съвсем накратко прави следното: генерира един конфигурационен файл, тества дали е различен от текущия, ако да – пробва да рестартира с него, и ако не сработи, ми праща mail и връща старата конфигурация. Елементарно е да се напише, работи като слънце и не ме кара да правя много неща – този скрипт и още няколко се изпълняват от cron-а и всичко се update-ва без никаква човешка намеса.

[слайд 12]

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

[слайд 13]

Автоматичните инсталации са нещо почти животоспасяващо, а и аз при мен съм решил въпроса по толкова готин начин, че не мога да не се похваля :)

По принцип началната инсталация е мястото с най-много грешки. Във всеки един инсталатор има м/у 20 и 100 избора, които трябва да се направят, особено ако става въпрос за сървър и потенциалът за грешка или просто различна инсталация е огромен. Вероятно няма начин един човек да направи 10 инсталации през debian-ския инсталатор за една седмица и да направи 10те машини еднакви (има шанс и 10те да са съвсем различни). Да си оставяте такава дейност е като да си пречите сами.
(за съжаление и това е безсмислено за по-малки системи, ако имате един сървър, няма от кой да е различен)

Това доста хора го научават бързо, и на местата, където машините се дават preinstalled (като например всичките инстанции по cloud-овете) хората си имат един малък скрипт, който качват на машината и който я довежда до желаното до тях състояние.

При мен инсталацията представлява следното: първо ми монтират машините в rack-овете и ги настройват да boot-нат по мрежа. Машините тръгват, зареждат през pxe/nfs един image, в който тръгва нормална операционна система, на която последният и boot script (/etc/conf.d/local.start, понеже е gentoo) стартира един мой скрипт, който от своя страна се свързва с една централна машина и казва “здрасти, аз съм с mac адрес еди-кой-си”. Централната система проверява този mac адрес на кой switch/port се намира, проверява в таблицата със сървърите (вижте на слайд 12) какво трябва да има там, дали е работещо или не и или казва “не прави нищо, не знам за тая машина/вече е инсталирана”, или дава нужните настройки като hostname, ip, net, gw. Ако има получени настройки, скриптът създава partition-и, прави файлови системи, настройва разни полезни неща като адреси на ipmi контролера и парола за него, разархивира един готов image, сменя по файловата система настройките като за машината, рапортува на централната система, че е готов и рестартира. Централната система си отбелязва, че машината е готова и че трябва да и даде да boot-не нещо друго на следващия път.
След което аз на сутринта си пускам лаптопа и виждам – а, имам още 18 инсталирани машини, хайде да им качвам съдържание (което също се прави с една-две команди). Мисля си, че единственият по-мързелив начин щеше да е да ми ги пращат готови инсталирани.

[слайд 14]
Тук малко ще се отклоня и ще се опитам да обясня колко важна е автоматизацията. Системните администратори сме мързеливи и ТРЯБВА да бъдем – хората, които не ги мързи ще си кажат “защо да автоматизирам това просто нещо, ще ми се налага да го правя само веднъж седмично/веднъж на ден” и в един момент се натрупват достатъчно такива дреболии, че не им остава време да се огледат и се получава “death by a thousand cuts”. Мързелът е важен, и може да видите на

[слайд 16]
програмист, който тренира за системен администратор.

[обратно на слайд 14]

Всичко, което се прави често, трябва да се автоматизира. Всичко, което се повтаря и се прави рядко – също, защото има шанс между две правения да забравим как става. Научете се да пишете код и пишете, това ще ви спаси живота. Няма нужда даже да е добре, ето един мой пример:

[слайд 15]

Това е един много прост скрипт, който проверява кои машини са report-нали, че имат проблеми с дисковите масиви, логва се да види какво се случва и ми вади списък в следния вид:

rack/cage (SD id)               server  port    serial
XXX/DA3:20460 (CUST.YYY)        s333    p9      JPW9H0HQ2XS8AH
XXX/DA3:20460 (CUST.YYY)        s452    p5      JPW9J0HD1J3JMC
XXX/DA3:20460 (CUST.YYY)        s542    p3      JPW9N0HZ0MN8JL

Това аз мога да го пратя на човека през океана, който да иде на място и да ги смени. Не съм направил скрипта и да праща поща, понеже има няколко случая, в които и аз трябва да погледна, преди да съм сигурен, че дисковете може да се извадят спокойно.
(някой ме беше попитал защо там има ssh root и т.н. – първо аз ползвам ssh agent и няма как някой, който се добере до машината да добие лесно достъп до всичките, и второ аз работя само от root – аз admin-ствам тези машини и почти няма команда, която да може да работи от нормален потребител, а да пиша sudo на всеки ред е безсмислено).

[слайд 17]

И една леко религиозна тема – трябва ви хубав naming convention. Това е от нещата, за които просто няма друг начин при големи системи. По принцип важното е имената да са лесни за произнасяне и запомняне (доста хора използват филми/сериали като източник (Simpsons), други използват фентъзи книги (в Толкин има около 200-300 героя, в Малазанска книга на мъртвите – около 1000)). Аз лично за тази система използвам съвсем простата конвенция от една буква, определяща функцията на машината (w – web server, d – db server, s – storage) и номер. Така знам машината какво прави само по името и е съвсем лесно да я кажа на човека отсреща, който се намира в шумния datacenter и около него вият 10-15000 вентилатора.
(от друга страна, личните ми машини имат съвсем random имена, щото са малко и защото успявам да ги запомня – marla, tyler, cassie, lain, alpha…)

[слайд 18]

Резервните пътища са нещо също много важно. Почти всеки, който някога е администрирал каквото и да е отдалечено си е отрязвал клона, на който седи (в слайда има прекрасен пример с ifconfig eth0 down).

Искам да дам три примера от при мен за резервни пътища. Първият е как всеки сървър при мен има IPMI модул, който има отделен мрежов порт, закачен за отделен switch, така че да мога да стигна до машината и да видя какво се случва с нея, ако се налага, както и да мога да я командвам. Това дава възможност да разбера например, че дадена машина е прегряла и се е изключила, вместо да се чудя дали не е проблем в мрежовия и порт.

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

Третият пример е малко по-странен, но пак подобен – всичките ми машини по принцип boot-ват по мрежа (което улеснява много някои неща), но освен това могат да boot-нат нормалното за тях нещо от диска си, ако мрежата не им отговори на време. Така дори да има проблем със сървъра, от който тръгват или с някой switch по пътя, те пак ще запалят и ще могат да работят. Така най-малкото избягвам старта на цялата система да зависи твърде много от нещо централно.

[слайд 19]

Може би понеже аз съм тръгнал от интернет доставчик ми е странна идеята някой друг да ми оперира мрежата, но това се оказва стандарта в момента – хората си наемат/слагат машини в някой datacenter, от datacenter-а им дават internet и мрежа през един порт на всяка машина и така цялата комуникация между компонентите на една система става 1) през порта, който е и за външния трафик и се бори с него и 2) през мрежа на някой друг, с различни цели и съответно такава, на която не може да се вярва. Мрежата е централен компонент на всяка една система в наши дни и невъзможността да знаете какво се случва в нея и невъзможността да го променяте/контролирате ви ограничава сериозно.
(например моята автоматична инсталация нямаше да има начин да става толкова лесно, ако не си контролирах мрежата)

Една фирма, с която работих преди известно време имаше огромен проблем с това, че не си контролираше мрежата – те са по-големи от това, с което се занимавам (имат около 1800 машини в 4-5 големи datacenter-а) и съответно понеже им се налагаше да репликират mysql през internet, бяха правили някакви страшни и почти гениални изпълнение, за да им работят нещата, а докато бях при тях, основните проблеми идваха от мрежата.

Също така собствената мрежа ви дава възможност да пуснете BGP, да си вземете ASN и за всякакви такива други хубави трибуквени съкращения :) Така може да купувате свързаност от няколко различни доставчика и да не трябва да им търпите проблемите.
Ще говоря накрая и за една много хубава моя система за наблюдение на трафика, която пак щеше да е невъзможна без моя мрежа.

[слайд 20]

Ако някой ден се навия да направя по-голям курс по системна администрация (или цяла магистратура), изпитът на края ще се проведе по следния начин: ще хвана студентите, ще идем да пием някъде, ще ги пратя да спят и след това ще ги събудя в 4-5 сутринта да решат проблем. Оценката им ще бъде на база на това колко часа downtime са имали.

Нещата трябва да се правят просто, защото проблемите винаги ще изникват в най-лошите възможни моменти и трябва да може да се справите без значение в какво състояние се намирате. Това значи и да може да пазите цялата система в главата си, целият и state, което значи и нещата да са максимално унифицирани (защото колкото по-малко неща трябва да помните, толкова по-лесно ще ги запомните).

Препоръчвам на всички да тестват следното – да се напият, да си си легнат към 12 и да са си навили алармата за 4 сутринта, след което да станат и да се опитат да направят нещо просто (например да решат квадратно уравнение или някой прост тест за интелигентност). Вероятно ще има отрезвяващ ефект :)

Нека да цитирам Jim Gray, “Although there are no textbooks on simplicity, simple systems work and complex don’t.”. Това всички го виждат, но никой не иска да го приеме, понеже изглежда простите системи не са готини, и човек не изглежда умен, ако не направи нещо гигантско и сложно (което после се оказва невъзможно за поддръжка). Както при програмирането дебъгването е три пъти по-сложно от писането, така при правенето на системи работата с тях и оправянето на проблеми е доста по-сложно от измислянето и поне според мен хората, които правят много сложни и “умни” системи не са особено умни.

[слайд 21]

Искам да спомена и малко проблеми, които можем да срещнем в големите системи.

Първият е разпределението на натоварванията и събитията. Нека да дам за пример пасивния ми monitoring – той представлява cron скрипт, който веднъж на 5 минути се стартира и праща малко данни към един централен демон, който обработва информацията. Това при достатъчно сървъри би довело до претоварване на централната система и решението е съвсем просто – един sleep за random секунди (м/у 1 и 60), така че събитията да са пръснати във времето.

Другият е премахването на SPOF (single points of failure). Много често като наследство от времената, в които дадена система е била малка се намират разни компоненти, които ако откажат и цялата система спира да работи. В голяма система това трябва да се избягва и като цяло компонентите да могат да се заместват един-друг или да не са толкова важни, понеже колкото повече отделни части имате, толкова по-голям е шанса някоя от тях да откаже. Ако всяка част ви е жизненоважна, то ще трябва през цялото време да тичате след всеки дребен проблем и да нямате време да свършите нещо реално полезно.
Да се направи нещо дистрибутирано е сложна задача – стъпката от една до две машини (или даже от single thread до няколко thread-а) е тежка и по-сложна от тази от две до хиляда, но определено си струва. Ще ви спести будения посред нощите от големи проблеми и ще ви даде допълнително спокойствие.
(например аз почти нямам компоненти, които могат да убият цялата система със срива си, съответно мога да спя спокойно и каквото и да стане, да мога да го оправя на сутринта, като стана)

[слайд 21]

Ето един пример защо е важно да сме дублирани и да не зависим от отделни дребни неща – понеже редките явления в достатъчно голяма система стават нещо нормално. Този screenshot показва как на машина с 12 диска и 12те са гръмнали в един и същи момент.

Това ми се е случвало два пъти.
(първия път сърцето ми прескочи един път:) )

[слайд 22]

Две интересни неща, от големите системи и от при мен по принцип.

Едното е нещо, което много хора според мен не правят правилно. Много често се казва – имаме нов проект, айде да купим още web, db и т.н. сървъри и да направим отделна инфраструктура, вместо просто да се разшири текущата. Така човек се озовава с много малки компонентчета, от които който и да е ако замине, има някакъв downtime на някаква услуга и съответно пожари за гасене. Разширяването на текущите системи, и дистрибутирането (доколкото е възможно) всичко да може да работи от всяка машина дава огромно scalability, издръжливост на атаки и доста по-спокоен сън. Аз лично трябва да гледам внимателно дали някой ни DoS-ва, понеже при нас нещата са достатъчно добре разпределени, че почти да няма кой да ни засили ефективна атака.
Според мен и така трябва да се борят DoS атаките.

Другото хубаво нещо, което написахме и което исках да пусна да се ползва публично, беше система за следене на трафика и загубата на пакети. При нас ползваме web сървър, който е вътрешно производство, и той праща по един пакет статистика за всеки connection, който е завършил, с данни колко байта и пакета са минали, към кой ip адрес, за колко време, тип на трафика и колко TCP retransmit-а е имало. На база на тази статистика и BGP таблицата аз мога да видя почасово към кои мрежи и автономни системи (и през кои пътища) имам повече загуби и да преценя дали искам да изместя част от трафика някъде другаде.
(след конференцията един приятел се нави да port-не нещото за apache и да пуснем колкото можем от него open-source, та може да има новини по темата скоро)

[слайд 24]

Та, ако ви е TL;DR лекцията, какво си струва да запомните:
1) имайте (добър) monitoring
2) правете нещата толкова просто, че да може да ги ремонтирате в 4 сутринта на пияна глава
3) Автоматизирайте
4) Имайте резервни варианти

(и пращайте корекции на тоя текст, че е писан на един път)

2012-11-04 Openfest 2012 предварителен recap

Sunday, November 4th, 2012

Свърши Openfest 2012, и въпреки че не бях в организацията пак съм скапан.
(дължи се на работа и участие в 4-5 лекции (2 мои))

Вероятно ще напиша нещо по-дълго тия дни, включително двете си лекции (Яна ще напише нейната част от лекцията за депресията).

И двете лекции се получиха доста добре, въпреки че втората не успяхме да я репетираме изобщо (и я дописвахме в неделя на обяд). Ето презентацията от първата (odp,pdf) и втората (odp, pdf). Мисля да помоля организаторите да ми дадат записа на втората да го пусна по-рано.

Специално за втората аз и Яна си бяхме дали адресите накрая, за хора, които имат нужда да си говорят с някой (vasil(at)ludost.net, yana(at)ludost.net), също така се включи и Нейчо Михов (neycho.mihov(at)gmail.com), ще добавя в тоя post (и като измисля някакъв сайт за целта – и там) адресите на всички останали желаещи да слушат другите.
Може би най-хубавото и неочаквано нещо беше колко много хора след това ми благодариха, казаха колко е била хубава лекцията и казаха, че сериозно са се замислили. Искам да благодаря на всички от “програмния комитет”, които бяха на моя страна за правенето на тая лекция, и най-вече на Стефан Кънев.

Също така мисля, че този openfest затвърди традицията аз и Стефан Кънев да се ебаваме един с друг. Той ми провежда “интервюта” и в предишните си презентации намираше къде да ме добави (в последната ме нямаше), а след историята със снимането обяви, че ако с мен се снимат 50 човека, ще направи продължение на intro клипчето от openfest.
(историята със снимането е как като бях отишъл на една лекция от курса по Python и си говорех с него в почивката дойдоха при нас няколко студента, той ги пита какво искат да питат и те му казаха – нищо не искаме да питаме, искаме да се снимаме с крокодила… Кънев много обича да я разказва тая история…)
След като с мен се снимаха много хора, аз в последния slide на лекцията за депресията сложих една снимка на Кънев, допипната от Лъчко, на която да изглежда депресиран и приканих хората да се снимат с него, за да го ощастливят. Погледнете, мисля, че Лъчко страхотно се е справил :)

В крайна сметка обаче той води – с мен се снимаха толкова хора, че в един момент ми беше трудно да гледам от всичките светкавици. Чудя се как да му организирам flash mob.

(а колко хубаво си допихме и куфяхме на afterparty-то, думи не могат да опишат, та оставям на някой друг да разкаже :) )

Update: iffi също се включи в списъка на слушащите.
Update 2: Стефан Кънев също се включи в списъка на слушащите.

2012-10-29 OpenFest 2012

Monday, October 29th, 2012

Идва OpenFest 2012, ще правя там две лекции.

Едната ще е за това колко по-лесно се поддържат 700 сървъра, отколкото 3 – според разни хора това би било интересно (за мен голяма част от нещата са твърде стандартни и ги пише по всичките книги). В последните 2-3 години насъбрах много забавен опит около това и се надявам да не се получи много скучно. Ще бъде от 17:00 в събота в зала София.

Другата ще е по любимата ми в последната една година тема за депресията, самоубийствата, проблемите в главата и други такива весели неща. Отдавна мисля, че е нужна подобна лекция – проблемът е голям в цялото IT общество, но всички се опитват да не го забелязват (при това доста успешно). Ще я водя заедно с Яна Петрова. Ще бъде в неделя в галерията от 14:00.
(имаше сериозен вой и отпор против лекцията, но и доста хора, които се заинтересуваха и бяха за)

Иначе, има още няколко интересни неща. Едното е лекцията на Венета Донова за юридическите моменти около поддържането на сайт и предлагане на услуги през него, от 12:00 в събота в зала София (за която поемам част от вината, аз я навих да я прави), другото е лекцията на Владо Василев за hackerspaces на балканите, в България и какво се случва в последната една година, от 15:20 в събота в галерията(където имам някакво минимално участие и третата (с която нямам нищо общо) е лекцията на Стефан Кънев за парадигмите в програмирането, от 11:15 в събота в зала София (поставя си много висока цел с тая лекция, да видим как ще се справи :) ).

(а мен ме чака още доста писане и редактиране, особено за втората ми лекция)

2012-10-26 скенери

Friday, October 26th, 2012

Преди няколко дни ми се обадиха да ми кажат “понеже < специфични причини>, трябва да подкараме тука един скенер под linux, да се сещаш някой да може да помогне, например в initLab?”. Понеже на мен ми беше леко скучно, седнах със Алекс Станев да видим какво можем да направим.

Хардуерът беше един Canon DR-3010C и към него Flatbed Scanning Unit 101 (който се водеше като допълнителна част към другия и че не може да работи отделно). Сашо с малко хакване беше успял да подкара самия DR със SANE (patch-ът беше тривиален и вероятно ще го submit-нат скоро), но с другото желязо имаше проблем.

След като със зор подкарахме нещото на един windows, за да го заслушаме и да видим как работи. Flatbed-а тръгна само със софтуера на canon, като преди това трябваше да няма лист в другото устройство, но видяхме малко комуникация и че изобщо работи. След като открихме, че протоколът му няма нищо общо с другия го отворихме, видяхме чиповете вътре, открихме, че е с GL846. Оказа се, че тоя flatbed си е съвсем отделен скенер, който може да се контролира директно, както и че в SANE има драйвер за близки до него чипове (в този чип стои целия контрол и USB-то, т.е. комуникира се директно с него). Пробвахме се да го подкараме със съществуващите драйвери, но явно има достатъчна разлика м/у чиповете, че да трябва да се пише.

Та решението на въпроса е в крайна сметка някой да отдели една седмица и да patch-не съществуващите драйвери (има си подробна документация) и да направи flatbed-а използваем сам по себе си – задачка за програмисти, интересната работа свърши:)

2012-10-23 openCoffee

Tuesday, October 23rd, 2012

Днес ме замъкнаха на странно събитие – openCoffee (в betahouse), на което се представяха две приложения, свързани с таксита. Едното беше в общи линии система за поръчване/намиране на таксита, другата – каталог на фирми, като и в двете имаше рейтинг, който да помага на хората да се ориентират. Като цяло първата идея беше по-интересна (taxiMe или нещо такова).

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

Втората па е тривиално атакуема, с един скрипт, който генерира рейтинги (направо бизнес може да се направи, “ще ви вдигнем рейтинга и ще преебем тоя на конкуренцията ви”).

Това обаче, което ми направи голямо впечатление е как специално вторите хора си мислеха (а май и първите), че само тяхното приложение може да говори с техните сървъри и ако някой реши да прави такива неща, ще му трябват милион телефони и download-и, реални хора и т.н., вместо просто да се reverse-не протокола (не повече от ден работа, ако ползват https и проверяват сертификати, 5-10 минути в противен случай). Направо си спомням в BOFH един израз, “It truly breaks my heart to see trust like that go unpunished”.

Някой ден трябва да се направи workshop “Как да чупим на хората хубавите и недомислени service-и”.

2012-10-21 записи от Sofia Wordcamp 2012

Sunday, October 21st, 2012

С позволението на организаторите:
Записи с description;
Директория.

(на Марио лекцията е отрязана наполовина (моя грешка, забравих да пусна записа), една друга не и се вижда презентацията (пак моя грешка, не оправих какво гледа камерата преди да си ида да водя моята лекция) и пак същата има прекъсване по средата (някой се спъна в камерата). Ако намерите други грешки, задължително пишете).