Dapr v.1.0 gotowy do fazy produkcji
Distributed Application Runtime jest przenośnym środowiskiem uruchomieniowym o otwartym źródle. Pozwala programistom tworzyć odporne, bezstanowe i stanowe aplikacje, działające zarówno w chmurze, jak i na brzegu sieci. Twórcy Dapr v.1.0 opublikowali właśnie wersję gotową do produkcji.
„Wózek boczny” w Dapr v.1.0
Zadaniem Dapr jest ukrywanie złożoności systemów rozproszonych przez wprowadzanie specjalnego wzorca sidecar (tł. wózek boczny). Ten wózek jest dołączony do aplikacji nadrzędnej, zapewniając jej funkcje pomocnicze. Wzorzec pozwala złożyć aplikację z różnorodnych komponentów i technologii. Oddzielne procesy czy kontenery zapewniają odpowiednią izolację składników.
Działanie Dapr
Wśród pozostałych usług oferowanych przez Distributed Application Runtime jest m.in. wywołanie service-to-service z wzajemnym uwierzytelnianiem czy obsługa obszernych list kontroli dostępu (ACL). Oprócz tego środowisko Dapr zapewnia zabezpieczoną tożsamość za pomocą spiffe. Twórcy dostarczają każdą z usług z ponad 70 komponentami, które integrują się z technologiami chmury Azure, Google czy AWS.
Wydajność w Dapr v.1.0
W przypadku aplikacji natywnych w chmurze duże znaczenie ma wydajność. Twórcy tego środowiska włożyli wiele pracy w jej poprawę, zwłaszcza w bloku konstrukcyjnym „Wywołanie usługi”. Wprowadzone zmiany pozwoliły poprawić wyniki przy wywoływaniu dwóch usług za pomocą wzorca Sidecar Dapr. Korzystanie z tych „wózków bocznych” dodaje mniej niż 1.40 ms do 90 percentyla i około 2.10 ms do 99 percentyla podczas całego procesu wywołania.
Cały proces wywoływania usługi przebiega według poniższego schematu:
- Usługa A wykonuje wywołanie ukierunkowane na usługę B, które dalej przechodzi do lokalnego wózka bocznego.
- Środowisko wykrywa lokalizację usługi B przy pomocy komponentu rozpoznawania nazw.
- Dalej Dapr przekazuje wiadomość do Dapr Service B Sidecar.
- On z kolei przekazuje żądanie do określonego punktu końcowego w usłudze B, która następnie uruchamia kod logiki biznesowej.
- Usługa B wysyła odpowiedź do usługi A. Trafia ona do wózka bocznego usługi B.
- Dapr przekazuje odpowiedź do wózka bocznego Dapr Service A.
- Usługa A otrzymuje odpowiedź.
Dostępne języki i zestawy SDK
Dapr v.1.0 daje możliwość korzystania z dowolnego języka programowania przy pomocy protokołów HTTP oraz gRPC. Dzięki temu, podczas kompilacji nie ma potrzeby dołączania żadnych zależności. W nowej wersji wydano także zestawy SDK dla Java, Python, .NET oraz Gos, aby ulepszyć język natywny dla programistów. Dzięki tym zestawom programiści mogą korzystać z wybranego środowiska, tj. VS Code czy IntelliJ.
Podsumowanie
Głównym zadaniem nowego środowiska uruchomieniowego jest umożliwienie programistom pisania logiki biznesowej zamiast rozwiązywania problemów związanych z systemami rozproszonymi. Twórcy planują dalszą pracę nad rozwojem środowiska, wprowadzając nowe ulepszenia m.in. w blokach konstrukcyjnych.
Pełna dokumentacja jest dostępna na stronie projektu na GitHubie.