Seit der gestrigen Nacht befindet sich Skype, der populäre VoIP-Client, auch in einer offiziellen iPhone-Version im App Store. Der kostenlose Download ist ein bisschen über 2MB groß und bietet Telefonate zu Skype-Kontakten sowie SkypeOut-Nummern via WiFi an.
Anrufe aus dem UMTS-Netz oder via getunnelter VPN-Verbindung sind nicht möglich. Den Chat kann jedoch mit jeder verfügbaren Internet-Verbindung aufgebaut werden.
Allgemeine Diskussion brach am gestrigen Montag aus, als sich die T-Mobile PR-Abteilung (auf Medien-Nachfrage) zu dem VoIP-Programm zu Wort meldete.
Pressesprecher von Schmettow ließ verlauten, das „der Schutz unserer Netz-Performance im Vordergrund steht“ und das die Deutsche Telekom nicht für die gleiche Sprachqualität der Skype-Gespräche gegenüber des Mobilfunk-Netzwerks garantieren könnte. Da man Angst hat, das solche ‚Qualitätsmängel‘ von den Kunden auf T-Mobile zurückgeführt werden könnte, wurde mit Verweis auf die Nutzungsbedingungen angekündigt, Skype-Gespräche sowohl über UMTS als auch den T-Mobile Hotspots zu verhindern.
Die technische Realisierung der ‚Blockierung‘ bleibt abzuwarten. Bislang verhindert T-Mobile die Nutzung von Instant Messanger-Programmen jedoch nicht und auch mit der nativen Skype-Applikation lassen sich zum Zeitpunkt dieses Artikels Skype-Gespräche über die T-Mobile Hotspots führen.
Zum eigentlichen Skype-Progamm: Jailbreak-Geräte scheinen einige Programm-Abstürze zu verzeichnen. Auf meinem – seit Gestern – nicht mehr ‚aufgehackten‘ Gerät läuft das Programm zufriedenstellend. Nicht gerade schnell, aber ausreichend. Die Applikation ist in seiner jetzigen Version zweckmäßig.
Aus allen Ecken zwitschert es bereits, dass der Aufbau einer Telefon-Verbindung über die Skype-Applikation mit der Entwickler-Firmware 3.0 kein Problem darstellt. Florian Schimanke hat dazu erste Erfahrungen im UMTS- als auch EDGE-Netz gesammelt und in seinem Weblog veröffentlicht.
In Österreich sieht Mobilfunkanbieter Orange „Skype nicht als Konkurrenz“ und gibt bekannt, das man keine VoIP-Verbindungen vom iPhone blockieren möchte. Zum derzeitigen Stand hilft die Cydia-Applikation ‚voipover3g‘ zur Verbinungsherstellung auch aus dem deutschen Netz. Ein Jailbreak ist dazu jedoch erforderlich genau wie für die VPN-Anleitung von noola.
Radio-Applikationen gibt es im App Store wie Sand am Meer.
Ein Gesamtüberblick des Marktes für Internet-Streaming Programme wäre sicherlich nett, erfordert jedoch ein Unmaß an Zeit. Und da wir diese irgendwie alle nicht übrig haben, vertraue ich auf die fleißige Nennung empfehlenswerter Software-Radioempfänger in den Kommentaren.
Meine persönlichen Erfahrungen habe ich bislang mit allRadio (0.79€; App Store-Link) und FStream (kostenlos; App Store-Link) gesammelt und hier bereits aufgeschrieben. Jetzt durfte ich Wunder Radio (4.99€; App Store-Link) ausprobieren und reiche meine Praxiserlebnis nach, da das Programm von ‚Weather Underground‘ eine andere Preiskategorie und technische Herangehensweise anvisiert.
Wunder Radio fragt beim ersten Starten ob es eure derzeitige Geo-Position ermitteln darf. So werden lokale Radiosender aufgespürt. Die Auswahl ist mit über 30.000 Stationen beziffert und natürlich nicht regional beschränkt.
Als alteingesessener Bremer höre ich so von Zeit zu Zeit aus München trotzdem gerne den Radiosender Bremen Vier. In Zusammenarbeit mit RadioTime findet die iPhone-Applikation tausende von Internet-Streams. Sowohl die Buffering-Zeit als auch die Bitrate können während des Hörens angepasst werden. Eingebettet ist der Stream in ein praxistaugliches und optisch ansprechendes Interface.
Das Programm setzt den Musikstrom auch mit ausgeschaltetem Display fort, die Applikation darf jedoch nicht beendet werden. Soweit so bekannt. Mitgedacht wurde bei der Installation des eingebauten Web-Browser. Um kurz eine Webseite anzusurfen, müsst ihr die Applikation und damit euren Musikgenuss nicht beenden. So können zu den abgespielten Titeln auch dessen Interpret und Album nachgeschlagen werden.
Leider lassen sich derzeit noch keine eigenen Stream-Adressen eingeben. Durch Empfehlungen ‚wer diesen Radiosender gehört hat, hört auch…‘ findet ihr aber bestimmt ein Angebot zum persönlichen Musikgeschmack. Durch die flexiblen Einstellungsmöglichkeiten seitd ihr auch bei schlechtem Empfang gerüstet um eine Live-Berichterstattung, aktuelle Nachrichten-Sendungen oder den unterschiedlichsten Musikgeschmack zu befriedigen.
Der amerikanische Schutzhüllen-Produzent Speck fertigte für die bereits abgefeierte ‚Game Developers Conference‘ ein exklusives Dexter-Case, das als Werbegeschenk an die Messe-Besucher verteilt wurde.
Irgendjemand spürte am vergangenen Wochenende das oben eingebundene YouTube-Video auf und spekulierte daraufhin in die ‚Wolke des Internets‘ über eine neue Benutzeroberfläche der Cydia-Applikation. Zwar wurde diese ‚Information‘ unhinterfragt auf alle Online-Plakatwände gekleistert, richtiger wurde sie dadurch jedoch nicht.
Erst jetzt bekennt sich das Ripdev-Team zu seinem neuen Icy-Programm für das iPhone. Dabei handelt es sich um einen ‚open-source Paketmanager‘ mit dem Jailbreak-Verzeichnise hinzugefügt und inoffizielle Programme installiert werden können.
Huh. Kommt euch bekannt vor?
Genau. Nennt sich Cydia, ist ein bisschen ’schwerfälliger‘ und ohne Breitbildmodus, dafür aber weitreichend etabliert und mit erweitertem Funktionsumfang. Was Jay Freeman (aka Saurik) – der Cydia-Entwickler – zum ‚leichtfüssigen‘ Ripdev-Programm sagt, verrät er in den Kommentaren bei iClarified.
One thing that should be noted: they decided to reimplement APT, and they didn’t reimplement it well. They only support package dependencies, for example: they ignore any information on conflicts
‚The Wall Street Journal‘ möchte die Gerüchte der letzten ’skype-geprägten‘ Woche bestätigt wissen und setzt als App Store-Veröffentlichungstermin der nativen VoIP-Applikation ‚Skype‘ den morgigen Dienstag an.
1up-Redakteur Justin Haywald sprach auf der ‚Game Developers Conference‘ mit Keita Takahashi. Der kreative (und teils wirre) Kopf hinter Katamari Damacy verriet dem Videospiel-Magazin, dass sein aktueller PlayStation 3-Hit ‚Noby Noby Boy‘ auf für das iPhone erscheinen wird.
Die Namco Bandai-Produktion erschien diesen Februar exklusiv im PSN-Store, wurde jedoch auf einem Xbox-Entwicklungskit zusammengeschustert. Bei Noby Noby Boy dehnt und leiert ihr ein wurmartiges Wesen, vertilgt haufenweise Gegenstände und springt durch ein abgefahrenes Weltraum-Szenario.
Eine Integration der RIM-Software würde zumindest in die Business-Strategie von Apple für das iPhone passen. Im letzten Jahr wurde dazu bereits das Microsoft ActiveSync-Protokoll in die Firmware aufgenommen.
Über Sinn (und Unsinn) bezüglich der Kosten und Zweckmäßigkeit des BlackBerry-Services lässt sich streiten. Genau wie über die Konkurrenzsituation und welche Zielgruppe mehr von einer Verzahnung profitieren könnte.
Jedoch bleibt der Grundgedanke aktuell. Bereits im Vorfeld der WWDC 2008 wurden die gleichen Gedankenspiele von einigen Webseiten geäußert.
Wer die Schlagwörtern ‚Dr. Wily‘, ‚Dr. Light‘ und ‚Rockman‘ dem korrekten Videospiel zuordnen kann, ist mit diesem Artikel thematisch an der richtigen Stelle. Leider, und soviel sei gleich vorweggeschickt, lockt ‚Mega Man II‘ für das iPhone ausschließlich die absoluten Enthusiasten in den App Store.
Wenn überhaupt.
Die Mega Man-Franchise ist bekannt – wenn nicht sogar berüchtigt – für ihr einzigartiges Spielprinzip: Der klassische Plattformer bei dem eine kleine springende Figur von links nach rechts – durch einen 2D-Plattenbau streift, trifft am Schluss auf einen Endgegner.
Soweit so simple!
Dieses – so einfache – aber grandiose Spielprinzip hat bereits die Früchte von über 100 Lizenz-Versionen zu Tage gefördert. Bei den guten Titeln der Serie durften sich am Schwierigkeitsgrad die Zähne blank gebissen werden.
Für die App Store-Version hat Capcom diesbezüglich Mist gebaut. Zwar sind drei unterschiedliche Schwierigkeitsstufen anzuwählen, jedoch wurde das „gameplay for the iPhone experience rebalanced“.
Und das ist nun mal wirklich Quatsch. Wenn ihr in keine Abgründe stürzt, ist eure vollständig geladene Lebensleiste kaum zu minimieren.
Ihr trefft den neben auch stehenden Gegner nicht? Lauft doch einfach durch ihn durch! Endgegner-Kämpfe dürfen ohne jegliche Rücksicht auf Verluste innerhalb von Sekunden gewonnen werden.
Nein. Obwohl Sound und Grafik eine schöne Rückreise in die (Kindheits-)Vergangenheit sind, bleibt Mega Man II auf dem iPhone insgesamt zu unrund. Absolute Fans ärgern sich sicherlich nicht für 14 Level 4€ zu investiert zu haben, ein antiquierter GameBoy plus Modul verspricht jedoch weitaus mehr Spielspaß.
* Alle selbstproduzierten Videos gibt es ‚iPhone-kompatibel‘ auch in unserem Podcast-Feed, den ihr beispielsweise über iTunes oder einem anderen Multimedia-Verwaltungsprogramm eurer Wahl abonnieren könnt.
Welche Baumarkt-Komponente saugt und napft, dient zum Auswechseln von Leuchtmitteln, passt in jede Hosentasche und macht auch als kostengünstige iPhone-Halterung eine gute Figur?
Spätestens seit Januar war uns bewusst das wir etwas tun müssen. Die Ladezeiten und Ausfälle des iPhoneBlog waren nicht mehr die Ausnahme, sondern die Regel. Das nervte nicht nur uns sondern auch euch in zunehmendem Maße.
Seit etwa einer Woche sind unsere Pläne umgesetzt und das iPhoneBlog sollte mit Ausnahme des Feeds wieder zuverlässig und schneller als je zuvor erreichbar sein. An dieser Stelle noch mal der dringende Hinweis. Solltet ihr Probleme mit dem Feed haben, abonniert ihn neu. Die Korrekte Feed Adresse ist:
https://www.iphoneblog.de/feed/
Soweit die Neuigkeiten. Im folgenden eine Schilderung was wir unternommen haben. Dies könnt ihr aus Interesse lesen, als Ratgeber für euren Blog sehen, oder einfach ignorieren. iPhone Relevanz nicht gegeben.
iPhoneBlog.de wurde seit Herbst Ende letzten Jahres auf meinem alten Hetzner Dedicated Server – DS3000 – gehostet. In einer damaligen Nacht und Nebel Aktion zogen wir die Seiten notgedrungen dorthin um. Der alte Anbieter (server4you) hatte ohne Vorankündigung die Seiten Offline genommen und den Vertrag gekündigt (zu hohe Last).
Nun lag die WordPress Installation und alles was so dazu gehörte auf einem Athlon 3000XP mit 1GB RAM. Das war besser als zuvor, aber auch schon lange nicht mehr Zeitgemäß. Den Normalbetrieb konnte der Server gut verkraften. Zu Spitzenzeiten schaukelte er sich jedoch immer öfter bis zur völligen Erschöpfung hoch. Wie zuletzt beim Live Event zur Vorstellung des iPhone OS 3.0 Noch am Abend dieses Tages hatten wir beschlossen neue Hardware zu mieten die uns für die nächsten Monate bzw. Jahre reichen wird.
Unsere Anforderungen sahen Folgende Punkte vor:
4GB Arbeitsspeicher oder mehr
Mindestens 2 CPUs lieber 4
1TB Traffic inklusive
keine 2 Man Show Anbieter
Hosting in Deutschland
monatliche Kosten unter 80€
Der Markt der Serververmieter ist recht Komplex. Aufgrund der sehr guten Erfahrungen in den letzten 5 Jahren viel unser erster Blick auf die aktuellen Angebote von Hetzner. Bis auf server4you und serverloft.de gab es auch keine Alternativen. Andere Anbieter die das Preislimit halten konnten schienen teils unseriös oder machten sonst einen seltsam Eindruck. Server4You schied aufgrund der Vergangenheit auch aus.
Entschieden haben wir uns für das Angebot von serverloft. Dies hatte mehrere Gründe. Unabhängig davon dass das Hetzner Angebot unsere Anforderungen abdeckte und zudem günstiger war konnten wir der doppelten Anzahl an CPU Cores nicht widerstehen. Zudem bestand Hetzner auch nach vielen Jahren Treue auf die Einrichtungsgebühr von 99€. Diese allein bezahlen das Delta zum Serverloft Angebot schon die ersten 5 Monate. Dennoch blieb ein flaues Gefühl. Schließlich vereint Hetzner die Vorteile eines kleinen Anbieters (flexibel) mit den Vorzügen eines großen Anbieters (Rechtssicherheit, Stabilität) in sich. Den neuen Anbieter konnten wir nicht einschätzen.
Für 79€ bietet das Angebot recht viel. Hier ein kleiner Auszug:
Quadcore Opteron
ein einfaches Hardware Raid – aber immerhin
4GB Speicher
Fujitsu Siemens 19″ 2HE Gerät mit beindruckend gutem Handbuch
Remote Management Interface (IPMI)
5000GB Traffic inklusive (100MBit Anbindung)
Unsere Hochrechnungen sagen uns das wir damit auf jeden Fall für die nächsten 18 Monate auskommen. Also: Bestellt!
Serverloft.de
Nach zwei Werktagen konnten wir erstmals auf die Hardware zugreifen. Das ist schnell. Die Informationspolitik bis dorthin war ausreichend, lässt aber noch Spiel nach oben zu.
Das von uns ausgewählte Startimage Debian 4.0 – Minimal schien eine leicht angepasste Version des Anbieters zu sein. Custom Kernel, /etc/modules angepasst usw. Spielte für uns aber eh keine Rolle, weil wir das OS eh selbst noch mal neu installiert haben. Was wir an dieser Stelle schmerzlich vermissten, war ein WIKI oder Forum des Anbieters, in dem Informationen zur Hardware gesammelt waren. So bleibt uns nichts anderes übrig als die nächsten Monate unsere eigenen Erfahrungen zu sammeln und dann zu handeln. Ein paar erste Ratschläge findet ihr weiter unten im Artikel.
Einen schlechten Eindruck hat zudem auch hinterlassen, dass in der motd des RescueSystems (Ubuntu Live), Kernelparameter empfohlen wurden die beim vorinstallierten Image nicht gesetzt waren. Eine Nachfrage beim Support hat inzwischen ergeben dass diese Informationen veraltet sind.
Auch war der Router/Layer3 Switch (Juniper) in unserem Subnetz mit einem Default Image versehen. Dies hatte zur Folge, dass sich das Interface an dem wir hingen wie ein Mirror Port verhielt. Früher sagte man dazu auch Hub. Wir sahen sämtlichen Traffic aller anderen Kunden in unserem Subnetz. Dies gilt natürlich auch umgekehrt. Selten war das Mitschneiden von Kennwörtern und anderen persönlichen Informationen so einfach möglich. Für das beheben dieses Verhaltens (nach unserem Hinweis) benötigte Serverloft noch 3 weitere Werktage. Für eine erste Stellungnahme gingen auch bereits 2 Tage ins Land. Auch waren SSH, SNMP und andere Dienste auf dem Router erreichbar. Wir haben es gelassen Default Kennwörter zu testen.
Detaillierte erste Eindrücke zum Support findet ihr auch in diesem Beitrag von mir im serversupportforum.de. Dieses Forum wird von Intergenia – der Firma hinter Server4You, Serverloft und anderen – betrieben und „moderiert“.
Mein Fazit zu Serverloft:
Gnadenlos günstig. Aber was man bekommt ist Hardware und eine Netzwerkanbindung. Wer sich nicht in allen Bereichen, die der Betrieb eines Servers mit sich bringt, selbst helfen kann hat verloren. Auch wer mit dem Gedanken spielt sich einen Dedicated Server zum „rumspielen“ oder wahlweise „lernen“ zuzulegen ist bei anderen Anbietern meiner Meinung nach besser beraten. Angebote ohne Support gibt es auch günstiger.
Vom Werbeslogan „Professionelles Hosting“ darf man sich, wie ich meine, daher nicht täuschen lassen. In der Praxis bedeutet das teils unfreundliche oder wahlweise inkompetente Mitarbeiter (Bitte beachten: Dies sind meine ganz persönlichen Empfindungen). Wenn Support für euch wie uns jedoch kein Kriterium ist – bei 79€ – könnte serverloft was für euch sein. Es könnte jedoch auch sein, dass mich hier mein beruflicher Hintergrund (IT-Berater, Großkunden) und der Support von Hetzner etwas blind für die Realität gemacht haben. Eventuell ist das geschilderte ja normal. Unter professionell verstehe ich jedoch etwas anderes.
Technik
Doch genug zum Anbieter. Ab jetzt Details für diejenigen die an der technischen Umsetzung interessiert sind. Vielleicht findet ihr euch ja irgendwann mal in der selben Situation oder könnt uns noch Anregungen geben. Ach ja, die Situation. Neben dem reinen Webserver für das iPhoneBlog soll die Hardware auch noch das eine oder andere Mini Projekt (Thorstens Experimente) beherbergen. Zum jetzigen Zeitpunkt standen folgende Dinge auf der Liste.
Webserver für diverse Seiten – Neben dem iPhoneBlog hauptsächlich Private Webseiten für Alex, mich, Freunde und Familie.
mysql Datenbank
VPN Konzentrator – zur Administration und zum surfen in offenen WLANs
IceCast 2 – Streaming Server für Live Berichterstattung
Fileserver
Diverser Kleinkram – SVN, Jabber,… Spielkram für mich halt…
Monitoring – der diversen Anwendungen
Schon zu Beginn stand fest dass wir Virtualisierung mit XEN einsetzen werden.
Die Gründe dafür sind einfach. Das wichtigste Kriterium ist eine Partitionierung der unterschiedlichen Anforderungen. Zum Beispiel muss mein „Spielkram“ getrennt sein vom Webserver. Es ist nicht gerade schön wenn mein $$1337-Server läuft, und dafür der Webserver in die Knie geht. Darüber hinaus erlaubt die Virtualiserung ein flexibles Zuteilen von Ressourcen. Die laufenden Applikationen haben für uns ja unterschiedliche Prioritäten.
Auch ist durch die Virtualisierung ein leichteres Skalieren möglich. Wir könnten zum Beispiel in 12 Monaten relativ leicht den gesamten Webserver auf eine zweite Hardware umziehen.
Ich möchte hier jedoch keinen Artikel über Virtualiserung schreiben. Dazu findet sich im Netz ausreichend Material. Es ist ein Branchentrend. Und das zu Recht.
Die konkrete Frage die wir noch hatten war wie genau wir die Partitionierung der vorhandenen Ressourcen vornehmen. Eine Domain – der XEN Begriff für einen virtuellen Computer – für jede Anwendung?
Also zum Beispiel eine Domain für das iPhoneblog.de inklusive aller Dienste wie Apache, mysql, Mail, usw… Eine Domain für unseren anderen Webdienste, eine Domain für Icecast2, eine für …
Oder doch eher eine Domain pro Applikation? Webserver -> Domain. Mailserver -> Eine Domain, SVN -> Eine Domain.
Vielleicht sogar nur 2 Domains. Eine für Alex, eine für mich.
Entschieden habe ich mich letztlich für eine Mischung aus allen 3 Ansätzen. Es ist Quatsch für jede Webseite ein eigenes Betriebsystem laufen zu lassen. Unser Setup sehr ihr im folgenden Schaubild. Im Anschluss eine Diskussion über die Aufgaben der jeweiligen Domains.
dom0
dom0 ist die priviligierte Domain einer XEN Installation. Die dom0 startet, verwaltet und beendet alle anderen Domains. Die Domain0 ist die einzige Domain die auf alle Hardware direkten Zugriff erhält und wird automatisch vom XEN Hypervisor gestartet.
Die generelle Empfehlung ist die dom0 so wenig wie möglich neben dieser Aufgabe machen zu lassen. Daran haben wir uns gehalten. Mit einer Ausnahme. Die Dom0 spielt Router und Firewall für unser „Netzwerk“.
Wie man erkennen kann haben wir alle Domains bis auf dom0 und web nur ein Interface. Dieses Interface ist an die virtuelle Bridge angeschlossen. Diese Domains haben lediglich private IP Adressen.
Zwischen Domain0 und web besteht eine Point to Point Verbindung. Die Domain0 agiert als Router für web.
web
web ist die Domain die unseren Apache beherbergt. Sonst nichts. kein Mysql, kein Mailserver. Wir haben dieser Domain mit Abstand die meisten Ressourcen zugeteilt. Apache profitiert unglaublich von RAM. Ein grundsätzlicher Unterschied zu anderen Domains ist das diese 2 Netzwerkinterfaces hat. Das übliche ins LAN und eines in unser LAN. Beim Webserver wollten wir kein NAT einsetzen. Da nehmen wir die Sicherheitsrisiken in kauf die das mit sich bringt. Es bleibt ein privates Projekt und irgendwo muss das ganze auch vom Betriebsaufwand überschaubar bleiben.
Ursprünglich hatten wir auch den Plan einen Reverse Proxy (entweder squid oder apache mit mod_proxy) in einer separaten Domain laufen zu lassen. Auch dieser ist erstmal dem Betriebsaufwand zum Opfer gefallen. Auch bin ich mir nicht mehr sicher ob er die Seiten noch beschleunigen könnte. Aber dazu später mehr im Abschnitt Apache.
mysql
Ein zentraler mysql Server. Viele Webseiten und Tools benötigen einen mysql Server. Insofern erschien es uns logisch diesen zentral zu betreiben und nicht für jeden Anwendungsfall eine separate Installation. Wir erhoffen uns davon eine Effektivere Ausnutzung der Ressourcen sowie geringer Wartungsaufwand.
Der Nachteil ist jedoch das Applikation A Applikation B negativ beeinflussen könnte.
icecast
Icecast ist unser Streaming Server. Die Ressourcen die so ein icecast Server benötigt sind quasi nicht existent. CPU und RAM bedarf sind kaum messbar. Das einzige was hier anfällt ist Netzwerk Traffic.
Ausgelagert haben wir diesen weil wir uns den mit einem befreundeten Projekt teilen und klare Trennung der Infrastruktur benötigen. Die Alternative wäre gewesen ihn auf dem Toolserver laufen zu lassen.
Tools
Damit wären wir auch schon beim Toolserver. Der Toolserver ist das Auffangbecken für den gesamten Rest. Alle Projekte starten erst einmal hier. Aktuell läuft hier Hauptsächlich ein Fileserver (NAS,WebDAV) für unseren Datenaustausch zwischen den Domains. Eigentlich sollte hier auch das Monitoring stattfinden. Durch einen nächtlichen Fehler liegt das aktuell noch auf „web“. Sehr unschön.
beta
Beta ist die Testumgebung für das iPhoneBlog und aktuell noch nicht von der alten Hardware migriert. Hier läuft ein Klon der WordPress Installation auf dem wir Dinge ausprobieren bevor wir sie auf die live Seite nehmen.
Installation des XEN Host Systems
Wie bereits oben angekündigt haben wir die Debian Minimal Installation von Serverloft.de nicht verwendet. Schließlich installieren wir eh XEN da bietet sich ein sauberer Start an.
Die Installation gestaltete sich dank der IPMI Konsole und eines Recoverysystems recht schmerzlos. Die IPMI Konsole – wer so etwas nicht kennt – ermöglicht den Zugriff auf den Server von der ersten Sekunde an. Technisch wird die Serielle Konsole an einen SSH/Webserver weitergeleitet der auf einem „Mini Computer im Computer“ läuft und seine eigene IP Adresse hat. Darüber kann man den Server auch Ein-/Ausschalten usw. Das rettet einen wenn das eigentliche Betriebsystem – aus welchen Gründen auch immer – nicht erreichbar ist.
Allgemein
Als Leitfaden für die Installation von Debian diente mir die offizielle Dokumentation. Der Einfachheit halber habe ich dazu das Rescue System von serverloft gebootet. Ein Ubuntu Live. Und damit – als debianisches OS – sehr gut geeignet. Auf die eigentliche Installation von Debian werde ich hier nicht eingehen. Doch ein paar Besonderheiten gibt es bei serverloft zu beachten.
Nach der Installation wird man feststellen das die Festplatten bzw. das RAID nur sehr langsam schreibt (~16MB/s). Abhilfe schafft das aktivieren des Schreib Puffers auf den eigentlichen Festplatten. Damit das funktioniert müssen die Kernelmodule sg und mptctl geladen sein. Danach stehen die Geräte /dev/sg* zu Verfügung. Das eigentliche aktivieren des Schreib Puffers erfolgt mittels sdparm.
sdparm -s WCE=1 /dev/sg0
sdparm -s WCE=1 /dev/sg1
Um die IPMI Konsole aus dem OS heraus ansprechen zu können (mittels ipmitool) müssen die Kernelmodule ipmi_si und ipmi_devintf geladen werden. Leider sind diese (oder der Controller) instabil oder schlecht implementiert. Nach einiger Zeit läuft dann der Kernelthread [kipmi] mit 100% CPU Last. Wir haben die Kernelmodule also wieder deaktiviert. Wir benötigen die Funktionalität eh nicht. Ach ja, versucht nicht die Kernelmodule zu „unloaden“ (wie sagt man das?). Dies hat zur Folge dass sich das IPMI aufhängt. Danach muss der Server physikalisch kurz vom Strom genommen werden. Unschön.
Netzwerksetup
Das einrichten des Netzwerks gestaltete sich als recht kompliziert. Zum einen wollten wir ein virtuelles LAN. Zum anderen war auch die direkte Anbindung der web-domU nicht trivial. Normalerweise hängt man hierzu einfach alle Domains an eine Bridge welche mit dem Router verbunden ist.
Die Router von Serverloft akzeptieren jedoch nur die eigentliche MAC Adresse. Geholfen haben 2 Alternative XEN Netzwerkskripte. Zum einen das network-script Fridu Script. Zum anderen ein leicht angepasstes vif-bridge Skript. Diese beiden Skripte müssen in der xend-config.sxp entsprechend eingetragen werden. Zum Beispiel so:
Wie oben bereits erwähnt wird das externe Interface mit einer Point2Point Verbindung durch die Dom0 geschleift. Dazu muss in der DomU für eth1 folgendes in /etc/network/interfaces stehen:
auto eth1
iface eth1 inet static
address $_öffentliche_IP_$
netmask 255.255.255.255 ## Netzmaske ist wichtig
up /sbin/route add default dev eth1
up /sbin/route add default gw $_öffentliche_IP_der_dom0_$
Wie ihr merkt hab ich das ganze schon nicht mehr so richtig verstanden. Ist schon fast ne Woche her. Aber vielleicht hilft es dem einen oder anderen (oder auch mir in Zukunft wenn ich es mal wieder verstehen muss) Beispiel zu haben.
WordPress
Das iPhoneBlog ist eine WordPress Installation. Benötigt wird daher ein Webserver mit PHP Unterstützung sowie eine mySQL Datenbank. iPhoneBlog.de wird aktuell mit etwa fünf Anfragen pro Sekunde im Tagesmittel, mit Spitzenwerten von 15 pro Sekunde beschossen. Das Übersteht diese Hardware zwar auch in einer Default Installation. Doch sind die Ladezeiten dann nicht gerade optimal und die Kiste steht unnötig unter Last. Wir haben uns daher ausführlich mit dem optimalen Einstellungen auseinandergesetzt. Dies ist ein fortlaufender Prozess. Doch sind wir mit den bisherigen Optimierungen schon sehr zufrieden so dass wir dieses Wissen teilen möchten. Um Anregungen zu erhalten und oder auch einen Startpunkt für andere zu geben die eine ähnliche Last zu bewältigen haben.
Als Webserver standen zur Auswahl lighttpd („lighty“) und Apache 2.x.
Entschieden habe ich mich für Apache. Mir ist bewusst das der „Lighty“ angeblich sau schnell ist. Aber wir machen teils sehr komplexe Dinge mit dem Webserver und ich wollte nicht das Risiko eingehen auf einen Webserver zu setzen mit dem ich bisher keine Erfahrungen gesammelt habe. Das war mir dann doch zu viel Arbeit.
Um die Ladezeiten des iPhoneBlog zu optimieren haben wir jede Menge unternommen. Die wichtigsten Kriterien waren/sind dabei: mod_mem_cache, wp_supercache, eacclerator und mod_expires. Auch wollen die werte max_clients und KeepAliveTimeout auf den vorhanden RAM angepasst weden.
In der Grafik wird der Weg geschrieben den jede Anfrage an WordPress geht. Desto weiter nach unten die Anfrage geht desto länger die Ladezeiten. Im „schlimmsten“ Fall muss mysql befragt werden.
Im Idealfall sind die Inhalte bereits im Browser Cache. Um diesen Idealfall möglichst oft zu erreichen bietet sich das Apache Modul mod_expires an. Damit kann man sehr gut steuern wie lange Inhalte zwischengespeichert werden. Eine Konfiguration könnte Beispielsweise so aussehen:
Überprüfen kann man den Erfolg sehr gut mit der Webdeveloper Konsole in Safari. Dort einfach mal einen Blick in die Response Headers werfen. Zu beachten sind die Werte Expires,Cache-Conrol und Pragma.
Dynamische Inhalte wie das HTML der Seite sollten natürlich nach Möglichkeit nicht vom Browser gecached werden.
mod_mem_cache verwenden wir um kleine Bilder, javascripts und Stylesheets im RAM vorzuhalten. Diese sind statisch und werden oft angefragt. mod_mem_cache verhält sich hier übrigens wie ein Browser Cache. Welche Inhalte wie lange und ob überhaupt vorgehalten werden entscheiden die durch mod_expires eingestellten Werte maßgeblich.
CacheEnable mem /
# Max Cache size in kb (32MB)
MCacheSize 32000
MCacheMaxObjectCount 2000
# Least recently used
MCacheRemovalAlgorithm LRU
MCacheMinObjectSize 1
# Max Object size in byte (50kB)
MCacheMaxObjectSize 50000
Beiträge (html) können nicht so pauschal gecached werden. Hierzu Bedarf es Logik der PHP Anwendung. Wenn man einen neuen Beitrag oder Kommentar verfasst soll der ja nicht erst Minuten später erscheinen, sondern sofort. Glücklicherweise gibt es für WordPress zwei sehr gute Plugins die sich genau hierauf verstehen. wp_cache bildet die Basis und kann in jedem WordPress Blog ohne Probleme installiert werden. wp_super_cache versteht sich als Addon zu wp_cache. Die Super Variante hat ihren Namen deshalb weil hiermit in den meisten Fällen nicht eine Zeile PHP ausgeführt werden muss.
wp_super_cache speichert dazu fertige HTML Seiten in einem Verzeichnis und löscht diese wieder sobald eine Aktualisierung des Inhalts stattgefunden hat. Das diese fertigen HTML Seiten dann auch ausgeliefert werden erfolgt durch mod_rewrite Regeln. Im Prinzip wird einfach nur geschaut ob für die angefragte Seite bereits eine Version im Cache existiert. Wenn dem so ist wird diese ausgeliefert.
Dieses PHP Plugin sorgt dafür das PHP Skripte nur beim ersten Aufruf Interpretiert werden. Der Bytecode der Skripte wird im Speicher vorgehalten. Das bringt ein wenig mehr Tempo. Deutlich reduziert sich jedoch die CPU Last (siehe Grafik).
Um die nötigen mysql Anfragen wenigstens schnell auszuführen Bedarf es einer Beobachtung über einen längeren Zeitraum. Hilfestellungen kann das SKript tuning-primer.sh. Es schaut sich einige Laufzeitvariablen an und gibt entsprechende Vorschläge oder Erklärungen. Sollte man jedoch nicht zu ernst nehmen.
Apache Allgemein
Wir verwenden die Apache Variante mpm_prefork. mpm_worker kommt vielleicht irgendwann. Ist mir derzeit jedoch zu viel Arbeit. Zwei sehr wichtige Parameter die es zu beachten gilt sind KeepAliveTimeout und MaxClients.
Den Keep Alive Timeout möchte man am liebsten sehr hoch haben. Er gibt die Zeit in Sekunden an bevor die Verbindung zu einem Browser beendet wird. Er sollte in jedem Fall nicht kleiner als 2 oder 3 Sekunden sein. Sonst würde ggf. bei langsamen Verbindungen während dem Laden einer Seite die Verbindung immer wieder beendet. Dadurch wird es noch langsamer. 4 Sekunden ist denke ich default und sinnvoll. Wenn man es sich erlauben kann (Kriterien folgen) ist auch ein sehr viel höherer Wert von Vorteil. Viele Besucher lesen einen Artikel kurz einige Sekunden an und besuchen dann eine andere Seite. Wenn dann die Verbindung noch gehalten wird geht das einen Tick schneller. Dies bedeutet jedoch das man mindestens 20 Sekunden rechnen sollte damit jemand davon profitiert. Ein Wert von 10 macht in meinen Augen z.B. keinen Sinn. Dann kann man auch gleich auf 3. Wir haben derzeit 25 Sekunden eingestellt.
Der Wert MaxClients gibt an wie viele Apache Prozesse maximal laufen dürfen. Das ist hauptsächlich eine Frage des vorhanden Arbeitsspeichers. Der RAM Bedarf eines apache Prozesses hängt von den geladenen Modulen und anderen Faktoren ab. Um einen idealen Wert für MaxClients zu finden ist die Faustformel Freier Speicher / RSS Size eines Prozesses. In unserem Fall stehen ungefähr 2GB für Apache zu Verfügung. Der Speicherbedarf eines einzelnen Prozesses ist etwa 20MB. Es ergibt sich also ein Wert von 100 (2000MB geteilt durch 20MB).
Kommen wir noch mal zurück auf den Keep Alive Wert. Eine Verbindung die gehalten (Keep Alive) wert belegt einen Apache Prozess. Dieser kann solange keine anderen Besucher bedienen. Man benötigt also bei entsprechend hohen Keep Alive Werten auch eine entsprechend hohe Zahl von Max Clients. Zum beobachten verwendet man am besten mod_status. mod_status zeigt wie viele Prozesse gerade frei sind, wie viele im Status Keep-Alive sind, usw…
Sollten einmal keine freien Prozesse zu Verfügung stehen muss der Besucher solange warten. Nicht wünschenswert. Den KeepAlive Wert muss man bei steigenden Besucherzahlen also ggf. anpassen.
Ich hoffe ich konnte euch einen kleinen Einblick in meine Welt geben. Hoffentlich kann der eine oder andere davon profitieren. Am tollsten wäre natürlich wenn ihr noch Anregungen oder Fragen in den Kommentaren abgebt. Ich steige gerne in eine Diskussion ein. Ursprünglich wollte ich noch ein paar mehr Dinge ansprechen (z.B. das Monitoring). Aber das wird wohl in einem weiteren Artikel kommen. Ist lang genug geworden.
Über die adoptierte Ebay-Tochter Skype laufen dieser Tage alle Newsticker heiß. Die wohl iPhone-relevanteste Nachricht schüttelt Gigaom aus dem Ärmel einer nicht näher genannten Quelle. Danach soll sich eine native iPhone-Applikation in der Entwicklung befinden, die bereits innerhalb der nächsten Woche den App Store erreichen könnte.
Soweit so unzuverlässig.
Trotzdem bleibt das Thema diskussionswürdig, da Skype bereits Clients auf Windows Mobile, Pocket PC, Sony PSP sowie allerlei Symbian-Geräten und den drei großen Betriebssystem-Plattformen zur Verfügung stellt. Damit erreicht die VoIP-Firma 405 Millionen registrierte Benutzer und erwirtschaftete allein im letzten Jahr 550 Millionen US-Dollar.
Vor einigen Tage gab das Unternehmen einen möglicherweise spielentscheidenen Schachzug preis: Das derzeit verwendete proprietäre Skype-Protokoll soll einen Bruder bekommen, der sich ‚Session Initiation Protocol‚ – kurz SIP – nennt. In der IP-Telefonie ist SIP ein sehr häufig angewandtes Protokoll und könnte den Skype-Benutzerkreis besonders im Firmenumfeld stark erweitern.
Mitte Februar verkündetenSkype und Nokia dazu den nur logischen Schritt einer Zusammenarbeit: Von dem GSMA ‚Mobile World Congress 2009‘ aus Barcelona verlautet es, dass der finnische Mobilfunk-Konzern in sein Flaggschiff-Gerät N97 einen Skype-Client integriert. Weitere Mobilfunktelefone sollen folgen.
Und hier schließt sich erneut der geskypte iPhone-Kreis.
Derzeit existieren lediglich einige Drittprogramme wie Truphone (kostenlos; App Store-Link), Nimbuzz (kostenlos; App Store-Link) oder Fring (kostenlos; App Store-Link), die eure Skype-Freunde vom iPhone aus kontaktieren können. Wer damit schon länger gespielt hat weiß, dass die VoIP-Integration nur mässig bis unzuverlässig funktioniert.
Obendrein fällt die Nutzbarkeit einer mobilen Skype-Applikation mit der Möglichkeit auch über das UMTS-Netz seine Skype-Kontakte anrufen zu können. Dagegen wehren sich bislang jedoch erfolgreich alle Mobilfunkanbieter sowie Apple, die um exklusive Partnerverträge bangen müssten. Die verfügbaren App Store-Programme sprechen daher lediglich aus dem WiFi-Netz mit euren Skype-Freunden.
Alle verfügbaren Jailbreak-Hacks einmal ausgeschlossen, greift eine portable Skype-Applikation für das iPhone weiter die Festnetz-Telefonie (und seine Endgeräte) an, der heilige beschützte Mobilfunkanbieter-Gral wäre jedoch weiterhin in sicherer Hand.
Wie Apple am gestrigen Donnerstag verkündete, wird ihre hauseigene Entwickler-Konferenz dieses Jahr vom 8. bis zum 12. Juni im Moscone Center in San Francisco stattfinden. Neben komplett-haltlosen Gerüchten um neue Hardware zu diesem Zeitpunkt, bedarf es keiner hellseherischen Fähigkeit, das auf der diesjährigen WWDC neben dem (großen) OS-Betriebssystem-Update auch der bereits angekündigte Firmware-Aktualisierung des iPhones grösserer Platz eingeräumt wird.
Unsere Browser werden immer schneller. Auch der im iPhone verbaute ‚Mobile Safari‘. Mit dem Firmware-Sprung von 1.x auf 2.0 im letzten Sommer, legte die WebKit-Performance speziell im Bereich JavaScript und HTML-Rendering ordentlich zu.
Wayne Pan warf jetzt einen ersten, frühen Blick auf den in Firmware 3.0 integrierten SquirrelFish, den Webkit JavaScript-Interpreter, der sich aktuell ‚Nitro‘ nennen möchte. Gegenüber der aktuellen Firmware-Version soll die Leistung um das 3- bis 10fache gesteigert worden sein.
Unter der Überschrift Embedded Authentication Systems in an Electronic Device wird ein biometrischer Authentifikations-Mechnismus beschrieben, der mit Zuhilfenahme verschiedener Sensoren Zugangsbeschränkungen zu Touch-Geräten erlaubt oder verbietet. Die beigefügten Zeichnungen des Patent-Dokumentes aus dem Herbst 2008 dürfte über die Identität des beschriebenen Gerät wenig Zweifel aufkommen lassen.
Bereits Ende 2007 eingereicht, aber erst jetzt öffentlich bekannt geworden, ein weiterer Patentantrag mit der Bezeichnung Intelligent Restriction of Device Operations. Darin geht es um ein Navigations-System mit Touch-Steuerung, das über unterschiedliche Benutzugns-Restriktionen für Fahrer und Beifahrer entscheiden kann.
Convertbot (0.79€; App Store-Link) ist ein optisch-anspruchsvoller Konvertierungs-Umrechner für Maß-, Gewichts, Währungs-, Längen oder Energie-Einheiten. Außerdem kann Convertbot mit Druck-, Temperatur-, Zeit-, Volumen und Flächen-Angaben umgehen.
In der aktuellen App Store-Version 1.0 befindet sich jedoch ein schöner Bug, den Entwickler Tapbots unter der Blog-Überschrift ‚Ich bin ein Dummkopf‚ beschrieben hat. Dabei wird für alle Benutzer falsch konvertiert, die als ‚regionales Zahlenformat‘ den Punkt als Dezimal-Trennzeichen verwenden. Wer – wie hier üblich – anstelle des Punktes ein Komma benutzt, rechnet falsch um.
Das Update 1.0.1 ist jedoch bereits eingereicht und sollte innerhalb der nächsten Tage Convertbot auch mit den hiesig-üblichen Einstellung des deutschen Zahlenformates sinnvoll nutzbar machen.