Service Fabric, dzień 4 – Service/Actor API

Service Fabric udostępnia dwa frameworki do tworzenia mikroserwisów w swoim obrębie:

  • Reliable Service API – pozwala na bezpośredni dostęp do elementów Service Fabric jak połączenia czy stosy komunikacyjne,
  • Reliable Actor API – jednowątkowy, asynchroniczny model programowania z wykorzystaniem, a jakże, aktorów. Pozwala implementować aktora jak jednowątkowy singleton.

Różnią się przede wszystkim tym, że Actor API jest frameworkiem wyższego poziomu, operującym na wyższym poziomie abstrakcji.

Takie dwupoziomowe podejście to ciekawa opcja. Można wykorzystać bardziej przystępny, intuicyjny model do tworzenia nawet skomplikowanych projektów czy do sprawnego wykonania proof of concept albo użyć niższego poziomu jeśli chce się wycisnąć z usługi jej maksimum i przede wszystkim mieć pełną kontrolę nad wszystkim.

Czytania weekendowego cd.

Dziś zaległy (bardzo) numer czerwcowy i kilka tematów nieco bardziej obok stricte techu.
“Agile i Waterfall – wdrożenia a zapisy umowy” zainteresowało mnie pod kątem potencjalnego zastosowania wewnątrz organizacji, jako, że akurat nie pracuję w ani dla firmy tworzącej i wdrażającej rozwiązania dla swoich klientów.
“Nie ufamy chmurze” – warto się dowiedzieć jak to wygląda w przekroju całej branży bo moje tzw. najwyższe kierownictwo jest bardzo techniczne i problem nie występuje.
“Jak zdobyć mobilnego klienta i na nim zarobić” – OK, ten tytuł jest trochę zbyt szumny. Na co dzień blisko współpracuję z marketingiem i PR i mogę powiedzieć tylko tyle – That’s cute. Oczywiście przytoczone informacje są prawdziwe, ale to temat rzeka. Jest parę przykładów gier-hitów, ale “gra” to jest za szerokie określenie. Taktyki pozyskiwania i zatrzymywania klientów dramatycznie się różnią w zależności od gatunku i grupy docelowej.

Weekendowe lektury papierowe

Zabrałem się za małe nadrabianie lektury. Czasem lubię poczytać z papieru, tzn. ogólnie lubię, książka dobra rzecz, ale tym razem branżowo – to już zdarza mi się rzadziej. Tym razem sierpniowy numer IT professional.

Trochę przekartkowałem, trochę poczytałem dokładniej. Z jednej strony poczułem się lekko zbudowany, że na niektóre sprawy poruszone w tym numerze udało mi się z własnej inicjatywy zwrócić uwagę i odzwierciedlić to we wpisach tutaj. Być może moje postrzeganie branży nie jest tak chaotyczne jak mi się wydawało. Z drugiej z kolei znowu poczułem daleko idące braki w czasie na edukację, szczególnie po lekturze krótkiego, ale konkretnego Big Data as a Service. Mam nieodparte, graniczące z pewnością wrażenie, że osobie z moimi ambicjami i pomysłami na przyszłość wypada znacznie więcej wiedzieć o tej dziedzinie. W Azure, w którym na co dzień pracuję, jest to dla mnie wciąż tak biała plama, że aż wstyd…

No nic, zobaczymy, czy ten kolejny sygnał pozwoli mi lepiej się zmotywować do ogarnięcia tego kierunku.

 

Nowinki, nowinki…

Dwa istotne newsy z tego tygodnia, dwie funkcjonalności na różnych etapach życia:

Wsparcie dla formatu JSON w Azure SQL kończy Preview i wchodzi w fazę General Availability. Yay! W dobie kiedy serwisy często wymieniają między sobą dane za pomocą tego lekkiego formatu możliwość wyciągnięcia informacji z bazy lub zapisu do niej wprost z JSONa jest słodziutka. Będę korzystał tak bardzo…

Wchodzi też kolejna nowość – otóż do każdego service planu, a wręcz do każdego deployment slotu w Web Appie możemy utworzyć sobie bazę MySQL stojącą razem z www. Co prawda nie nadaje się to (przynajmniej na razie) do tworzenia elastycznych systemów bo nie obsługuje skalowania, ale nadal jest to wielki krok naprzód. Jak mi się nie chciało za bardzo kombinować tak teraz będę się poważnie zastanawiał nad przerzuceniem tego bloga do Azure. A co 🙂

Service Fabric, dzień 3 – Podstawowa terminologia

Krótko o podstawowych, najważniejszych terminach używanych w trakcie zajmowania się Service Fabric:

  • Node – węzeł – proces runtime usługi Service Fabric, w praktyce – pojedyncza maszyna (w przypadku Azure – wirualna),
  • Cluster – klaster – zestaw węzłów (o wysokiej dostępności, niezawodności itd…),
  • Application – aplikacja – zbiór usług, mikroserwisów,
  • Service – usługa, mikroserwis – jednostka dostarczająca jakieś konkretne funkcjonalności
  • Partition – partycja – usługa może posiadać wiele partycji, tzn. być uruchomiona w wielu instancjach w klastrze, ten mechanizm służy do zarządzania obciążeniem – load balancing pomiędzy wieloma instancjami tej samej usługi,
  • Replica – replika – redundancja w ramach instancji (partycji) usługi, mechanizm służy do zapewnienia ciągłości działania – płynne przełączanie pomiędzy Primary i Secondary zarówno w trakcie wyłożenia się procesu usługi jak i w przypadku deployowania updatu.

Tyle na razie. Do tych jeszcze wrócimy, nadejdzie też parę nowych.

Azure User Group live z Krakowa

Kiedy wczoraj pisałem o community zupełnie zapomniałem, że dziś jestem w Krakowie na spotkaniu Azure User Group!

Dzisiaj bardzo interesujące tematy: IoT, Service Fabric i Functions. Nie pamiętam kiedy agenda była tak w punkt z moimi zainteresowaniami.

Here we go!

[19:00] Grubo, fajne przykłady rozwiązań architekturalnych dla IoT oraz wstęp do Service Fabric uzupełniony demkiem. Muszę koniecznie zrobić taki eksperyment u siebie. A na deser Functions…

AUGPL KRK 3

[20:00] Functions też było super, parę ciekawych wykorzystań i obejść dla mechanizmów, które teoretycznie dostępne są tylko w wyższych planach cenowych.

Pisałem już, że warto wybierać się na spotkania community? Pisałem, wczoraj. No, to warto 😉

I jeszcze jedno – tacy Panowie mówili na takie tematy: agenda spotkania.

6 tygodni do AzureDay North Poland

Już za półtora miesiąca odbędzie się w Gdyni konferencja pretendująca (i w moich oczach będąca głównym faworytem) do najlepszego azurowego wydarzenia w tym roku w Polsce. Prelegenci krajowi i zagraniczni, lokalni liderzy, pracownicy Microsoft, wiele ścieżek tematycznych. Zapowiada się smakowicie.

Ja się wybieram, już od jakiegoś czasu mam wszystko połapane i jestem gotów. No, przynajmniej organizacyjnie, jeszcze mentalnie muszę popracować nad otworzeniem głowy i psychicznym przygotowaniem się na spotkanie z lokalnymi tuzami technologii, która wiedzie prym w mojej codziennej pracy.

Czekam w sumie dość niecierpliwie na ten dzień. Od kiedy po raz pierwszy wybrałem się spotkanie community – tegoroczny Global Azure Bootcamp w Warszawie – bardzo cenię sobie takie spotkania. A tu dwa dni technicznego mięsa i ciekawych rozmów. Będzie się działo!

AzureDay North Poland, Gdynia 3-4 października 2016

Popraw współpracę z Visual Studio

Troszkę wstyd zawsze przyznać, że nie zna się tego typu rzeczy. Zwłaszcza kiedy wyglądają na takie całkowicie podstawowe funkcjonalności i były tam, na wierzchu, od zawsze. Warto więc cały czas walczyć ze starymi nawykami i “błędami młodości”, kiedy będąc początkującymi, mało doświadczonymi, z ograniczoną wiedzą wyrobiliśmy sobie metodę pracy z narzędziami.

Pomagają w tym wpisy takie jak ten, z jednego z moich ulubionych blogów developerskich, nieocenionego Scotta Hanselmana – Visual Studio’s most useful (and underused) tips.

Moi faworyci, których przyznaję nie znałem, albo jakoś nie używałem szczególnie świadomie to przesuwanie zaznaczonego kodu skrótami klawiszowymi (o matko, jakie to jest piękne!) oraz wszystkie, których opis sprowadza się do “Press … and start typing”. Przywykłem do tego w Windowsach i w sumie dlaczego nie pracować tak też w VS?

Open source PowerShell

Dziś po prostu nie wypada o tym nie napisać. Co prawda PowerShell nie jest pierwszą opcją międzyplatformowego zarządzania chmurą Azure (jest wszakże xplat cli), a mnie akurat na codzień to w nim najbardziej interesuje to trudno nie docenić takiego kroku. Raz, że PowerShell jest nie tylko od Azura, dwa, że jest znacznie bardziej popularny od ww. konsoli.

Kolejny krok ku otwarciu, przytuleniu do siebie użytkowników niewindowsowych, poszerzeniu możliwości integracji oraz, jak to przy projektach open source, dodatkowy firepower w stronę rozwoju. Nic tak nie napędza community jak możliwość samodzielnego dołożenia funkcjonalności do narzędzia.

Więcej do poczytania u źródła.

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.