WordStream nutzt Python als seine bevorzugte Plattform
Einleitung
WordStream ist ein Anbieter von Keyword-Management-Lösungen zur kontinuierlichen Optimierung und Erweiterung von PPC- und SEO-Bemühungen, die eine große Anzahl von Keywords umfassen. WordStream bietet eine skalierbare, private Online-Keyword-Workbench für die Keyword-Erkennung, Keyword-Vorschläge, Keyword-Recherche, Keyword-Gruppierung, Keyword-Organisation, Suchmaschinenmarketing-Workflows und zur Umsetzung von Recherche in Maßnahmen.
WordStream befindet sich seit 2007 in der Entwicklung und wird von einem achtköpfigen Ingenieurteam entwickelt und unterstützt. Das Serversystem besteht aus etwa 25.000 Zeilen Python-Code. Die Software wird auf unseren Servern bereitgestellt und unterstützt Tausende von Benutzern weltweit.
Die Architektur
Aus Softwareperspektive ist WordStream eine hochverfügbare, massiv skalierbare, verteilte, mehrschichtige Client/Server-Datenbankanwendung. Das Produkt besteht aus drei separaten Modulen
- Das Server-Backend ist in Python geschrieben und bietet Datenspeicher- und Verarbeitungsfunktionen.
- Das grafische Benutzeroberflächen-Frontend ist in Adobe Flex geschrieben und unterstützt die vom Server bereitgestellten Funktionen. Es erfordert eine Live-Verbindung zum Server, um zu funktionieren.
- Ein JavaScript-'Tracking-Code' wird auf den Webseiten der Kunden installiert und versorgt den Server mit aktiven Web-Analysen.
Einige der anderen Technologien, die wir derzeit für WordStream verwenden, sind Adobe Flex, Linux, Apache und C/C++. Was die Tools für den Entwicklungsprozess betrifft, so verwenden wir PyDev Extensions, Trac, Buildbot, Review Board und Git.
Die Entscheidung für Python
Python wurde von Anfang an für dieses Projekt verwendet. Es war etwas schwierig, neue Entwickler mit Vorerfahrung in Python zu rekrutieren. Unsere bisherigen Erfahrungen zeigen jedoch, dass Python eine sehr leicht zu erlernende Sprache ist. Wenn man Python einmal gelernt hat, fällt es schwer, zu anderen Sprachen wie C/C++ zurückzukehren.
Es gab mehrere Gründe, warum wir uns entschieden haben, Python als unsere bevorzugte Plattform für WordStream zu nutzen.
Erstens ist Python-Code äußerst und universell lesbar. Entwickler mit jedem Sprachhintergrund können Code lesen und verstehen, ohne auf viel Dokumentation zurückgreifen zu müssen.
Zweitens ist Python eine sehr ausgereifte Plattform mit einer Fülle von Drittanbieterbibliotheken und -werkzeugen. Die Debugging-Tools von Python sind leicht zu finden und funktionieren hervorragend.
Drittens arbeitet Python nahtlos über Plattformgrenzen hinweg, was unsere Entwickler entlastet, sodass sie jede Plattform für ihre tägliche Entwicklung nutzen können. Die Bereitstellung in der Produktion ist ebenfalls sehr einfach, mit breiter Unterstützung durch alle wichtigen Linux-Distributionen.
Darüber hinaus ist Python aufgrund seines dynamischen Typsystems, der nativen Unterstützung für gängige Datenstrukturen (z. B. Hash-Maps, Sets und Listen), der "Batteries Included"-Standardbibliothek und einer vernünftigen Fehlerbehandlung für schnelles Prototyping und Entwicklung geeignet.
Ein weiterer Grund, warum wir uns für Python entschieden haben, ist, dass es eine ausgezeichnete Sprache für die Analyse und die einfache Bearbeitung von Sammlungen ist (Iterieren, Verketten, Schneiden usw.).
Nicht zuletzt ist es, wenn die Leistung jemals ein Problem darstellt, einfach, Erweiterungen mit der Python/C-API zu schreiben.
Bitte beachten Sie, dass wir andere Lösungen evaluiert haben, darunter Ruby und Java. Unser Eindruck von Ruby war jedoch, dass es zu dieser Zeit zu unreif war, und mit Java kann es oft unangenehm sein, zu arbeiten.
Projektergebnisse
Es ist unerlässlich, dass wir unseren Kunden eine Verfügbarkeit rund um die Uhr, 365 Tage im Jahr bieten, da WordStream eine Online-Software-as-a-Service-Lösung ist, die von Menschen auf der ganzen Welt genutzt wird. Angesichts dieser Voraussetzung hat Python hervorragend funktioniert.
Python hat sich sowohl in Bezug auf die Analyse als auch auf die Datenmanipulation als sehr leistungsfähige und flexible Sprache erwiesen. Es gibt eine Vielzahl von positiven Bewertungen und Lobeshymnen online, die Python loben, und das Produkt liefert definitiv.
Als Start-up in der Frühphase ist es immer eine Herausforderung, talentierte Ingenieure davon zu überzeugen, ihre derzeitigen Positionen zu verlassen und sich unserem Entwicklungsteam anzuschließen. Einer unserer produktivsten Ingenieure hatte einen C/C++-Programmierhintergrund ohne Vorerfahrung mit Python, war aber dennoch in der Lage, die Sprache schnell zu erlernen und produktiv damit zu arbeiten. Tatsächlich nannte er die Produktivität der Python-Sprache als einen der Gründe für seine Zusage bei uns!
Python hat einige geringfügige Einschränkungen in Bezug auf die reine Verarbeitungsleistung und den Betrieb in Multi-Thread-Umgebungen. Diese Bedenken können jedoch leicht durch C-Erweiterungen oder durch den Aufbau auf einem Multi-Prozess-Ausführungsmodell behoben werden.
Schlussfolgerung
Zusammenfassend lässt sich sagen, dass wir glauben, dass die Entscheidung, unsere Produkttechnologie auf Python zu stützen, WordStream einen strategischen, technologischen Vorteil gegenüber unseren Wettbewerbern verschafft, da sie eine erhöhte Produktivität, Zuverlässigkeit und Erweiterbarkeit ermöglicht.
Über die Autoren
Gerard Escalante ist Vice President of Engineering bei WordStream. Er hat einen Bachelor of Applied Science in Computer Engineering von der University of Waterloo in Kanada.
Philip Stefou ist Sr. Software Engineer bei WordStream.
