VorwortForeword

Dank der Umstellung auf die Cloud ist eine große Umstellung auf die "cloudnative" Entwicklung, die häufig mit microservice-Architekturen erstellt wurde.With the wave of cloud adoption well underway, there is a major shift happening towards “cloud native” development, often built with microservice-architectures. Diese mikrodienste sind sowohl Zustands frei als auch Zustands behaftet und werden in der Cloud und im Edge ausgeführt, was die Vielfalt der heute verfügbaren Sprachen und Frameworks einbezieht.These microservices are both stateless and stateful, and run on the cloud and edge, embracing the diversity of languages and frameworks available today. Diese Umstellung auf das Unternehmen wird sowohl von den Marktkräften der schnelleren Markteinführungszeit als auch von der Skalierbarkeit und Effizienz des Erstellens von Diensten für die Cloud gesteuert.This enterprise shift is driven by both the market forces of faster time to market, as well as the scale and efficiencies of building services for the cloud. Vor der Entwicklung von covid-19 wurde der Umstieg auf die Cloud für Unternehmen und Entwickler dazu aufgefordert, noch mehr zu tun, um diese verteilten Systemanwendungen zu entwickeln, und das wurde seit beschleunigt.Even before COVID-19, cloud adoption was accelerating for enterprises and developers were being asked to do even more to deliver on building these distributed system applications, and that has only accelerated since. Entwickler in Unternehmen sind bestrebt, sich auf die Geschäftslogik zu konzentrieren, während Sie auf Plattformen ausgerichtet sind, um Ihre Anwendungen mit Skalierbarkeit, Resilienz, Verwaltbarkeit, Elastizität und anderen Attributen von cloudbasierten Architekturen zu versehen. aus diesem Grund gibt es auch eine Umstellung auf Server lose Plattformen, die die zugrunde liegende Infrastruktur ausblenden.Developers in enterprises seek to focus on business logic, while leaning on platforms to imbue their applications with scale, resiliency, maintainability, elasticity, and the other attributes of cloud-native architectures, which is why there is also shift towards serverless platforms that hide the underlying infrastructure. Entwickler sollten nicht davon ausgehen, dass Sie zu verteilten Systemexperten werden.Developers should not be expected to become distributed systems experts. An dieser Stelle unterstützt DAPR Sie dabei, ob Sie eine Infrastruktur wie Kubernetes oder eine Server lose Plattform aufbauen.This is where Dapr steps in to help you, whether you are building on infrastructure such as Kubernetes, or on a serverless platform.

DAPR ist als Enterprise, Entwickler orientierte Plattform für die Programmierung von Platt formmodellen mit dem Mantra "beliebige Sprache, beliebiges Framework, überall ausführen" konzipiert.Dapr is designed as an enterprise, developer-focused, microservices programming model platform with the mantra “any language, any framework, run anywhere”. Dadurch wird das entwickeln verteilter Anwendungen auf allen Infrastrukturen, von der öffentlichen Cloud über den hierarchischen Edge und sogar bis hin zu IOT-Geräten mit einem einzelnen Knoten leicht und portabel.It makes building distributed applications easy and portable across any infrastructure, from public-cloud, through hierarchical edge, and even down to single node IoT devices.Es wurde sowohl in unseren Erfahrungen mit dem Entwickeln von Diensten in Azure als auch bei der Arbeit mit Kunden, die Anwendungen in Azure Kubernetes Service und Azure Service Fabric entwickeln, entwickelt.  It emerged from both our experiences building services in Azure as well as time spent working with customers building applications on Azure Kubernetes Service and Azure Service Fabric. Vor und hin sahen wir häufige Probleme, die Sie beheben mussten.Over and over, we saw common problems that they had to address. Es wurde deutlich, dass es notwendig war, eine "Bibliothek" allgemeiner bewährte Methoden für den bewährten Methoden Dienst bereitzustellen, die Entwickler verwenden konnten, nicht nur in neuen Greenfield-Anwendungen, sondern auch zur Unterstützung der Modernisierung vorhandener Anwendungen.It became clear that there was a need to provide a “library” of common microservice best practices that developers could use, not only in new greenfield applications, but also to aid in the modernization of existing applications. In der Container-, verteilten und vernetzten Cloud Native World ist das Sidecar-Modell der bevorzugte Ansatz, ähnlich wie DLLs bei der Client-/servergenerierung bevorzugt werden.In the containerized, distributed, and networked cloud native world, the sidecar model has emerged as the preferred approach, in the same way DLLs are preferred in the client/server generation. Die Verwendung von "Sidecar" und APIs von DAPR bietet Ihnen als Entwickler die gesamte Leistungsfähigkeit der Funktionen verteilter Systeme, mit der Einfachheit eines einzelnen lokalen http-oder GrpC-Aufrufes.Using Dapr’s sidecar and APIs give you, as a developer, all the power of distributed systems functionality, with the ease of a single HTTP or gRPC local call.

Zur Bewältigung der großen Bandbreite von Szenarien, denen Entwickler begegnen, bietet DAPR Features wie Zustands Verwaltung, Dienst-zu-Dienst-Aufrufe, Pub/Sub und Integration in externe Systeme mit e/a-Bindungen, die auf den Triggern und Bindungen von Azure Functions basieren.To address the wide range of scenarios that developers face, Dapr provides features such as state management, service to service invocation, pub/sub and integration to external systems with I/O bindings, which are based on the triggers and bindings of Azure Functions. Diese wiederum nutzen das Komponentenmodell von DAPR, das es Ihnen ermöglicht, den Austausch von anderen zugrunde liegenden Zustands speichern durchführen zu können, ohne Code ändern zu müssen, sodass der Code besser portierbar, flexibler und experimentieren kann, was Ihren Anforderungen am besten entspricht.These in turn take advantage of Dapr’s component model which allows you to “swap out”, say different underlying state stores, without having to change any code, making code more portable, more flexible and allowing for experimentation of what best suits your needs. Entwickler müssen keine Dienst-sdche erlernen und in Ihren Code integrieren, machen sich Gedanken über Authentifizierung, geheime Verwaltung, Wiederholungs Versuche oder bedingten Code, der sich auf bestimmte Bereitstellungs Umgebungen bezieht.Developers don’t need to learn and incorporate service SDKs into their code, worry about authentication, secret management, retries or conditional code that targets specific deployment environments.

Dieses Buch zeigt, wie Sie die Entwicklungszeit und die gesamte Codewartung durch DAPR verringern, indem Sie die kanonische .net-Referenz Anwendung "eShop" inkrementell "daperizieren"This book shows how Dapr reduces your development time and overall code maintenance by incrementally “Daperizing” the canonical .NET reference application, eShop. In der ursprünglichen eShop-Implementierung wurden z. b. große Mengen an Code zwischen Azure Service Bus und rabbitmq geschrieben, um Ereignisse zwischen Diensten zu veröffentlichen.For example, in the original eShop implementation, significant amounts of code were written to abstract between Azure Service Bus and RabbitMQ for publishing events between services. Der gesamte Code kann verworfen und einfach durch die Pub/Sub-API und das Komponentenmodell von DAPR ersetzt werden, die eine noch größere Anzahl von Pub/Sub-Brokern und nicht nur zwei haben.All this code can be discarded and simply replaced with Dapr’s pub/sub API and component model which had an even wider range of pub/sub brokers, rather than just two. Das Actor-Modell von DAPR zeigt, wenn es in der überarbeiteten eShop-Anwendung verwendet wird, die einfache Erstellung von lang andauernden, Zustands behafteten, ereignisgesteuerten Workflow Anwendungen, bei denen alle Schwierigkeiten bei der Parallelität und beim Multithreading entfernt wurden.Dapr’s actor model, when used in the reworked eShop application, shows the ease of building long running, stateful, event driven, workflow applications with all the difficulties of concurrency and multi-threading removed. Am Ende dieses Buchs sehen Sie die drastische Vereinfachung, die DAPR für Ihre Anwendungsentwicklung bietet, und ich glaube, dass alle Entwickler, die auf einer Cloud Native App-Entwicklung einsteigen, DAPR nutzen sollten.By the end of this book, you will see the drastic simplification that Dapr brings to your application development, and I firmly believe all developers embarking on a cloud native app building journey should leverage Dapr.

Wir haben DAPR mit dem Release v 0,1 im Oktober 2019 und jetzt, einem Jahr und der Hälfte später, angekündigt, dass DAPR für die Produktion mit Version 1.0 bereit ist.We publicly announced Dapr with the v0.1 release in Oct 2019 and now, a year and half later, I am thrilled to say that Dapr is ready for production usage with the v1.0 release. Der Einsatz von DAPR auf v 1.0 war wirklich eine Community.Getting Dapr to v1.0 has truly been a community effort. Es ist erstaunlich, dass die Open Source-Community zusammengeführt wurde, um DAPR zu sehen und zu wachsen, seit Sie erstmals angekündigt wurde – von 114 Mitwirkenden im Oktober 2019 bis zu über 700 in frühen 2021-einem sechsdimensionalen Anstieg in 16 Monaten!It has been amazing to see the open-source community coalesce around Dapr and grow since it was first announced – from 114 contributors in October 2019 to over 700 in early 2021 - a six-fold increase in 16 months! Die Beiträge zum Projekt sind an jedes DAPR-Repository gegangen und sind von den Problemen beim Öffnen, bei der Bereitstellung von Featurevorschlägen, bei der Bereitstellung von Beispielen und von natürlich Mitwirkenden Code abhängig.Contributions to the project have gone to every Dapr repo and have ranged from opening issues, commenting on feature proposals, providing samples, and of course contributing code. Die Teile der Mitglieder der Projekt Community haben zu den meisten gehören die DAPR-Laufzeit, die Dokumentation, die CLI, sdche und die Erstellung eines umfangreichen Ökosystem von Komponenten.The parts of the project community members have contributed to the most include the Dapr runtime, docs, CLI, SDKs and the creation of a rich ecosystem of components. Die Beibehaltung dieser Offenheit ist wichtig für die Zukunft von DAPR.Maintaining this openness is critical to Dapr’s future.

DAPR wird jedoch erst gestartet, und Sie sollten davon ausgehen, dass Sie weitere DAPR-Funktionen und mehr Unterstützung für DAPR in Azure-Diensten erhalten.Dapr is really just getting started, though, and you should expect to see more Dapr capabilities and more support for Dapr in Azure services. Ich hoffe, dass Sie DAPR nutzen werden, damit Sie sich auf Ihre Geschäftslogik konzentrieren und die Entwicklung von microservices beschleunigen können.I hope that you will take advantage of Dapr to enable you to focus on your core business logic and accelerate your microservices development. Ich bin begeistert, dass Sie uns in der DAPR-Community auf dieser Journey bei und bei der Uneinigkeit beteiligen können  https://github.com/dapr/ https://aka.ms/dapr-discord .I am are excited to have you join us in the Dapr community on this journey at https://github.com/dapr/ and on Discord https://aka.ms/dapr-discord.

Moderne verteilte Systeme sind komplex.Modern distributed systems are complex. Sie beginnen mit kleinen, locker gekoppelten, unabhängig bereitstell baren Diensten.You start with small, loosely coupled, independently deployable services. Diese Dienste überschreiten Prozess-und Server Grenzen.These services cross process and server boundaries. Anschließend nutzen Sie unterschiedliche Arten von Infrastruktur Unterstützungsdiensten (Datenbanken, Nachrichten Broker, Schlüssel Tresore).They then consume different kinds of infrastructure backing services (databases, message brokers, key vaults). Zum Schluss bilden diese verschiedenartigen Teile zusammen, um eine Anwendung zu bilden.Finally, these disparate pieces compose together to form an application.

Mark Russinovich Azure CTO und technische Kollegen MicrosoftMark Russinovich Azure CTO and Technical Fellow Microsoft