Guten Tag zusammen, ich heisse Malte Diedrich, blogge seit einigen Jahren unter Treehuggin’ Pussy und arbeite mit Nico zusammen seit einigen Wochen bei Shoppero. Zuständig bin ich für die Technik und beschäftige mich zur Zeit vor allem mit der Koordinierung der Programmierer. Durch den sehr schnellen Aufbau und die damit verbundene Arbeit komme ich erst jetzt dazu, etwas zur Technik zu schreiben, bedanken möchte ich mich an dieser Stelle auch für die zahlreichen Hinweise auf Fehler und Verbesserungsmöglichkeiten, die wir zur Zeit abarbeiten. Sowohl die Mails an improvements@shoppero.com als auch die zahlreichen höflichen und wohlwollenden Anregungen aus der Blogosphäre werden gerne gelesen und umgesetzt (auch wenn wir vielleicht nicht immer jedem antworten können). Ich möchte hier besonders Björn Schotte und Fukami hervorheben, die uns in den letzten Tagen sehr geholfen haben.
Wie bereits erwähnt, läuft Shoppero auf einem Webdienst von Amazon, Electronic Cloud Computing (EC2). Amazon stellt hierbei virtuelle Server zur Verfügung, die man nach Belieben zu- und abschalten kann.
Wir ersparen uns damit den tatsächlichen Umgang mit Hardware und vertrauen darauf, dass die Ingenieure bei Amazon ein Rechenzentrum besser betreiben können als wir.
Um einen Server bei Amazon zu starten, sucht man sich ein Image aus und startet dieses Image über eine Verwaltungsoberfläche oder eine Kommandozeile. Nach ein 2-3 Minuten steht die Maschine dann zur Verfügung, man fragt die IP ab, schaltet bei Bedarf bestimmte Ports frei und kann loslegen. Ab diesem Moment zahlt man auch. Wenn man das Image durchgespielt hat, fährt man es wieder runter und braucht auch nichts mehr zahlen. Nach Amazons Angaben hat man ein Xeon 1,7 GHz Equivalent mit 1 GByte RAM und 160 GByte Speicherplatz zur Verfügung.
Technisch gesehen sind die virtuellen Server Xen-Images. Diese werden entweder von Amazon zur Verfügung gestellt oder von uns selbst hergestellt, wobei man dies praktischerweise gleich auf den Servern von Amazon machen kann und nach dem Bootstrapping mithilfe der Amazon EC2-Tools nach S3 hochgeladen werden. Dort stehen sie dann zur eigenen oder allgemeinen Benutzung zur Verfügung. Es ist auch möglich, eigene Images wieder einzupacken und zurück bei S3 zur Speicherung abzulegen, wodurch wir inzwischen für die Datenbankserver und die Webserver fertige Vorlagen haben, die wir beim Start nur noch kurz aktualisieren müssen und so in kurzer Zeit die Leistung vervielfachen können. Auch wenn wir dies zur Zeit noch per Hand machen, grundsätzlich kann man den gesamten Vorgang auch soweit automatisieren, dass das Gesamtsystem je nach Last quasi mitwächst und wieder kleiner wird. Auch können wir schnell einen Testserver hochziehen, bestimmte Dinge ausprobieren und die Kiste danach wieder wegwerfen.
Wirtschaftlich gesehen ersparen wir uns durch den EC2 Service eine Menge Ausgaben am Anfang des Unternehmens und können die Technik parallel mit dem Wachstum der Seite wachsen lassen. Es wird spannend zu beobachten, ob sich der anfängliche Kostenvorteil später verstärkt oder es zu einem Zeitpunkt günstiger werden wird, eigene Server zu betreiben.
Und um die häufigste Nachfrage gleich zu beantworten: Ich weiss auch nicht, nach welchem System Amazon Leute zu EC2 einlädt und wie man diesen Vorgang beschleunigen kann.