© arleksey/shutterstock.com
Windows Developer
Microservices für .NET-Entwickler mit Azure Service Fabric

Vom Monolith zum Microservice

Sowohl der Start eines neuen Entwicklungsprojekts als auch eines neuen Jahres werden von guten Vorsätzen begleitet. Softwareentwickler nehmen sich oft vor, dieses Mal eine leicht zu wartende, übersichtliche und hoch skalierbare Anwendung zu entwickeln. Leider sieht die Realität - gerade bei großen Projekten - einige Zeit später anders aus. Trotz aller guten Vorsätze ist eine schwer zu wartende, monolithische Software entstanden. .NET-Entwicklern hilft Azure Service Fabric aus der Patsche.

Tobias Meier


Man kennt das Szenario: Allein schon der Umfang der Anwendung macht es schwierig, den Überblick über alle Aspekte der Software zu behalten. Das ist aber auch ganz normal. Denn jedes Team kann nur eine bestimmte Menge Code überblicken. Anschließend besteht beispielsweise die Gefahr von Redundanzen oder Fehleinschätzungen. Eine weitere Herausforderung in vielen Anwendungen stellen Abkürzungen in der Entwicklung dar. Statt den vorgesehenen Service für den Zugriff auf die Artikeldaten zu verwenden, wird direkt per Select auf die Tabelle zugegriffen. Einerseits verspricht sich der Entwickler hierdurch eine höhere Performance (wenn er z. B. nur einen Bruchteil der Daten benötigt), andererseits hat er weniger Aufwand. Monolithische Anwendungen haben aber noch einen weiteren Nachteil: Es ist schwer, sie auf eine neue Technologie, etwa .NET Core, zu migrieren.

Microservices bieten eine Lösung

Microservices-Architekturen versprechen, viele dieser Schwierigkeiten zu lösen. Die Forderung an Microservices, dass jeder Service eigenständig und eigenverantwortlich seine Daten speichert und verwaltet, stellt sicher, dass nicht aus anderen Bereichen direkt auf fremde Daten zugegriffen werden kann. Die Forderung, dass ein Microservice klein sein soll, gewährleistet, dass die Quellcodemenge deutlich geringer ist und so ein besserer Überblick möglich ist.

Die große Herausforderung ist es, Microservices so zu entwickeln, dass einerseits die Vorteile genutzt und mögliche Nachteile, z. B. aufgrund der Verteilung, vermieden werden können. .NET-Entwicklern steht eine Vielzahl verschiedener Möglichkeiten zur Verfügung, z. B. Azure Service Fabric, das in diesem Artikel vorgestellt wird. Einerseits ermöglicht Azure Service Fabric den Betrieb von Microservices, andererseits werden dem Entwickler verschiedene APIs angeboten, mit denen sich die Entwicklung von Microservices erheblich einfacher und effizienter gestaltet lässt. Beispielsweise können die API-Daten unabhängig von einer expliziten Datenbank in Queues bzw. Dictionaries gespeichert werden. Außerdem wird über das Reliable-Actor-API eine Möglichkeit zur Actor-orientierten Programmierung geboten. Anwendungen, die mit Azure Service Fabric erstellt wurden, können sowohl On-Premises als auch in Azure bzw. in anderen Cloud-Umgebungen wie z. B. AWS betrieben werden [1]. Dabei werden von Service Fabric nicht nur Windows-Server-Systeme als Plattform unterstützt, sondern auch Linux. Aktuell können Entwickler die Programmiersprachen .NET, ...

Windows Developer
Microservices für .NET-Entwickler mit Azure Service Fabric

Vom Monolith zum Microservice

Sowohl der Start eines neuen Entwicklungsprojekts als auch eines neuen Jahres werden von guten Vorsätzen begleitet. Softwareentwickler nehmen sich oft vor, dieses Mal eine leicht zu wartende, übersichtliche und hoch skalierbare Anwendung zu entwickeln. Leider sieht die Realität - gerade bei großen Projekten - einige Zeit später anders aus. Trotz aller guten Vorsätze ist eine schwer zu wartende, monolithische Software entstanden. .NET-Entwicklern hilft Azure Service Fabric aus der Patsche.

Tobias Meier


Man kennt das Szenario: Allein schon der Umfang der Anwendung macht es schwierig, den Überblick über alle Aspekte der Software zu behalten. Das ist aber auch ganz normal. Denn jedes Team kann nur eine bestimmte Menge Code überblicken. Anschließend besteht beispielsweise die Gefahr von Redundanzen oder Fehleinschätzungen. Eine weitere Herausforderung in vielen Anwendungen stellen Abkürzungen in der Entwicklung dar. Statt den vorgesehenen Service für den Zugriff auf die Artikeldaten zu verwenden, wird direkt per Select auf die Tabelle zugegriffen. Einerseits verspricht sich der Entwickler hierdurch eine höhere Performance (wenn er z. B. nur einen Bruchteil der Daten benötigt), andererseits hat er weniger Aufwand. Monolithische Anwendungen haben aber noch einen weiteren Nachteil: Es ist schwer, sie auf eine neue Technologie, etwa .NET Core, zu migrieren.

Microservices bieten eine Lösung

Microservices-Architekturen versprechen, viele dieser Schwierigkeiten zu lösen. Die Forderung an Microservices, dass jeder Service eigenständig und eigenverantwortlich seine Daten speichert und verwaltet, stellt sicher, dass nicht aus anderen Bereichen direkt auf fremde Daten zugegriffen werden kann. Die Forderung, dass ein Microservice klein sein soll, gewährleistet, dass die Quellcodemenge deutlich geringer ist und so ein besserer Überblick möglich ist.

Die große Herausforderung ist es, Microservices so zu entwickeln, dass einerseits die Vorteile genutzt und mögliche Nachteile, z. B. aufgrund der Verteilung, vermieden werden können. .NET-Entwicklern steht eine Vielzahl verschiedener Möglichkeiten zur Verfügung, z. B. Azure Service Fabric, das in diesem Artikel vorgestellt wird. Einerseits ermöglicht Azure Service Fabric den Betrieb von Microservices, andererseits werden dem Entwickler verschiedene APIs angeboten, mit denen sich die Entwicklung von Microservices erheblich einfacher und effizienter gestaltet lässt. Beispielsweise können die API-Daten unabhängig von einer expliziten Datenbank in Queues bzw. Dictionaries gespeichert werden. Außerdem wird über das Reliable-Actor-API eine Möglichkeit zur Actor-orientierten Programmierung geboten. Anwendungen, die mit Azure Service Fabric erstellt wurden, können sowohl On-Premises als auch in Azure bzw. in anderen Cloud-Umgebungen wie z. B. AWS betrieben werden [1]. Dabei werden von Service Fabric nicht nur Windows-Server-Systeme als Plattform unterstützt, sondern auch Linux. Aktuell können Entwickler die Programmiersprachen .NET, ...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang