TECHNOLOGIEN
TECHNOLOGIEN, MIT DENEN WIR ARBEITEN
MICROSERVICE-
ARCHITEKTUR
Die Zeiten klassischer monolithischer Architekturen sind inzwischen vorbei und vorrangig im Bereich von Altanwendungen anzutreffen. Beim Entwurf neuer Applikationen empfehlen wir dringend die Auswahl einer Anwendungsarchitektur, basierend auf dem Microservices Ansatz.
Aus dem Grundansatz „Do one thing and do it well“ ergeben sich neben dem offensichtlichen Vorteil der hervorragenden Skalierbarkeit weitere Vorteile in den Themenfeldern Unabhängigkeit, Robustheit und Wartbarkeit.
Jedoch resultieren gerade aus der unbedingt einzuhaltenden Unabhängigkeit auch Nachteile in Richtung erhöhter Komplexität, da die Anzahl eingesetzter Tools / Frameworks in solchen Systemen typischerweise anwächst und viel Querschnittsknowhow in den klassisch oft getrennten Themenfeldern Infrastruktur und Softwareentwicklung benötigt wird.
Aus diesem Grund setzen wir in solchen Projekten gerne den Devops-Ansatz ein.
AZURE
CLOUD
Die Bereitstellung einer sicheren und skalierbaren Cloud-Anwendung ist immer eine individuell, je Anwendungsfall zu betrachtende, Herausforderung und erfordert einen sorgfältigen Auswahl- und Planungsprozess. Auf Basis von Fragestellungen zu Themen wie insbesondere Skalierungsfähigkeit, Ausfallsicherheit, Flexibilität, Portabilität, Entwicklungs- und Betriebskosten sowie globalen Zugriffsanforderungen erarbeiten wir ein, auf die individuellen Bedürfnisse optimal zugeschnittenes, Architekturkonzept. Die Plattform unserer Wahl ist hierbei Microsoft Azure, wobei dies nicht zwangsläufig bedeuten muss, dass eine Anwendung in der Cloud betrieben werden muss. Aus diesem Designprozess können unterschiedlichste Konzepte resultieren, beginnend bei sehr einfachen Varianten auf Basis von virtuellen Maschinen über vernetzte Azure Functions bis hin zu komplexen Azure Kubernetes Services (AKS) Clustern oder der Nutzung einer Service Fabric.
CLOUD
DATENBANKEN
Aus der Idee der Unabhängigkeit der einzelnen Services im Rahmen einer Microservicearchitektur resultiert, dass in aller Regel, anstatt eines einzelnen monolithischen Datenbanksystems eine Mischung von unterschiedlichen Datenmodellen eingesetzt wird.
Dies hat zum einen ein enormes Potential, da jeder Microservice seine Daten so verwalten kann, wie es aus Performance- , Kosten- oder auch modelltechnischen Aspekten sinnvoll ist. Oftmals ist daher in größeren Anwendungen eine Mischung aus relationalen Datenbanken (z.B. Azure SQL oder Table Storage), dokumentenbasierten Datenbanken (z.B. Cosmos DB im Mode Document DB) oder auch graphenbasierten Datenbanken (z.B. Cosmos DB im Gremlin-Mode oder auch Neo4J) zu finden.
Zum anderen resultiert hieraus jedoch auch eine hohe Komplexität bei der Durchführung übergreifender Datenoperationen, insbesondere wenn Operationen transaktional durchgeführt werden müssen und es gleichzeitig eine hohes Maß an Datenredundanz im System gibt.
Für den schnellen Kontakt