{"id":28244,"date":"2020-06-11T10:05:28","date_gmt":"2020-06-11T08:05:28","guid":{"rendered":"https:\/\/www.intellias.com\/open-source-cqrs-framework-for-cloud-native-microservices\/"},"modified":"2024-05-10T03:52:08","modified_gmt":"2024-05-10T01:52:08","slug":"open-source-cqrs-framework-for-cloud-native-microservices","status":"publish","type":"post","link":"https:\/\/intellias.com\/de\/open-source-cqrs-framework-cloud-native-microservices\/","title":{"rendered":"Open-Source-CQRS-Framework f\u00fcr Cloud-Native-Microservices"},"content":{"rendered":"
Als vertrauensw\u00fcrdiger Anbieter von Softwareentwicklungsdiensten f\u00fcr f\u00fchrende Technologieunternehmen und Fortune-500-Unternehmen arbeitet Intellias st\u00e4ndig an der Entwicklung von Vorw\u00f6rtern und innovativen L\u00f6sungen. Aufgrund unserer umfangreichen Erfahrung mit Cloud-basierten Technologien, insbesondere mit dem schnell wachsenden Microsoft Azure, fehlten uns komplexe Anwendungen und Cloud-Frameworks, die uns und unseren Kunden helfen w\u00fcrden, die Entwicklung von Mikroservice-Produkten zu steigern. Um diesen Bedarf zu decken, haben wir unser Cloud-Fachwissen innerhalb des Unternehmens gesammelt und beschlossen, unser eigenes serverloses CQRS-Framework f\u00fcr Cloud-native Microservices zu entwickeln.<\/p>\n
Wir entwickelten unser System in f\u00fcnf Stufen, um eine hohe Datenkonsistenz und optimale operative Effizienz zu gew\u00e4hrleisten:<\/p>\n
Im Streben nach einem zuverl\u00e4ssigen Betrieb verwenden wir Sperren von Befehlen, integrieren zweiphasiger Commits und stellen die Deduplizierung und Abfolge von Ereignissen sicher.<\/p>\n
Da der Verkehr zum Lesen und Schreiben der Daten in einem Prim\u00e4rspeicher unterschiedlich ist und die gesamte Kommunikation asynchron erfolgt, bestand unsere Aufgabe darin, das CQRS-Framework an asymmetrische Lasten anpassbar zu machen. Deshalb haben wir das Konzept des dom\u00e4nengesteuerten Designs (DDD) verfolgt, um die Gesch\u00e4ftslogik und die Produktentwicklung zu optimieren.<\/p>\n
Wir bauten unser System auf einem serverlosen Modell auf und w\u00e4hlten Azure als den am schnellsten wachsenden und vielversprechendsten Cloud-Anbieter auf dem Markt. Basierend auf den Technologien C#, Azure Functions, Azure Service Bus, Cosmos DB, Azure Search, Azure Storage, GraphQL und Azure DevOps verf\u00fcgt unser Framework \u00fcber eine ereignisgesteuerte Architektur und die folgenden kritischen Komponenten:<\/p>\n
Der vollst\u00e4ndige Datenfluss des Intellias CQRS-Frameworks beginnt, wenn ein Benutzer die SPA besucht. Je nachdem, auf welche Schaltfl\u00e4chen die Benutzer auf der Webseite klicken, werden ihre Anfragen von der SPA zum Gateway weitergeleitet. Das Gateway wiederum verarbeitet die Anfragen, indem es sie an die entsprechenden Subdomains sendet. Dann wendet der CommandHandler die erforderlichen \u00c4nderungen auf das System an, aktiviert die Aggregate Root und delegiert Befehle an sie.
\n<\/p>\n
Um sicherzustellen, dass alle Ursachen und Auswirkungen von Ma\u00dfnahmen nachvollziehbar sind, verwenden wir das Event Sourcing-Muster, das die von der Aggregate Root implementierten \u00c4nderungen verfolgt.
\n<\/p>\n
Nachdem alle \u00c4nderungen gespeichert wurden, benachrichtigt der CommandHandler \u00fcber die erfolgreiche Befehlsausf\u00fchrung und ver\u00f6ffentlicht das Integrationsereignis. Als n\u00e4chstes \u00fcbernimmt der EventHandler die Informationen, um sie in den QueryModels zu aktualisieren.
\n<\/p>\n
Die QueryModels optimieren Daten f\u00fcr das Lesen und der EventHandler n\u00e4hert sich der SPA \u00fcber das Gateway, um \u00c4nderungen auf dem Bildschirm des Benutzers anzuzeigen.
\n<\/p>\n
Manchmal kann die Validierung von Benutzeranfragen fehlschlagen. Um solche Probleme korrekt anzugehen, haben wir einen Mechanismus implementiert, der es erm\u00f6glicht, alle Details \u00fcber Fehlerursache und -zustand abzurufen. Unser Azure-Cloud-Migrationsrahmen kann auch im Falle eines kritischen Ausfalls alle Ereignisse wiederherstellen.<\/p>\n
Heute ist das von Intellias speziell entwickelte CQRS-Framework ein v\u00f6llig einzigartiger, einmaliger Cloud-Softwarebeschleuniger. Es dient als Erm\u00f6glicher von Microservice-L\u00f6sungen f\u00fcr Unternehmen, die mit Azure in verschiedenen Bereichen und Branchen von FinTech bis zum Gesundheitswesen arbeiten. Einige fr\u00fche Anwender unserer Technologie profitieren bereits von den Vorteilen des CQRS-Frameworks.<\/p>\n
Mit der maximalen Systemkapazit\u00e4t von 500 TB und einer Spitzenleistung von rund 4 Milliarden pro Sekunde verarbeiteten Transaktionen kann unser CQRS-Framework Geschwindigkeiten von bis zu 1000 Instanzen pro Minute skalieren und jeden Mikrodienst unabh\u00e4ngig voneinander bereitstellen. Solche Vorteile helfen Unternehmen, die Zeit bis zur Markteinf\u00fchrung ihrer Produkte zu beschleunigen, die Entwicklungszeit um bis zu 50% zu verk\u00fcrzen und die Infrastrukturkosten um 80% zu senken.<\/p>\n
Nachdem wir bei Intellias ein solch revolution\u00e4res Framework entwickelt haben, setzen wir es intern aktiv ein. Das CQRS-Framework ist zu einem Kernst\u00fcck unserer internen Talentmanagement-Plattform und der Unternehmenssysteme zur Abwicklung von Gesch\u00e4ftsprozessen geworden.<\/p>\n","protected":false},"excerpt":{"rendered":"
Wir haben ein einzigartiges flexibles architektonisches Framework entwickelt, das vollst\u00e4ndig serverlos ist und sich leicht f\u00fcr Microservices in Azure Cloud anpassen l\u00e4sst<\/p>\n","protected":false},"author":17,"featured_media":50580,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[42],"tags":[69,335,582],"class_list":["post-28244","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fallstudie","tag-cloud-de","tag-devops-de","tag-platform-development-de-2","technologies-azure-devops","technologies-azure-functions","technologies-azure-search","technologies-azure-service-bus","technologies-azure-storage","technologies-c-2","technologies-cosmo-db","technologies-graphql"],"acf":[],"yoast_head":"\n