7. Mai 2011
Technischer Hintergrund
Für alle Technikinteressierten ein paar Details zur Infrastruktur und ausgewählten Applikationen, die im Rahmen von bookamat zum Einsatz kommen.
Server, Datenbank, Framework
bookamat wurde mit dem Django-Framework auf Basis der Programmiersprache Python umgesetzt. Als Datenbank verwenden wir PostgreSQL Die Server werden von Robhost zur Verfügung gestellt und überwacht. Für die Python-Umgebung und das Handling der externen Programmpakete nutzen wir virtualenv & pip.
Asynchrone Tasks, Export
Die asynchronen Tasks (z.B. die Erstellung der Excel- und PDF-Dateien, Cronjobs) werden mit RabbitMQ & Celery verarbeitet. Für die Generierung der Excel-Files kommt xlwt zum Einsatz, die PDFs werden mit wkhtmltopdf erzeugt.
Versionskontrolle, Migration
Versionsverwaltung und Ticket-Management passiert mit Git und GitHub. Für die (manchmal notwendigen) Änderungen an der Datenbankstruktur (Schema– und Datenmigration) arbeiten wir mit South.
Testumgebung
Wichtig für die reibungslose Funktion einer Applikation sind Tests – für bookamat testen wir mittels sogenannter Unit-Tests alle wesentlichen Programmteile.
Mails, Newsletter
Für das Versenden von Server-Mails verwenden wir Postmarkapp, für den Newsletter Campaignmonitor.
Weitere ausgewählte Applikationen
django-compressor für JS/CSS-Komprimierung, Fabric für das Deployment, memcached für's Caching.