wtorek, 28 września 2010

RIPE Labs: rozproszony, aktywny monitoring

W każdej chwili w Internecie gdzieś jest jakaś awaria.

Część tych awarii ma punktowych charakter i nie oddziaływuje na ruch na całym świecie. Czasem jednak, np. w wyniku zabaw z Bardzo Groźnym Protokołem, może pojawić się spore zamieszanie.

Jak już jesteśmy przy RIPE, warto w tym miejscu wspomnieć o jednym z ostatnich projektów RIPE Labs: Active Measurements. Pomysłodawcy wyszli z założenia, że nic tak dobrze nie będzie monitorować osiągalności kluczowych elementów sieci jak... rozproszona baza użytkowników końcowych.

Jest to zresztą naturalne rozwinięcie koncepcji innego projektu: DNSMON. O ile DNSMON używa sieci dedykowanych serwerów testowych (Test Traffic Measurements boxes), to aktywny monitoring zmierza w kierunku wykorzystania zminiaturyzowanych sond, które można tanio i łatwo instalować nawet u końcowego użytkownika. Poza rozmiarem, siłą tych sond jest ich docelowa liczebność - dziesiątki tysięcy lub więcej. Dzięki temu chwilowe problemy w pracy niektórych z sond będą tylko anomalią statystyczną.

Przy tak dużej liczbie, w każdej chwili gdzieś w Internecie będzie pracować jakaś sonda. ;)


Więcej informacji o projekcie:

poniedziałek, 27 września 2010

Wzorce skalowania

Trafiłem niedawno na interesującego posta Scalability patterns and an interesting story... Autor wyróżnił pewne uniwersalne wzorce spotykane przy skalowaniu (rozumianym jako scale out, nie up) oprogramowania. Lubię porządek więc przytoczę. ;)
  1. dystrybucja obciążenia
    • równoważenie obciążenia
    • partycjonowanie
      • poziome
      • pionowe
  2. zrównoleglanie
  3. luźne wiązanie
  4. kolejkowanie i paczkowanie

sobota, 25 września 2010

Postępy DTrace we FreeBSD

Jak informuje blog Fundacji FreeBSD, zakończono projekt implementacji DTrace we FreeBSD. Ostatnim krokiem było wsparcie dla instrumentacji aplikacji.
Since DTrace on FreeBSD now has the ability to instrument both the kernel and the userland program, you can get very meaningful data on how your program is behaving and why.
DTrace to drugi po ZFS killer-feature Solarisa zaimplementowany pod FreeBSD.

Ciekawe, czy w przyszłości wyrocznia będzie równie łaskawa dla tego typu dzielenia się dobrymi rzeczami, co słoneczko.

czwartek, 23 września 2010

RouteBricks

Rok po roku opensource podgryza kolejne przyczółki branży IT, okupowane dotąd przez rozwiązania komercyjne.

Są takie miejsca, w których ekspansja jest łatwa - dziś już chyba nikt nie wyobraża sobie płacenia za program do przeglądania zdjęć? Choć wiem, że niektórzy płacą np. za edytory tekstu ze wsparciem dla programowania ;) W innych przypadkach idzie nieco trudniej - choćby "ekspansja" Linuksa na desktopach... Są i takie, w których wejście na lukratywny rynek jest bardzo trudne - we wpisie z Open Source Day 2010 przytoczyłem przykład profesjonalnych baz danych.

Innym tego typu obszarem są urządzenia sieciowe. Widać postęp - od lat wiele urządzeń w segmencie SOHO (np. routery bezprzewodowe) to po prostu małe komputerki oparte np. o MIPS-a, z Linuksem w środku. Otwartość oprogramowania to tylko jeden z czynników, krytyczny jest jednak wzrost możliwości obliczeniowych architektury PC. Co by nie mówić o tym wzroście, przy wysokowydajnym przełączaniu pakietów IP, PC nie jest w stanie konkurować ze specjalizowanymi układami. Ale i tak kawałek tortu jest podgryzany, obsługa dziesiątek czy setek megabitów ruchu IP na pececie nie jest wielkim problemem. We wpisie z meetBSD 2010 pisałem o ekstremalnym rozwiązaniu pewnego bułgarskiego ISP, opartym o FreeBSD. ;) Elastyczność platformy PC w roli routera nie zawsze jest atutem, toteż powstają takie produkty jak Vyatta. Jest jednak poziom, z którym trudno się równać.


Trafiłem jednak w sieci na dający nadzieję artykuł: Software Router Smashes Speed Records. Ostateczne, jeśli procesor PC wciąż jest za słaby, można poszukać mocy w karcie graficznej. Można też zainstalować karty z układami FPGA. Oczywiście, wciąż ogranica nas magistrala. Istnieje równiez inicjatywa RouteBricks korzystająca z Clicka, gdzie wydajność routowania skaluje się... zrównoleglaniem, czyli zwiększając liczbę pecetów. Niestety, prototyp rozwiązania wciąż nie jest komercyjnie dostępny.

niedziela, 19 września 2010

e-Bawidełko

Mianem e-bawidełka określił "komputery dla dziecka do nauki" jeden z komentujących posta Darmowe komputery przeszkadzają w nauce. Według mnie bardzo trafnie. Komputer jako narzędzie niesie pewne szanse, ale i ryzyka.

Niewątpliwą szansą jest możliwość dostępu do potężnej bazy wiedzy i (z czasem) nabrania biegłości w odrzucaniu rzeczy nieistotnych.

Ryzykiem jest upośledzenie rozwoju psychoruchowego, utrata koncentracji i tracenie czasu na bzdety. Jest wiele fascynujących serwisów Web 2.0, społecznościowych i znajomych w komunikatorze. Można tym wszystkim spokojnie wypełnić dobę, nawet kosztem snu.

Kluczowa jest więc umiejętność odmówienia sobie rozrywki. Które dziecko potrafi coś takiego? ;)

Zabrzmi to niewiarygodnie, ale największy rozwój moich kompetencji IT przypadł na czas, w którym nie miałem komputera. Czytałem wtedy książki lub czasopisma. ;) Dostęp do komputera i Internetu miałem w szkole i tam - w ograniczonych ramach czasowych - zajmowałem się dokłanie tym, co mnie interesowało.

Jeśli ktoś chce wydawać cudze pieniądze na sponsorowanie komputerów dla dzieci, to pewnie ma jakieś dowody na dobroczynny wpływ komputerów na intelekt dziecka? ;) Cytacik z Computers at Home: Educational Hope vs. Teenage Reality:
Students posted significantly lower math test scores after the first broadband service provider showed up in their neighborhood, and significantly lower reading scores as well when the number of broadband providers passed four.

piątek, 17 września 2010

Slajdologia

Podejmujesz dużo ważnych decyzji i nie masz czasu wnikać w ich materię? Nic trudnego, wystarczy poprosić interesariuszy o prezentacje w postaci slajdów.

Slajdy są jak papier - zniosą wszystko. Ba, są nawet lepsze, jeśli plik źródłowy nie zostanie rozpowszechniony - nie zostawiają śladów. Dobre slajdy mogą uzasadnić niejeden pokrętny Business Case. Slajdy są proste więc nawet dziecku łatwo je zrozumieć. Na slajdach można się też uprawiać korpoślizg - prezentujący sprzedaje się szerokiemu i ważnemu gremium jako kumaty gość, podczas gdy wsad do slajdów powstaje w mało widowiskowej, żmudnej pracy wielu szarych ludzi.

Oczywiście, nie chodzi o slajdy same w sobie (one są bardzo przydatnym narzędziem), lecz o to, jak wpływają na kulturę podejmowania decyzji.

Natknąłem się ostatnio w sieci na kilka niepochlebnych opinii nt. stosowania PowerPointa. Co prawda pochodzą one ze środowisk wojskowych, ale procesy decyzyjne zachodzą również w organizacjach cywilnych - zatem pozwolę sobie zacytować i polecić lekturę. ;)

We Have Met the Enemy and He Is PowerPoint
  • PowerPoint makes us stupid
  • It's dangerous because it can create the illusion of understanding and the illusion of control

Dumb-dumb bullets
Unfortunately, as soon as they graduate, our people return to a world driven by a tool that is the antithesis of thinking: PowerPoint. Make no mistake, PowerPoint is not a neutral tool - it is actively hostile to thoughtful decision-making. It has fundamentally changed our culture by altering the expectations of who makes decisions, what decisions they make and how they make them.

środa, 15 września 2010

NetBSD Packet FIlter - YAPF?

Jak informuje osnews.com, w NetBSD pojawi się NetBSD Packet Filter.

Czyżby Yet Another Packet Filter? Tak, na dodatek design NPF-a zapowiada się interesująco. Jednym z elementów ma być zdolny do pracy wieloprocesorowej, zainspirowany BPF-em, rozszerzalny silnik dopasowujący pakiety o nazwie N-Code.

No cóż, niech piszą... z OpenBSD-owego pf-a też się kiedyś śmiali, że bezsensowna robota skoro jest ipf. A jednak pf jest naprawdę świetny. Może npf będzie jeszcze lepszy? ;)

poniedziałek, 13 września 2010

DNSSEC u bram

Trafiłem niedawno na całkiem przyjemne wprowadzenie do DNSSEC (artykuł w serwisie Heise Online). Warto rzucić okiem.

Już widzę te problemy obsługi klienta z debugowaniem nowej klasy problemów w działaniu Internetu. ;) A tak serio, lepiej mieć te rozszerzenia późno niż wcale - klasyczny DNS, podobnie jak np. SMTP, ma trochę naiwne podejście do spraw bezpieczeństwa w sieci.

środa, 8 września 2010

DevOps - utopia czy źródło przewagi konkurencyjnej?

Czy deweloperzy powinni mieć dostęp do systemów produkcyjnych?
Odpowiedź na to pytanie wydaje się prosta. Oczywiście, że tak/nie! (zależnie, kto odpowiada). ;-)

 

W dużych firmach o strukturze silosowej zwykle podział ten jest "naturalny". Z kolei w małych firmach, gdzie wszyscy zajmują się wszystkim, podziału takiego nie ma. Rozdzielenie rozwoju systemów od ich utrzymania ma niewątpliwie pewne zalety, ale wydaje się, że zyskuje ostatnio na popularności trend odwrotny - nazwany DevOps.
Aby dobrać właściwy model, należy przeanalizować potrzeby i ograniczenia konkretnej organizacji. Osobiście skupiłbym się przede wszystkim na następujących czynnikach:
  • niezawodność/dostępność - deweloperzy bez doświadczenia utrzymaniowego mogą zwyczajnie zagrozić stabilności środowiska produkcyjnego
  • integralność - deweloper majstrując przy wnętrzu aplikacji na produkcji może np. rozspójnić dane
  • poufność - deweloper z dostępem do produkcji to dodatkowe potencjalne źródło wycieku danych
  • wymogi formalne - przepisy prawa mogą wymuszać na danej organizacji wyraźne odseparowanie rozwoju systemów od środowiska produkcyjnego
  • generyczność aplikacji - system może być rozwijany pod to jedno, konkretne wdrożenie i wymaga głębokiej wiedzy o zachowaniu systemu na produkcji
  • zmienność - systemy bywają modyfikowane bardzo często lub np. raz na kilka lat
  • skuteczność - rozwiązywanie problemów bez dostępu do produkcji może być trudne, długotrwałe, a przez to kosztowne
  • procedury i struktura firmy - procedury bywają stosowane bezmyślnie, dodatkowo rozdział rozwoju od utrzymania generuje więcej stanowisk dla menedżerów, którzy mogą mieć słabą komunikację lub wręcz konkurować
Tak więc należy ustalić, czy w danej sytuacji deweloper na produkcji bardziej szkodzi czy pomaga? I jeśli nie ma naprawdę dobrych powodów uzasadniających ścisłą separację rozwoju od eksploatacji, tej separacji warto po prostu unikać jako szkodliwego narzutu. :)

Niektórzy idą dalej i łączą obie funkcje: rozwój i eksploatację (we code and run). Wydaje mi się, że to nie zawsze ma sens, np. w przypadku aplikacji biznesowych, gdzie duży wysiłek dewelopmentu to prace analityczne. Ale w przypadku aplikacji webowych, tolerujących krótkotrwałe przestoje i zdolnych testować nowe funkcjonalności na końcowych użytkownikach - jak najbardziej.

Sporo ciekawych uwag na ten temat można przeczytać we wpisie Should Developers have Access to Production? oraz jego komentarzach.
 
Tematyka zaszczepiania DevOps nie tylko przy utrzymaniu środowisk web, ale w organizacjach typowo biznesowych (w tym przekonywania menedżerów do tego podejścia), jest także tematem niniejszych paneli InfoQ:
Uczestnicy zwracają w nich uwagę m.in. na:
  • model DevOps to nie zwykła zmiana organizacyjna lecz zmiana kultury (rozbijanie silosów) i nie należy jej wprowadzać odgórnie, raczej przez dobry przykład
  • można pokazać DevOps jako podejście ułatwiające osiągnięcie celów biznesowych organizacji
  • istotne jest wcześniejsze ustalenie dobrych metryk (KPI) - bez tego nie da się menedżerom pokazać, czy zmiana cokolwiek poprawiła (np. skrócony TTM)
  • metryki należy monitorować i stopniowo doskonalić organizację
  • dla menedżerów wyższego szczebla często nie liczą się już liczby, lecz zaszczepienie wizji

 
Podsumuję cytatem z posta What Is This Devops Thing, Anyway?
Devop requires a certain state of mind. It's an attitude which says: I'm going to make a difference, I'm going to cooperate and communicate, and I'm going to understand that in the business of delivering great software, we're all in it together. If you're a sysadmin, this means spending time with the developers. (...) If you're a developer, go and make friends with your sysadmins. Don't view them as lower life forms, or as people to lob problems to. Go and join in - pair with them.

Brzmi jak utopia? ;-)

środa, 1 września 2010

Rola szkoły

Nastał wrzesień. Czas wspominek o II Wojnie Światowej, rocznic solidarnościowych, jęk szklany deszczu i szkolnych dzwonków.

Z okazji rozpoczęcia roku szkolnego postanowiłem nawiązać do roli edukacji szkolnej w dzisiejszym społeczeństwie i polecić leciwy już nieco esej Paula Grahama: "Why Nerds are Unpopular".

Autor analizuje w nim przyczyny niskiej popularności społecznej tzw. nerdów. Przyrównuje także szkołę do organizacji typu więziennego, gdzie dorośli celowo skoszarowują swoje dzieci, które są w dzisiejszym społeczeństwie nieużyteczne (wydłużony czas edukacji potrzebnej do podjęcia jakiejkolwiek pracy, zakaz zatrudniania dzieci), może nie licząc tradycyjnej pracy na wsi przy żniwach. Po prostu nie ma co z nimi zrobić, nie ma ich kto pilnować - więc zbierzmy ich w jedno miejsce, postawmy kilku dorosłych do pilnowania i dajmy do wkucia pełno niepotrzebnych rzeczy. Lepsze to, niż żeby łazili w samopas po mieście i psuli nasze mienie. :-)

Moim zdaniem jedną z najważniejszych rzeczy, które mogą w tej sytuacji zrobić rodzice, to zaszczepiać dziecku zdolność samodzielnego myślenia, żeby nie zatonęło w szkolnej masie postępującego zidiocenia i jednomyślności.


Na zachętę cytacik:
Public school teachers are in much the same position as prison wardens. Wardens' main concern is to keep the prisoners on the premises. They also need to keep them fed, and as far as possible prevent them from killing one another. Beyond that, they want to have as little to do with the prisoners as possible, so they leave them to create whatever social organization they want. (...) What bothers me is not that the kids are kept in prisons, but that (a) they aren't told about it, and (b) the prisons are run mostly by the inmates. Kids are sent off to spend six years memorizing meaningless facts in a world ruled by a caste of giants who run after an oblong brown ball, as if this were the most natural thing in the world. (...) Now adults have no immediate use for teenagers. They would be in the way in an office. So they drop them off at school on their way to work, much as they might drop the dog off at a kennel if they were going away for the weekend. (...) Someone has to watch over them, and the most efficient way to do this is to collect them together in one place. Then a few adults can watch all of them. (...) This is the sort of society that gets created in American secondary schools. And it happens because these schools have no real purpose beyond keeping the kids all in one place for a certain number of hours each day. (...) If life seems awful to kids, it's neither because hormones are turning you all into monsters (as your parents believe), nor because life actually is awful (as you believe). It's because the adults, who no longer have any economic use for you, have abandoned you to spend years cooped up together with nothing real to do. Any society of that type is awful to live in. You don't have to look any further to explain why teenage kids are unhappy.