Technologie-Stack
Technologien
Bei T2med werden eine Reihe unterschiedlicher Technologien eingesetzt. Je nach Anwendungsgebiet wird versucht, die geeignetsten dafür auszuwählen. Grundsätzlich lässt sich der Technologie-Stack aber wie folgt beschreiben:
- Unsere Backends, d. h. alle unsere Services und Serveranwedungen, werden hauptsächlich auf der Java Virtual Machine betrieben. Für neuere Projekte setzen wir dabei fast ausschließlich auf Kotlin als Programmiersprache.
- Bei den Frontends gibt es durchaus etwas mehr Abwechslung, da die Zielplattform hier häufig bereits die Technologieauswahl einschränkt.
- Grundsätzlich versuchen wir, wann immer es möglich ist, auf quelloffene Frameworks und Technologien zurückzugreifen um so zukunftssicher zu bleiben.
Die folgenden Abschnitte geben einen detaillierten Überblick über unseren Technik-Stack.
Sprachen
- Bei der Entwicklung neuerer Dienste, Bibliotheken und beim Build-Tooling setzen wir fast ausschließlich auf Kotlin, da unsere Entwickler:innen die gute Developer-Experience zu schätzen wissen.
Für unseren mobilen Apps kommen u.a. Objective-C, Swift und Dart zu Einsatz. Unsere Webanwendungen setzen, wie nicht anders zu erwarten ist, auf die üblichen Verdächtigen: HTML, CSS und JavaScript.
Frameworks
- Die meisten unserer Backends setzen auf Spring als Framework. Genutzt wird dazu in den meisten Fällen Spring Boot zusammen mit Spring Data / Hibernate für den Zugriff auf die Datenbank.
- Flutter ist ein plattformübergreifendes, quelloffenes Framework von Google zur Erstellung von Apps. Wir nutzen Flutter für die Entwicklung der PatMed-App.
Datenbanken
- PostgreSQL ist eine bewährte, quelloffene, relationale Datenbank. So gut wie all unsere Dienste, die eine persistente Datenhaltung benötigen, setzen auf PostgreSQL.
Tooling
- Gradle ist ein leistungsstarkes und flexibles Build-Sytem zugeschnitten auf die Java Virtual Machine. Gradle nutzen wir für das Bauen unserer Anwendungen und zur Durchführung automatisierter Tests.
- TeamCity ist die von uns genutzte Continuous-Integration-Lösung. Mithilfe von TeamCity werden unsere Anwendungen zentral gebaut, getestet und bereitgestellt. Unsere Online-Services lassen sich per Knopfdruck direkt auf Test- und Produktivsysteme deployen.
- Grafana ist ein Tool zum Visualisieren von Metriken. Wir nutzen Grafana zum Überwachen unserer Infrastruktur und Services und zur Auswertung wichtiger Metriken.
- GitLab ist eine umfassende DevOps-Platform, die den gesamten Entwicklungszyklus abbildet. Wir nutzen GitLab hauptsächlich nur als Versionsverwaltungsystem.
- Docker setzen wir sowohl im Betrieb unserer Infrastruktur und verschiedener Dienste als auch für unsere TeamCity-Buildumgebungen ein.