Aktuelles aus dem Ressort Architektur

Rehosting, Replatforming & Refactoring: Über die Containerisierung von Monolithen

Monolithische Architekturen und Legacy-Anwendungen erschweren Innovationen und beeinträchtigen die Entwicklerproduktivität. Immer mehr Unternehmen setzen deshalb auf die Containerisierung der Monolithen. Die Migration einer monolithischen Anwendung auf eine cloudfähige, containerisierte Architektur erfolgt dabei in vielen Fällen sukzessive, und zwar in den Schritten Rehosting, Replatforming und Refactoring.

Zwei Schritte vor und keinen zurück: Von VB6 direkt zur Browser-App

Eine Visual-Basic-Anwendung mag ausgereift sein und ihren Dienst noch funktional erfüllen, sie ist technisch und in Bezug auf die Benutzeroberfläche dennoch eine Altlast. Der Autor zeigt einen neuen, werkzeugbasierten Ansatz zur Anwendungsmodernisierung, der mit einem hohen Automatisierungsanteil eine effiziente Alternative zum Neuschreiben bietet. Im dargestellten Kundenprojekt wurden so sechzehn Anwendungen mit zwei Millionen Lines of Code von Visual Basic (VB) direkt in eine moderne Browser-App transformiert.

Kolumne: Stropek as a Service – Schnittstellen zu Kunden außerhalb der Cloud

Wer SaaS-Lösungen für Geschäftskunden anbietet, der steht über kurz oder lang vor der Herausforderung, Schnittstellen zu IT-Systemen bei Kunden umsetzen zu müssen, die nicht in der Cloud liegen. Vielleicht muss man Stammdaten mit einem CRM-System abgleichen, das im Netzwerk des Kunden läuft. Möglicherweise braucht es einen Datenaustausch mit einer beim Kunden betriebenen Buchhaltung. In manchen Fällen ist man eventuell sogar selbst gezwungen, aufgrund gesetzlicher Rahmenbedingungen bezüglich Cloud-Nutzung eine hybride Softwarelösung zu erstellen, die zum Teil in der Cloud und zum Teil im Rechenzentrum der Kunden ausgeführt wird. Da ich in meiner Cloud-Beratungsarbeit immer wieder merke, dass Azure-Neulinge für solche Probleme nur auf die üblichen Lösungsansätze zurückgreifen, die man auch außerhalb der Cloud kennt, widme ich diese Kolumne dem Thema Cloud-Schnittstellen. Die Microsoft-Azure-Cloud bietet einige interessante Dienste, die die Umsetzung solcher Schnittstellen deutlich vereinfachen kann.

Microservices, Modulithen, Monolithen

Seit 2012 und dem Artikel von James Lewis und Martin Fowler sind Microservices in aller Munde. Sie schienen die Antwort auf eine stets wachsende Komplexität und die Cloud zu sein. Aber mit der Zeit wurde es immer deutlicher, dass es Aufgabenstellungen gibt, die anders beantwortet werden müssen.

Microservices oder Monolithen? Beides!

Seit 2012 und dem Artikel von James Lewis und Martin Fowler sind Microservices in aller Munde. Sie schienen die Antwort auf eine stets wachsende Komplexität und die Cloud zu sein. Aber mit der Zeit wurde es immer deutlicher, dass es Aufgabenstellungen gibt, die anders beantwortet werden müssen.

Vaughn Vernon über DDD, Microservices und reaktive Programmierung

Die Geburtsstunde des Domain-driven Design liegt im Jahr 2003. Eric Evans Buch „Domain-Driven Design: Tackling Complexity in the Heart of Software“ war ein Meilenstein und wird heute noch vielfach rezipiert. Entscheidend zur Verbreitung von DDD hat zudem Vaughn Vernons Werk „Implementing Domain-Driven Design“ beigetragen. Wir haben uns mit Vaughn über die Motivation und Kernideen hinter DDD sowie ihr Verhältnis zu Microservices und reaktiven Architekturen unterhalten.

Event-basiert und evolvierbar: Anwendungsentwicklung mit dem Axon Stack

Obgleich das Zielbild sowohl ein Monolith als auch eine Microservices-Architektur sein kann – das Axon Framework offeriert einen leichtgewichtigen Ansatz zur Implementierung Event-basierter Anwendungen. Dabei stützt sich das Framework auf gängige Muster aus dem Domain-driven Design (DDD) [1] und begünstigt die Umsetzung einer Anwendung nach dem Architekturprinzip Command Query Responsibility Segregation (CQRS) [2] und der Persistenzstrategie Event Sourcing [3]. Durch diese Flexibilität und die Tatsache, dass das Axon Framework bestens mit dem Spring Framework integriert ist und damit ein quasistandardisiertes Programmiermodell unterstützt, ist es für den modernen Java-Entwickler einen Blick wert.

X
- Gib Deinen Standort ein -
- or -