Multi-Purpose-App für die Entertainment-Plattform RTL+
Backend-Entwicklung mit jambit
Unsere Leistungen im Bereich Backend-Entwicklung
Hinter jeder guten Software steckt ein funktionierendes Backend. Während das sog. Frontend den für Nutzer sichtbaren Teil der Software bedient, widmet sich das Backend den (nicht sichtbaren) Funktionalitäten im Hintergrund. Damit beschäftigt sich die Backend-Entwicklung in erster Linie mit der Verarbeitung und Speicherung von Daten im Hintergrund einer Anwendung. Als Backend werden somit serverseitige Komponenten bezeichnet, die sowohl Software als auch Hardware umfassen können. Mit dem Frontend besteht dabei eine enge Verbindung: User-Anfragen aus dem Frontend werden im Backend in die entsprechende Programmiersprache übersetzt und ausgeführt. Dabei werden auch vom Nutzer eingegebene Daten verarbeitet. Ein weiterer wichtiger Punkt in der Backend-Entwicklung ist die Verbindung mit Schnittstellen zu Datenbanken oder anderen (Backend-)Anwendungen.
Mit dem Trend hin zu Cloud-Hosting und Serverless Computing hat sich auch für Backend-Entwickler einiges geändert. Viele Softwareprojekte werden heutzutage mit einer Microservice-Architektur umgesetzt oder sogar gleich schon als flexible cloud-native Applikation. Daneben bietet auch die funktionale Programmierung neue Potenziale zur Optimierung von Software. In der Web-Entwicklung spielt das Backend weiterhin eine entscheidende Rolle bei der Individualisierung von Content-Management-Systemen oder Portalen.
Unsere Leistungen im Bereich Backend-Entwicklung
Schon seit 1999 setzt jambit als Softwaredienstleister in München, Stuttgart, Leipzig und Frankfurt innovative Softwareprojekte mit erfahrenen Backend-Entwicklerinnen und -Entwicklern um. Besonders wichtig ist uns dabei der kontinuierliche Wissensaufbau und Wissensaustausch für unsere jambitees. So stellen wir sicher, dass wir stets modernstes technisches Know-How über die neusten Trends und Technologien in unseren Projekten mit weltbekannten Kunden besitzen und einsetzen. Durch unser breit aufgestelltes Wissen finden wir so für ganz individuelle Wünsche und Vorstellungen jeweils den richtigen Lösungsansatz.
Im Bereich Backend-Entwicklung setzen wir dabei in den meisten Projekten auf Microservice-Architekturen mit Service Meshes, aber auch Cloud-Native-Entwicklung gehört zu unseren Kompetenzen. Für die Datenverarbeitung setzen wir sowohl Projekte mit relationalen Datenbanken, als auch mit alternativen NoSQL-Datenbanken um. Ein weiterer wichtiger Teil unseres Leistungsangebots im Bereich Backend ist die Individualisierung von Content-Management-Systemen wie Arc Publishing oder Polopoly für renommierte Medienunternehmen.
Backend-Technologien, die wir häufig in unseren Projekten einsetzen:
- Sprachen wie Java, Kotlin, Scala, Python und C#
- Plattformen wie Java EE und .NET
- Frameworks wie Spring und Spring Boot, das .NET Framework, das Django REST Framework, Grails und Ruby on Rails
- Relationale Datenbanken wie Oracle, Microsoft SQL, PostgreSQL, MariaDB sowie NoSQL Datenbanken wie MongoDB, Redis, Amazon DynamoDB und Apache Cassandra
- Die JavaScript-Laufzeitumgebung Node.js mit Frameworks wie Nest.js und Express.js
Microservice-Architekturen
Microservices sind ein Architekturansatz, der sich an den Anforderungen moderner Softwareentwicklung, insbesondere im Hinblick auf agile Entwicklung, orientiert. Die Notwendigkeit, schnell und kosteneffizient auf sich stetig ändernde Marktbedingungen zu reagieren ist heutzutage auch bei Softwareanwendungen wichtiger als je zuvor. In diesem Zusammenhang ist der traditionelle, "monolithische" Architekturansatz mit unzähligen Funktionen bei Geschäftsanwendungen im Backend mit zunehmender Größe und Komplexität nicht mehr zielführend.
Bei einer Microservice-Architektur werden komplexe Backend-Anwendungen in lose gekoppelte sog. "Microservices" zerlegt, die sich jeweils auf eine konkrete Funktion beschränken und konzentrieren. Diese Microservices können in unterschiedlichen Programmiersprachen geschrieben sein und z.B. über REST-Schnittstellen (APIs) miteinander verbunden werden. Über einen Service Mesh können so viele verschiedene Microservices zu einer funktionsfähigen Anwendung zusammengefasst werden.
Dieser Architekturansatz bringt viele Vorteile mit sich:
- Continuous Delivery: In vielen modernen und insbesondere in agilen Softwareprojekten ist es ein Ziel, Änderungen und neue Funktionalitäten so schnell wie möglich zu veröffentlichen. Diese sog. Continuous Delivery setzt voraus, dass einzelne Funktionalitäten im Backend schnell entwickelt oder verändert werden können, ohne dabei zahlreiche Abhängigkeiten im Gesamtkonstrukt in Betracht ziehen zu müssen. Für diesen Ansatz sind Microservices ideal, denn sie können ständig individuell angepasst und Änderungen anschließend separat veröffentlicht werden.
- Entwicklung: Gleichzeitig ergeben sich durch Microservices Vorteile bei der Strukturierung von Entwicklerteams, der notwendigen Länge der Entwicklungszyklen, der Auswahl der eingesetzten Technologien sowie der Skalierung der Services, denn:
- Microservices können unabhängig voneinander entwickelt werden
- Sie sind übersichtlich und können mit kleinem Aufwand verändert werden
- Das Microservices-System ist gegen den Ausfall anderer Systeme abgesichert
Trotz der vielen Vorteile einer Microservice-Architektur birgt der Aufbau einer solchen Service-Landschaft auch viele Tücken und Fallstricke. Während die einzelnen Services zwar übersichtlicher werden, wird die Gesamtarchitektur meist komplexer und das Monitoring aufwendiger. jambit hat bereits in vielen Projekten erfolgreich Microservice-Architekturen eingeführt und umgesetzt, und kann Sie daher kompetent in diesem Bereich zu Vor- und Nachteilen für Ihr individuelles Projekt beraten.
jambit-Referenzen im Bereich Microservice-Architekturen:
Implementierung einer Multi-Tenant-fähigen Microservicearchitektur für Audi on Demand
Cloud-native Applikationen
Die Cloud-Native-Entwicklung ist ein weiterer Architekturansatz, um Backend-Applikationen, bei gleichzeitiger Erhöhung der Qualität und Minimierung der Risiken, schnell entwickeln und aktualisieren zu können. Eine Cloud-Native-Applikation ist eine responsive, skalierbare und fehlertolerante App, die von vornherein für den Einsatz in der Cloud gebaut wurde und überall ausgeführt werden kann – egal ob in Public, Private oder Hybrid Cloud. Dabei nutzt man die Vorteile und Besonderheiten der verteilten, skalierbaren und flexiblen Natur der Cloud aus. Der Fokus liegt auf dem eigentlichen Schreiben von Code, wodurch sich der Business Value bei Entwicklung und Betrieb maximiert.
Der große Vorteil Cloud-nativer Applikationen ist die Unabhängigkeit von einzelnen Betriebssystemen oder Hardware. Sie sind flexibel auf allen Cloud-Plattformen und -Modellen einsetzbar und von überall aus bereitstellbar. Die Möglichkeit, schnell auf neue Anforderungen reagieren zu können, kann Unternehmen dabei den entscheidenden Vorteil verschaffen. In Abstimmung mit unserem Experten-Team aus dem Bereich Cloud beraten wir Sie gerne ganz individuell zur Entwicklung von Cloud-native Applikationen.
Content-Management-Systeme (CMS) & Portale
Mit einem Content-Management-System, kurz CMS, können Webseiten dynamisch mit Content befüllt werden, ohne über Web-Programmierung Bescheid zu wissen. Über eine leicht verständliche Oberfläche lässt sich Content in das CMS einpflegen und das System selbst kümmert sich um die Übersetzung nach HTML. Content-Management-Systeme sind aus der modernen Web-Entwicklung nicht mehr wegzudenken. So bieten sie Unternehmen die Möglichkeit, dass Redakteure einfach und schnell ohne technisches Verständnis Inhalte publizieren können. Viele, insbesondere große, Unternehmen haben jedoch oft ganz spezifische Anforderungen an ihre Webseite und benötigen eine individualisierte Anpassung ihres CMS. Neben der Umsetzung eines responsiven Webdesigns sind dabei häufig auch Anpassungen im Backend notwendig, z. B. bei der Anbindung von Schnittstellen zu anderen Anwendungen. Ähnliche Anforderungen gibt es auch bei der Individualisierung von Unternehmensportalen wie SAP, IBM oder Microsoft Sharepoint.
Aus einer Vielzahl von Projekten mit renommierten Medienhäusern wie der F.A.Z. und SZ, dem Mannheimer Morgen oder dem RedaktionsNetzwerkDeutschland kann jambit auf jahrelange Erfahrung im Bereich der CMS-Entwicklung bauen. So unterstütze jambit bereits in zahlreichen Verlagen mit Backend- und Frontend-Entwicklerinnen und -Entwicklern bei der Einführung eines neuen Redaktionssystems. Für FAZ.NET konzipierte und implementierte jambit beispielsweise eine cloudbasierte Betriebsumgebung auf Microsoft Azure und leistet seither Betrieb, Tagesgeschäft und 24/7-Support der Website und des Online-Redaktionssystems. Und für RND.de ermöglichte jambit die europaweit erste Implementierung des Arc-Publishing-CMS mit einem Partner.
Unsere Leistungen:
- Unterstützung bei der Auswahl eines neuen CMS
- Ablöse des Altsystems
- Migration der Bestandsdaten
- Integration in die vorgegebene Systemlandschaft
- Anpassung des Systems an die individuellen Wünsche des Kunden
- Betrieb und 24/7-Support der Webseite und des Online-Redaktionssystems
- Mehr zum Thema Content-Management- und Publishing-Systeme
jambit-Referenzen im Bereich CMS-Entwicklung:
CMS-Einführung mit Livingdocs bei der Handelsblatt Media Group
Integration des Content-Management-Systems Livingdocs für kicker.de
AI in the Newsroom: Machine Learning für die Paywall der F.A.Z.
Arc Publishing - Implementierung für Nachrichtenportal RND.de
Mannheimer Morgen - Multichannel-CMS-Einführung mit Polopoly
SQL- & NoSQL-Datenbanken
Datenbanken sind ein essenzieller Bestandteil der meisten Backend-Anwendungen. Ihre Aufgabe ist die sichere, zuverlässige und leistungsfähige Speicherung von Anwendungsdaten. Am häufigsten werden dabei relationale Datenbanken von etablierten Herstellern (z. B. Oracle oder Microsoft) und Open Source Projekten (z. B. PostgreSQL) eingesetzt. Ihre größten Stärken sind garantierte Konsistenz zu jedem Zeitpunkt sowie die deklarative Anfragesprache SQL. Zudem steckt in diesen Systemen jahrzehntelange Forschung und Optimierung. Relationale Datenbanken sind jedoch nicht immer die ideale Lösung. In bestimmten Anwendungsfällen können NoSQL-Datenbanken wie MongoDB, DynamoDB und Apache Cassandra mit alternativen Datenmodellen oder besonderen Speicherkonzepten die bessere Wahl sein. In unseren Projekten beraten wir Kunden ganz individuell zu der für sie passenden Lösung.
Unsere Leistungen:
- Auswahl des besten Datenbanksystems für den individuellen Anwendungsfall
- Tuning der Leistungsfähigkeit von Anwendungen, deren Bottleneck das Lesen oder Schreiben von Daten ist
- Entwicklung von anwendungsspezifischen Datenmodellen
Funktionale Programmierung
Funktionale Programmierung ist ein alternatives Programmierkonzept, das sich deutlich von dem der traditionellen Softwareentwicklung unterscheidet. Es verspricht Software, die sich besser warten, testen und skalieren lässt. Es ist vor allem für Anwendungen geeignet, die selbst unter extremen Leistungsanforderungen höchst zuverlässig funktionieren müssen. Deshalb hat funktionale Programmierung das akademische Umfeld längst verlassen und gewinnt zunehmend an Popularität in produktiver Software, zum Beispiel im Bereich Banking. Heutzutage sind dafür auch keine exotischen Entwicklungsplattformen und Programmiersprachen mehr notwendig, da alle großen Software-Plattformen wie JVM oder CLR funktionale Programmiersprachen oder Spracherweiterungen unterstützen.
Unsere Leistungen:
- Entwurf funktionaler Software-Architekturen
- Funktionale Softwareentwicklung im JVM-Umfeld (z. B. Scala, Kotlin, Clojure)
- Funktionale Erweiterung und Transformation von bestehender Software (z. B. Java VAVR)