Service Fabric, dzień 2 – Stateful & Stateless

Widywałem już, wynikające zapewne z tłumaczenia tych pojedynczych słów – stateful, stateless – podsumowania, że te dwa rodzaje usług różnią się posiadaniem lub nie posiadaniem stanu przechowywanego między poszczególnymi wywołaniami. Uproszczenie niby małe, ale jednak wprowadzające w konkretny błąd. Należy do niego dodać jeszcze słówko “lokalnie”. To znaczy usługę stateful można przerobić na usługę stateless nie rezygnując z żadnych stanów, a jedynie zmieniając miejsce ich zapisu poprzez umieszczenie go poza samą usługą. Dzięki temu np. po wywrotce węzła jego redundantna lub nowo uruchomiona kopia odczytuje aktualny stan usługi z zewnętrznej lokalizacji i wszystko działa bez zakłóceń.

Most services have states. However, this doesn’t mean they are stateful. The only difference between stateful services and stateless services is where states are stored.

– Programming Microsoft Azure Service Fabric (Haishi Bai)

Swoją drogą nie dziwią mnie te niedopowiedzenia – to nazewnictwo nie jest specjalnie intuicyjne. Co poradzić, opisowe pewnie byłoby niewygodne.

Service Fabric, dzień 1 – Microservices

Mikroserwisy, kto nie słyszał o mikroserwisach? Owiane nutką tajemnicy i nowoczesności, modne, intrygujące. Z jednej strony “róbcie mikroserwisy, są eleganckie, skalowalne, niezawodne”, z drugiej “nie róbcie mikroserwisów, chyba, że naprawdę musicie i dobrze wiecie co robicie”. Bądź tu człowieku mądry. Ale tak to już zdaje się jest, praktycznie nie ma rozwiązań, które załatwiałyby w elegancki sposób skomplikowane problemy i nie wymagały jednocześnie ostrożności w projektowaniu i konstruowaniu.

Service Fabric to mikroserwisy, pod nie przynajmniej jest ta usługa zaprojektowana i one są preferowaną metodą wykorzystania Service Fabric.

To a great extent, the art of a software architect is to strike a balance between the number of components and the number of communication paths.

– Programming Microsoft Azure Service Fabric (Haishi Bai)

Nie pozostaje zatem nic innego jak uczyć się, zdobywać doświadczenie, pytać lepszych i zostawać art-engineer 😉

Service Fabric, prolog

Zacząłem czytać o Service Fabric i zaraz na początku urzekło mnie to:

Programming Microsoft Azure Service Fabric (Haishi Bai)

Powinno się wprowadzić jakiś obowiązek, że każda techniczna książka, szczególnie posiadająca znamiona dokumentacji, powinna zawierać na początku taki przewodnik. Co prawda tę i tak prawdopodobnie przeczytam całą, ale idea jest szczytna i należy ją wspierać.

Dodatkowo, tak na marginesie, dziś zauważyłem, że nie dość że weszła w PREVIEW zmiana, o której napisałem tutaj, to jeszcze przebudowano menu portalowe scalając Settings i Tools (no nie wszędzie, ale tam gdzie mi pasuje jest OK) i pogrupowano to wszystko razem sensownie po funkcjonalnościach. Na przykład nareszcie ustawienia logów są tuż obok Log Stream i nie trzeba się przełączać jak potłuczony. Tyle dobra na raz, wzruszyłem się 😉

Azure Service Fabric

Ależ mnie to interesuje. W sumie jest kilka technologii w Azure, które leżą i czekają na trochę więcej wolnego czasu żeby zrobić z nich coś ciekawego, albo przynajmniej się pobawić i zobaczyć co z czym i jak.

  • Logic Apps
  • Azure Functions
  • Service Fabric

W Functions już nieco dłubałem, trochę Hello World, ale wpuściłem także drobną rzecz na testowy okres w produkcję i działało bardzo fajnie. Logic Apps bardzo mnie intryguje, ale Service Fabric to po prostu mind blown. Usługa, na której wewnętrznie Microsoft buduje swoje inne usługi w chmurze (np. Azure SQL). Strasznie kręci mnie ta wizja, trochę się obawiam, że nie będę miał okazji jakoś poważniej z niej skorzystać w najbliższym czasie. Ale będę próbował.

Kupiłem książkę, będzie czytane.

Big deal

Dziś jest intensywny dzień, pod każdym względem. No, prawie.

  • W domu rocznica ślubu. Chyba więcej dodawać nie trzeba. Big deal.
  • W biurze najważniejsza premiera roku. Największe oczekiwania. Największa spinka. Największa nadwrażliwość na nawet małe fuck-upy. Big deal.
  • W chmurze normalnie nieobciążony worker, dostający o pełnych godzinach paczki zleceń, który pojedyncze zlecenie spokojnie obrabia sobie w ok. 1 sekundę dostał ich w pierwszej paczce ponad 5000. Matematykę zostawiam przenikliwości czytelnika, podpowiem tylko jednak, że to się nie całkiem bilansuje w godzinie.
    Oh well… Po 5 minutach odpalił się kolejny, potem kolejny. Wciągnął paczkę,  wypluł wyniki, ziewnął i się wyłączył. Developer w tym czasie pił kawę, z filiżanki, odchylając mały palec. Like a sir. Chmura jest super. Big deal.

Service Bus incoming!

Człowiek sobie zrobi dwa tygodnie przerwy, w trakcie których wymienia Internet na kontakt z naturą. No co to się może wydarzyć przez dwa tygodnie? Sezon ogórkowy, ludzie na urlopach, nawet muchy na suficie się nudzą.

Aż tu 25 lipca jak nie gruchnie.
https://azure.microsoft.com/en-us/blog/service-bus-and-the-new-azure-portal/

Jedna z lepszych usług w Azure w końcu doczeka się transferu do portalu. I normalnie bym wziął i przegapił. Mój pretendent do najlepszego newsa sezonu letniego.

Swoją drogą Azure z mojego aktualnego punktu siedzenia i widzenia notuje w ciągu ostatniego pół roku bardzo dobrą passę- Service Fabric GA, Logic Apps GA, Azure Functions. I teraz ta wisienka. Jeszcze ciut i prawie nie będę musiał korzystać ze “starego”.

Modły zostały wysłuchane 😉