Tworzenie skalowalnych i wydajnych mikroserwisów w rozproszonym środowisku chmurowym wymaga dużej dyscypliny u programisty oraz zastosowania wielu narzędzi ułatwiających to zadanie. Im większy system, tym większej uwagi wymaga. Rozproszone środowisko dodatkowo wymusza korzystanie z zewnętrznych rozwiązań ułatwiających pracę ze stanem systemu, takich jak cache.
Zdarzyło Ci się kiedyś pogubić w tym, gdzie leży która usługa i skąd się wziął błąd w systemie? Czy nie łatwiej byłoby mieć jedno narzędzie, które utrzyma wszystkie usługi pod kontrolą i zapewni niezawodne zarządzanie stanem aplikacji bez konieczności używania zewnętrznych systemów? W czasie swojej prelekcji Krzysiek przedstawił, jak sprawdzony w bojach Azure Service Fabric zapewnia stabilną kontrolę nad systemem mikroserwisów oraz pozwala stworzyć aplikację bez użycia zewnętrznej bazy danych i systemu cachingu. Swoje doświadczenie z Azure Service Fabric nabył w codziennej pracy w dużym projekcie dla korporacji finansowej w FP.
14. Gotowy model komunikacji w Service Fabric
▪ Fault Handling
▪ Konfigurowalne
▪ Wygodne, gotowe i optymalne rozwiązanie dla wielu protokołów
źródło: buildazure.com
15. var myServicePartitionClient = new ServicePartitionClient<MyCommunicationClient>(
_myCommunicationClientFactory,
"fabric:/MyApp/MyService",
myPartitionKey);
var result = await myServicePartitionClient.InvokeWithRetryAsync(async (client) => {
// Communicate!
}, CancellationToken.None);
Service Partition Client
17. Co trzeba zrobić, żeby zacząć korzystać z komunikacji w SF?
▪ Dodanie listenera do klasy Service’u
▪ Dodanie endpointa w konfiguracji
źródło: pixabay.com
52. var myServicePartitionClient = new ServicePartitionClient<MyCommunicationClient>(
_myCommunicationClientFactory,
"fabric:/MyApp/TestService",
myPartitionKey);
var result = await myServicePartitionClient.InvokeWithRetryAsync(async (client) => {
await client.GetValueAsync("key");
}, CancellationToken.None);
Używając metod komunikacji w Service Fabric
IMyService myService =
ServiceProxy.Create<IMyService>(new Uri("fabric:/MyApp/Testervice"));
string value = await myService.GetValueAsync("key");
55. Jak zacząć nastepny projekt w Service Fabric?
▪ Service Fabric SDK i rozszerzenie Azure do VS
▪ Wybierz template, który Cię interesuje
▪ Zacznij pisać – gotowy przykład u mnie na blogu (link do
materiałów zaraz)
źródło: buildazure.com
56. Krzysztof „Jakub” Sikora
Jak Service Fabric rozwiąże twoje problemy z
microservicami?
ksikora@future-processing.com
fdd.gruba.it