Eingesetzte Technologien

Open Source

Die meisten unserer Anwendungen basieren auf Open-Source-Technologien wie Linux, JavaScript, Python, Meteor, MongoDB, PostgreSQL oder Erlang.
 

Frameworks

Unsere aktuellen Anwendungen basieren auf Meteor und sind Full-Stack-JavaScript-Apps, die MongoDB zur Datenspeicherung verwenden.

Einige unserer Anwendungen bauen auf dem Python-Framework Pyramid auf.

 

SQL- und NoSQL-Datenbanken

Wir haben mit einem breiten Spektrum an Datenbanken gearbeitet, dazu gehören PostgreSQL, MySQL, Oracle, SQLite, sowie einige NoSQL-Datenbanken wie MongoDB, die Zope-Object-Database (ZODB), die Mnesia-Datenbank von Erlang, und diverse einfache Key-Value-Datenbanken wie die Berkeley-DB (BSDDB).

 

Benutzeroberflächen

Unsere Benutzeroberflächen sind plattformunabhängig und responsive. Sie basieren im Wesentlichen auf JavaScript und HTML5. Wir haben auch Oberflächen entwickelt, die auch in unzuverlässigen und langsamen Netzen noch vernünftig funktionieren, was sie für mobile Anwendungen perfekt macht und beispielsweise ideal auf die Konvertierung nach iOS oder Android via PhoneGap vorbereitet.

 

GIS

Viele unserer Anwendungen haben eine starke geografische Komponente. Für solche GIS-Anwendungen nutzen wir ein breites Spektrum an Ressourcen und Technologien, unter anderem Open Street Map, UMN Map Server, PostGIS, die Leaflet- und OpenLayers-JS-Bibliotheken. Außerdem unterstützen wir eine Vielzahl an Austauschformaten, beispielsweise KML, GeoJSON und Shapefiles.


Hosting Technologien

Ubuntu Linux

Üblicherweise hosten und entwickeln wir unsere Software auf Ubuntu-Linux-Servern.

 

Redundanz

Wir nutzen DRBD, um Datenredundanz im Falle eines Hardware-Ausfalls sicherzustellen. Desweiteren werden produktive Daten durch nächtliche Sicherungskopien auf externe Server vor Verlust geschützt.

 

Automatisierung und Virtualisierung

Unsere Deployments werden teilweise automatisert durchgeführt (mit Hilfe eines hochentwickelten Ansible-Setups - inklusive unserer eigenen Ansible Plugins). Ein Teil unserer Setups nutzt zudem Virtualisierung, sowohl in der Produktion als auch für Tests und Staging. Für die Virtualisierung nutzen wir eine Vielzahl an Tools, beispielsweise KVM, QEMU und libvirt, sowie VirtualBox.

 

Debian-Pakete und automatische Verteilung

Unsere Software wird zu einem großen Teil über unsere eigenen, automatisch gebauten Debian-Pakete verteilt. Diese werden auch automatisch auf unsere Testumgebungen verteilt, sobald ein Repository Check-In gemacht wurde.