Open ericltw opened 4 years ago
Microservice architecture帶來了許多好處,包含:可擴展性(scalability),loose service coupling,獨立部署。但同時也衍生了許多問題,包含:cloud與edge間的可移植性,distributed system問題,像是:狀態管理,彈性方法調用,處理事件。
Dapr封裝了構建microservice的最佳實踐,目的是讓開發者專注解決business logic。
Dapr為open source, portable, event-driven runtime使開發人員可以輕鬆構建在cloud和edge上運行彈性,以microservice所構件的stateless, stateful的應用。開發者可以使用各種語言,和各種開發框架和Dapr進行整合。
Building Blocks
是實現distributed system功能(如:pub/sub, state management, resource binding, distributed tracing)的component集合。
Components
封裝構件building blocks API的實現。許多component都是pluggable,因此可以快速的從一種實現換到另一種實現。
Portable (platformed agnostic)
Dapr目前支援兩種運行模式。能夠在本地開發環境開發Dapr應用程序,在其他支持的環境中部署和運行。
目前所支援的兩種運行模式:
run applications locally
run on Kubernetes cluster
Language Neutral
開發者可以使用各種語言開發microservice業務邏輯,只要該語言支持HTTP或gRPC通訊協定,則能夠和Dapr進行整合。Dapr除了公開HTTP和gRPC的API接口,也能夠過Dapr所釋出的SDK包與Dapr進行整合,支援包含:Go, Java, JavaScript, .NET, Python等語言。
Vendor Neutral
Dapr不受限特定的verdor的解決方案。以bindings building block為例,實現的component包含AWS SQS, Azure EventHubs, GCP Cloud Pub/Sub...。
Service Invocation
彈性的service-to-service方法調用,包含retries。
State Management
key/value pairs狀態管理。
Pub/Sub
Event driven Resource Bindings
Virtual Actors
Distributed Tracing between Services
Dapr
背景
Microservice architecture帶來了許多好處,包含:可擴展性(scalability),loose service coupling,獨立部署。但同時也衍生了許多問題,包含:cloud與edge間的可移植性,distributed system問題,像是:狀態管理,彈性方法調用,處理事件。
目的
Dapr封裝了構建microservice的最佳實踐,目的是讓開發者專注解決business logic。
介紹
Dapr為open source, portable, event-driven runtime使開發人員可以輕鬆構建在cloud和edge上運行彈性,以microservice所構件的stateless, stateful的應用。開發者可以使用各種語言,和各種開發框架和Dapr進行整合。
Core Concept
Building Blocks
是實現distributed system功能(如:pub/sub, state management, resource binding, distributed tracing)的component集合。
Components
封裝構件building blocks API的實現。許多component都是pluggable,因此可以快速的從一種實現換到另一種實現。
特性
Portable (platformed agnostic)
Dapr目前支援兩種運行模式。能夠在本地開發環境開發Dapr應用程序,在其他支持的環境中部署和運行。
目前所支援的兩種運行模式:
run applications locally
run on Kubernetes cluster
Language Neutral
開發者可以使用各種語言開發microservice業務邏輯,只要該語言支持HTTP或gRPC通訊協定,則能夠和Dapr進行整合。Dapr除了公開HTTP和gRPC的API接口,也能夠過Dapr所釋出的SDK包與Dapr進行整合,支援包含:Go, Java, JavaScript, .NET, Python等語言。
Vendor Neutral
Dapr不受限特定的verdor的解決方案。以bindings building block為例,實現的component包含AWS SQS, Azure EventHubs, GCP Cloud Pub/Sub...。
Building Blocks
Service Invocation
彈性的service-to-service方法調用,包含retries。
State Management
key/value pairs狀態管理。
Pub/Sub
Event driven Resource Bindings
Virtual Actors
Distributed Tracing between Services
Reference