Posts mit dem Label Ruby werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Ruby werden angezeigt. Alle Posts anzeigen

Dienstag, 25. August 2009

Verteiltes Server-Monitoring: neighborhoodwat.ch

Erst vor wenigen Stunden im Netz aufgetaucht ist neighborhoodwat.ch (NHW). Einige Düsseldorfer haben die Idee eines verteilten Monitoring-Netzwerkes umgesetzt und bieten diesen interessanten Service an. Jeder, der einen Server überwachen lassen möchte, installiert auf einem seiner Server einen Agenten, der vom zentralen Server eine Liste mit URLs bekommt, die er fortan prüft. Aktuell bietet das System noch nicht viele Features. Es gibt z.B keine Historie. Aber mit einem derart verteilten Netz könnte man natürlich künftig interessante Aussagen über Performance und Verfügbarkeit aller Netze ermitteln, über die die Agenten verstreut sind.

Zur Prüfung meines Blogs, wollte ich den Service direkt mal ausprobieren. Zur Anmeldung kann man eine OpenID verwenden, die über viele Anbieter zur Verfügung steht. Da mein Blog über Google und Blogger läuft, lagen diese als IDs am nächsten. Aber leider bekam ich immer nur eine Fehlermeldung: Not found. Über den Twitter-Account der Betreiber (@thehoodwatch, @mutle) erfuhr ich dann, dass es noch Probleme gäbe und nur myOpenID aktuell sicher funktionieren würde.

Mit der OpenID von myOpenID funktionierte die Anmeldung dann ohne Probleme. Nach der Anmeldung landet man auf einer Übersichtsseite, die die überwachte Site und deren Staus anzeigt. Ohne Agenten tut sich hier aber noch nicht viel.

Für die Installation sind laut "Installationsbeschreibung" nur Ruby, Ruby Gems, Cron und natürlich ein NEIGHBORHOODWAT.CH-Account erforderlich. Darüberhinaus müssen noch gcc und g++ installiert sein, wenn Ihr wie ich Ruby selbst bauen wollt. Da auf dem Server noch kein Ruby installiert war, habe ich die Installation von Ruby (basierend auf Kates Gasis Anleitung) aber auf OpenSuSE 11 folgendermaßen durchgeführt:

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p368.tar.gz
tar -xzf ruby-1.8.6-p368.tar.gz
cd ruby-1.8.6-p368/
./configure --prefix=/usr/local --enable-pthread \
--with-zlib-dir=/usr/local \
--with-readline-dir=/usr/local
make
sudo make install


Anschliessend musste noch Rubygems installiert werden. Es wird keine Version vorgegeben, also die aktuelle Version 1.3.5 verwenden:

wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
tar -xzf rubygems-1.3.5.tgz
cd rubygems-1.3.5/
sudo ruby setup.rb


Jetzt sollte die Installation des Agenten folgen. Der liess sich leider auf der referenzierten Github-Seite (Liste der Gems) nicht direkt finden. Wie ich aus den Tweets von @mutle erfuhr, fehlte noch die Freigabe bei Github. Einige Stunden später lag der Agent in Version 0.0.7 via GitHub vor. Die Installation war noch ein wenig zickig, da die eventmachine in einer falschen Version gezogen wird, wenn man direkt den Agenten holen will. Deshalb zunächst die Gems eventmachine und json installieren:


sudo gem install eventmachine
sudo gem install json
sudo gem install mutle-neighborhoodwatch-agent \
--source=http://gems.github.com/


Über die WebSite von NHW musste nun noch der neuen Agent angelegt und über "Instructions" die ID des Agenten abgeholt werden. Nachdem die Gems installiert waren, konnte nun der Agent aufgerufen und die ID übergeben werden. Das funktionierte auf Anhieb. VORSICHT: Nach dem ersten erfolgreichen Aufruf kann man die ID nicht mehr über die WebSite von Neighborhoodwat.ch abrufen.

neighborhoodwatch-agent <agent id>

Nun noch der Eintrag in die crontab:

*/5 * * * * neighborhoodwatch-agent <agent id>

Der Prozess muss nicht mit Root-Rechten gestartet werden, so dass die ganze Installation mit einem unpreviligierten User möglich ist.

Bislang funktioniert die Benachrichtigung über Störungen nur per eMail. Ich hoffe, das die Ergänzung um Twitter als Meldekanal in Kürze nachgereicht wird.

Mittwoch, 22. April 2009

JAX 09 - Tag 3 - Retrospektive

Last- und Stresstest mit the Grinder 3

Andreas Spall stellte in seinem Short-Talk Grinder 3 als Lasttesttool und Alternative zu JMeter vor. Von einer Konsole aus steuert man über Agenten auf verschiedenen Rechnern diverse Worker die die Last erzeugen. Mit Grinder soll sich das Aufzeichnen und Abspielen gut durchführen lassen.


Keynote: JRuby Past, Present and Future

die Keynote zu JRuby von Charles Nutter hat Michael Johann (Chefredakteur des Magazins RailsWay) perfekt zusammengefasst: Artikel. Es war eine beeindruckende Präsentation, da sämtliche Beispiele "in Echtzeit" nachvollziehbar von Ihm gecoded wurden.


Komplex, oder doch nur kompliziert?

Der letzte Talk am 3. Tag drehte sich wieder um Projektmanagement. Guido Zockoll zog eine sehr interessanten Vergleich zum Schachspiel mit Start-, Mittel- und Endspiel. Zu Beginn des Schachspiels ist die Stellung bekannt und man hat ein einfaches Problem vorliegen, das man nach Katalog der Spieleröffnungen spielen kann. Beim Endspiel (z.B: König mit Pferdchen und Läufer gegen den verbliebenen gegnerischen König) ist es ein schwieriges bzw. kompliziertes Spiel, das aber auch mit Disziplin und Übung lösbar ist. Ganz anders sieht es im Mittelspiel aus, wenn die Figuren über das Spielbrett verteilt sind. Hierbei handelt es sich um ein komplexes Spiel, in dem sich der Schachspieler mit unüberschaubar vielen Möglichkeiten konfrontiert sieht, die er mit Bauchgefühl, Erfahrung und Heuristiken (Pferd am Rand bringt Kummer und Schand) angeht.

Übertragen auf die IT bzw. das Projektmanagement zeigt sich, das Projekte wesentlich komplexer sind als Schach, da die "Felder, Figuren und Zugmöglichkeiten" wesentlich umfangreicher bzw. Variantenreicher sind. Aber die Lösungsansätze können gut übernommen werden. Ein Schachspieler passt seine Vorgehensweise der Situation entsprechend an. Ein Projektleiter sollte das auch tun.

Dienstag, 21. April 2009

JAX 09 - Tag 2 - Retrospektive

Ein langer JAX-Tag geht zuende. Von 9 Uhr bis 21 Uhr Vorträge, Diskussionen, Eindrücke und kleine Pausen bei Nahrungsaufnahme und Retrospektive.


42 für Architekten

Verglichen mit Gebäude-Architekten haben es die Software-Architekten noch sehr schwer. Es gibt keine allgemeinen Standardisierten Notationen, die innerhalb geschweige denn außerhalb der Branche eindeutig verständlich sind. Bei Grundrissen z.B. ist das anders. Im Endeffekt schlägt Dr. Starke vor, sich an den von Ihm und seinem Kollegen erstellten Dokumentationsstandard Architektur 42 zu orientieren oder zu halten, da er in seinen Projekten gute Erfahrung mit dessen Verständlichkeit und Umfang gemacht hat. Auf der Website (arc42.de) finden sich weiterführende Unterlagen und ein Template für die Architekturbeschreibung.


Keynote Opensource und Rezession

Was können wir in der Rezession tun, um unseren Arbeitsplatz und unsere Arbeit zu sichern? Brian Kim legt die Vorteile von Open Source Software (OSS) dar. Firmen orientieren sich gerade jetzt noch stärker hin zu OSS um Kosten zu sparen. D.h. in der Konsequenz, das Entwickler mit OSS-Background bessere Chancen haben. Und wer gar als Contributor oder Committer für OSS aktiv ist, steigert seinen Wert umso mehr. Deshalb empfielt er kurzgesagt: "Gehet hin und werdet Committer für Open Source Projekte!".


Inbox Zero

Ein sehr gut gemachter und sehr kurzweiliger Vortrag war die Vorstellung der Inbox Zero Methode inklusive möglicher Anwendungen für die Softwareentwicklung von Stefan Roock. Da auch meine INBOX niemals leer wird, werde ich dieser Methode eine Chance geben und nach der JAX meine INBOX aufräumen. Über meine Erfahrungen mit diesem Selbstexperiment und Näheres zur Methode werdet Ihr hier sicher bald mehr lesen.

Aufschlussreich war im zweiten Teil seiner Vorstellung auch die Übertragung der Methode auf die Softwareentwicklung. D.h. dort die wachsenden Listen z.B. der Hindernisse bei SCRUM, der Refactoring-Bedarfe oder der gemeldeten Bugs reduzieren und klein zu halten.


JRuby goes Twitter in 50 Minuten

In einem viel zu klein geratenen Seminarraum stellte Michael Johann in einer Art Crash-Kurs JRuby dadurch vor, dass er den Twitterdienst in 50 Minuten rudimentär nachgebaut hat. Das kam nicht ganz so souverän rüber, wie der gleichgelagerte Grails-Anlauf, war aber sehr unterhaltsam. Insb. der intensive Einsatz von Textexpander war ein steter Quell der Heiterkeit.


Keynote: Neal Ford

Zum Abschluss des JAX-Tages gab es für alle anwesenden Entwickler einen eindringlichen und aufrüttelnden Appell von Neal Ford doch endlich aus der Vergangenheit zu lernen. Wir sollen die Fehler nicht wiederholen, sondern aufstehen und es besser machen. Sonst werden wir einfach von der nächsten Outsourcing Welle von China und Indien überannt. In Indien sind z.B. mehr hochbegabte Studenten in einem Semester, als in den USA insgesamt Studenten eingeschrieben sind, da die Zahl der Studenten einfach viel höher ist.

Der Vortrag war sehr beeindruckend und das Auditorium mucksmäuschen still.