Die IT Basics von Bilendo (Credit-Management API-Plattform): Kanban per Ruby on Rails
Bilendo ist eine Credit-Management-Plattform, die sich per API an die bestehende IT-Infrastruktur von Banken und Finanzdienstleistern anbinden lassen soll. Bilendo verspricht, dass das in nur wenigen Stunden möglich sei. Das wollten wir genauer wissen und baten Jakob Beyer (Medieninformatiker und Mitgründer von Bilendo) zum IT-Basics-Interview.
Herr Beyer, wer sind Ihre Kunden?
Wir haben zwei Arten von Kunden: Zum einen die Business-Kunden mit einem Umsatz von bis zu 50 Millionen Euro und zum anderen die Enterprise-Kunden mit einem Umsatz von mehr als 50 Millionen Euro. Hauptsächlich gehören Unternehmen mit vielen Debitoren zu unserem Kundenstamm.Wie werden die Produkte entwickelt?
Wir entwickeln die Produkte in Teams aus Full-Stack-Entwicklern. Wir arbeiten mit Projekt-Kanban-Boards in Github und nutzen als Branching-Strategie Github-Flow. Bevor ein Pull-Request in den Master gemerged wird, muss er mehrere automatisierte Qualitäts- und Sicherheits-Checks überstehen und zusätzlich im Vier-Augen-Check von einem anderen Entwickler freigegeben werden. Wir betreiben Continous Integration und deployen mehrmals am Tag neue Versionen.
Wie sieht der Entwicklungsprozess aus?
Das Product-Team steuert und spezifiziert die Produktweiterentwicklungen aus der Business-Perspektive, die dann von IT-Projektmanagern in die IT-Abteilung weitergegeben werden. Für unterschiedliche Themen gibt es Expertenteams. Unsere Account-Manager bereiten Enterprise-Onboardings und Weiterentwicklungen von Kundenseite aus vor, die dann von Solution Architekten spezifiziert werden. Anschließend werden sie wieder von den IT-Projektmanagern in die IT weitergegeben und an die jeweiligen Teams delegiert.
Alle neuen Features müssen neben technischen Freigaben aus der IT auch vom Produkt-Team oder den Solution Architekten freigegeben werden, bevor sie deployed werden.
Wie entscheidet sich, was als nächstes entwickelt wird?
Wir folgen einer Produkt-Roadmap, an die wir uns halten und für die wir einen Großteil unserer Ressourcen einplanen. Die restlichen Ressourcen halten wir uns frei, um agil auf kurzfristige Anforderungen reagieren zu können.”
Auf welcher Technologie basieren die Produkte?
Die Haupt-Programmiersprache ist Ruby, mit Ruby on Rails als Framework. Das Interface nutzt Bootstrap als Design-Framework und natürlich eine Menge jQuery-Javascript. Wir haben ein ausgefeiltes System von Shared-Workern die nicht-zeitkritische oder Aufgaben mit langer Laufzeit im Hintergrund ausführen. Wir nutzen Queues, Websockets und asynchrone Verarbeitung, um das Arbeiten im Interface für unsere User immer schnell zu gestalten. In unserem Interface tauschen wir asynchron nur die Teile aus, die sich verändert haben, sobald ein Hintergrundprozess seine Arbeit abgeschlossen hat.
Welche Programmiersprachen und Tools verwenden Sie?
Als Programmiersprachen verwenden wir hauptsächlich Ruby und Javascript. Die meisten Entwickler nutzen Sublime oder Visual Code als Editoren.
Wir nutzen eine ganze Reihe an Cloud-Tools wie CirecleCi, Codeclimate, Airbrake, Papertrail, Datadog (uvm.) um die Qualität von Bilendo kontinuierlich zu verbessern.
Welche Schnittstellen hat Ihr System und wie binden Sie beispielsweise externe Kernbanksysteme an?
Wir haben jede Menge Schnittstellen von Partnern und Drittanbietern angebunden und bieten selbst eine Menge Schnittstellen an. Für unsere Kunden soll es so einfach wie möglich sein, Daten in unser System zu bekommen und von dort wieder auszulesen.
Wir haben viele Rest- und SOAP-APIs (z.B. Cloud-ERPs wie SevDesk oder FastBill oder Payment-Anbieter wie Stipe und PayPal), viele Webhook-Endpoints, Schnittstellen zu File-Sharing-Diensten (z.B. Dropbox, Google Drive) und diverse dateibasierte Schnittstellen.”
Unsere Kunden können uns Daten wie Rechnungen oder Zahlungen auch via E-Mail schicken oder auf SFTP-Servern bereitstellen. Für die Anbindung von Banken nutzen wir unterschiedliche Dienstleister, um Umsätze in Bilendo importieren zu können.
Wie garantieren Sie die Sicherheit Ihrer Systeme?
Wir führen kontinuierlich Sicherheitstests durch. Außerdem haben wir mehrstufige Firewalls, vollständige Testabdeckung, ein umfangreiches Rechte- und Rollen-System, überprüfen den Source-Cde automatisiert auf Qualität und Sicherheit und erzwingen Zwei-Faktor Authentifizierung.
Gibt es spezifische Hardware-Aspekte, die berücksichtigt werden müssen?
Skalierbarkeit ist extrem wichtig und alle Entwickler müssen das bei der täglichen Arbeit immer im Kopf haben. Da wir eine Cloud-Anwendung sind, hätten wir theoretisch Zugang zu beinahe unbegrenzten Hardware-Ressourcen, aber uns ist wichtig, dass wir erst dann über Hardware skalieren, wenn wir alle anderen Möglichkeiten ausgeschöpft haben.
Wir führen eine Menge Performance-Tests durch, bevor wir uns für Server-Instanzen entscheiden und monitoren deren Verhalten unter Last sehr genau.
Da wir viele Aufgaben synchron abarbeiten können, können wir Last-Spitzen aufgrund unserer Architektur sehr gut abfedern, ohne unsere Hardware sofort skalieren zu müssen.”
Wir überwachen unsere Applikationen und Server sehr genau und suchen permanent nach Möglichkeiten, aus den bestehenden Ressourcen mehr rausholen zu können.
Herr Beyer, vielen Dank für das Interview.aj
Sie finden diesen Artikel im Internet auf der Website:
https://itfm.link/96269
Schreiben Sie einen Kommentar