Tydzień z Azure powraca!

Nie wypada tutaj nie wspomnieć o tym, że po długiej przerwie powraca seria Tydzień z Azure, w której Tomasz Wiśniewski, Technical Evangelist w Microsoft, prezentuje nowości ze świata Azure, często zapraszając ciekawych gości do współprowadzenia. W odcinku wskrzeszającym serię o różnych sprawach, o niektórych z nich już tutaj było, np. o nowym Azure Fundamentals, czy o preview MySQLa przypiętego do Web Appa. W przypadku tego drugiego można zobaczyć pełne demo, od stworzenia usługi do publikacji prostego projektu demonstrującego administrowanie i łączenie się z bazą MySQL. Oprócz tego jeszcze parę drobnostek, które w międzyczasie ujrzały światło dzienne.

Odcinek do obejrzenia na Channel9:

Azure & Batman feat. Service Profiler

Hardcorowych dni ciąg dalszy, dziś bez ZUS, ale za to z 700km jazdy po krajowych drogach, w tym dwukrotnym przejazdem przez Częstochowę (the horror!).

Ale dla chmurowych wojowników, to nie może być powód! Azure Service Profiler. Nawet nie wiedziałem, że coś takiego istnieje. Okazuje się, że jest tool, który można wykorzystać nie tylko w Azure, wspomagający monitorowanie i diagnostykę aplikacji. Zejście od poziomu ogólności histogramu czasów wykonania przez wykres historyczny czasów obsługi przez zapis kroków wykonanych podczas obsługi konkretnego żądania po kod każdego z tych kroków. To trzeba zobaczyć:

Parafrazując pewnego pana – skąd oni biorą te cudowne zabawki?

Logic Apps, integracja z prędkością światła

Dzisiaj mam ciężki dzień, dwie wizyty w ZUS potrafią wyczerpać każdego normalnego człowieka, więc siły starczyło mi tylko na przejrzenie ostatnich video dorzuconych do kanału YouTube Microsoft Azure.

Jako, że jestem nieskrywanym fanem PaaS najbardziej zainteresował mnie wideo podcast Tuesdays with Corey: The Goodness of Azure Logic Apps, w Head of Product Logic Apps zaprezentował ich możliwości. Mind blown over and over. Gość centralnie w 10 minut stworzył aplikację, która reaguje na alert z maszyny wirtualnej wysyłając e-mail z opcjami do wyboru, wiadomość SMS oraz postuje na kanał slackowy. 10 minut włączając utworzenie i deployment Logic Appa, wyklikanie ww. opcji oraz demonstrację logów i efektów ich działania.

Nie mam więcej pytań. Wiedziałem, że ta usługa ma potencjał, ale to mnie utwierdziło w przekonaniu, że rzucam wszystko i jadę w Bie… i zabieram się za wykorzystanie Logic Apps. Tyle funkcjonalności, które można dodać tak szybko. Jaram się.

 

Service Fabric, dzień 7 – Load Balancer

Wiele maszyn uruchomionych w klastrze, wiele serwisów i replik uruchamianych pod różnymi adresami i słuchającymi na różnych portach stanowi pewne wyzwanie z punktu widzenia klienta wykorzystującego jednolitą aplikację, w której ww. powinny być zupełnie przezroczyste.

Rozwiązać ten problem można na różne sposoby, np. gateway z automatycznym wykrywaniem instancji serwisów. W przypadku Service Fabric najprostszym rozwiązaniem jest jednak Load Balancer, który otrzymujemy out-of-box. Kieruje on ruch jedynie do poprawnie funkcjonujących instancji serwisów (ma wiedzę o ich stanie), co zapewnia wspomnianą już przezroczystość dla klienta – ta funkcjonalność jest jego domyślną i standardową. Posiadając wiedzę o instancjach reaguje oczywiście także na zmianę ich liczby, czyli zapewnia skalowanie aplikacji. Dodatkowo umożliwia też skonfigurowanie takiego mechanizmu jak partycjonowanie ruchu pozwalając na “ręczne” kierowanie określonych żądań do określonych węzłów.

Azure Functions 0.5

Widzę, że mam poważne braki w moich subskrypcjach RSS. Niby obserwuję Azure Blog, ale jak się okazuje wielu interesujących mnie rzeczy tam nie ma. Na nową wersję Azure Functions nadziałem się przypadkiem, kiedy po prostu chciałem coś poprawić w ustawieniach. A nowości są super! Działający monitoring, live streaming eventów (Azure Functions Pulse), można wiązać parametry do body/query w triggerze HTTP.

Takie to ładne teraz, o:

Azure Functions 0.5

Zaraz zabieram się za poprawianie kodu, poużywam sobie nowości, a co. Kroi się też przerzucenie kolejnych funkcjonalności w to miejsce, skoro tak ładnie się rozwija i tak elegancko można teraz ogarniać wyjmowanie danych z requesta 🙂

Tak czy siak, App Service Team Blog ląduje na liście regularnie odwiedzanych miesc (jak mogłem nie robić tego wcześniej?!).

Service Fabric, dzień 6 – Przegląd podsystemów, cz.1

W poprzednim wpisie była mowa o usługach domyślnych w manifeście. Jakie usługi oferuje nam out of the box Service Fabric? Trochę tego jest, dodatkowo serwisy systemowe są pogrupowane w podsystemy, odpowiedzialne za różne aspekty działania klastra.

Jednym z ciekawszych podsystemów z punktu widzenia użytkownika jest z pewnością Reliability subsystem, który odpowiada za utrzymanie wysokiej dostępności aplikacji uruchomionych w Service Fabric i składa się z trzech usług systemowych:

Failover manager – reaguje na dodawanie i znikanie węzłów, wyrównuje obciążenia w przypadku dodania węzła i rekonfiguruje repliki w przypadku jego utraty,

Resource Balancer – odpowiada za zbieranie danych o obciążeniu i przekazywanie ustalonych na ich podstawie rekomendacji do Failover managera,

Replicator – pilnuje prawidłowej replikacji serwisów, zajmuje się także zachowaniem spójności stanów pomiędzy replikami serwisów stateful.

 

Service Fabric, dzień 5 – Model aplikacji

Wiemy już, że aplikacja Service Fabric składa się z serwisów. Jak to jest jednak wszystko opisane? Za opis całości aplikacji odpowiada jej manifest, którego zadaniem jest zebrać informacje o wszystkich serwisach w aplikacji oraz o ich rozłożeniu w klastrze Service Fabric. Oprócz serwisów, o których głównie myślimy tworząc aplikację (czyli naszych) manifest zawiera też sekcję dla serwisów domyślnych, które Service Fabric uruchamia automatycznie.

A co z serwisem? Ten składa się z trzech elementów – kodu, konfiguracji, danych. Kod to rzecz jasna pliki wykonywalne serwisu. Konfiguracja może być zmieniana w run time. Dane są to informacje statyczne wykorzystywane przez usługę. Każdy z trzech elementów zebrany jest w niezależną od pozostałych paczkę.
Całość każdego serwisu także opisana jest manifestem, do którego odniesienie znajduje się w manifeście aplikacji.

Wszystkie manifesty, zarówno serwisów jak i aplikacji, mają postać plików XML (podobnie jak konfiguracja serwisu) i są niezależnie wersjonowane.

ML, Analytics & Data Science Conference

Przy okazji ww. konferencji Channel 9 przeprowadził parę rozmów z jej uczestnikami, m.in. z Panią Francescą Lazzeri, która przedstawiła cały proces wykorzystywania data science, ale także podkreśliła jego dwa istotne elementy.

Po pierwsze rzeczywisty problem biznesowy. Żeby zacząć pracę z data science (nie tylko machine Learning) trzeba mieć problem/pytanie, które chcemy rozwiązać. Rzucanie różnymi metodami w dane w nadziei, że wyskoczy coś interesującego to słaby pomysł, trzeba wiedzieć czego się oczekuje od analizy danych, żeby móc ją wykonać.

Po drugie wizualizacja, czyli ostatni etap przeprowadzania analizy danych. Prezentacja wyników pracy różnych metod i algorytmów musi dostarczyć w jasny i zrozumiały sposób wiedzę do grupy docelowej, która, o czym należy pamiętać, może pochodzić z zupełnie innej branży. Nie będzie można mówić o wykorzystaniu z sukcesem mechanizmów data science bez zrozumiałego przedstawienia jego rezultatów. Brzmi to jak coś oczywistego, ale wydaje mi się, że “techniczni”, którzy zajmują się taką analizą są podatni na ignorowanie lub niedocenianie odpowiedniego przedstawienia suchych wyników szerszej publiczności.

Polecam całość tego wideo oraz pozostałych na tym samym kanale.

Fundamentals of Azure, 2nd Edition

Właśnie (wczoraj) pojawił się nowa edycja bezpłatnego e-booka od Microsoft – Microsoft Azure Essentials – Fundamentals of Azure, 2nd Edition.

Lektury to nie zastąpi, ale tym co czytali lub chociaż przeglądali pierwszą edycję parę słów o pierwszych zauważonych istotnych różnicach:

Azure App Service and Web Apps – zastąpiło dawne Websites oraz Cloud Services, to dość spora zmiana.

Additional Azure Resources – dodatkowy rozdział, w którym po pół strony ogólnych informacji o kilkunastu różnych usługach w Azure, wielkiego pożytku poza ogólnym oglądem z tego nie ma, niemniej dla tych co ich nie używają jest to podstawowa pigułka wystarczająca by się orientować w temacie.

But the winner is…
Azure Resource Manager – jego opis pojawia się już w pierwszym rozdziale i w kolejnych konsekwentnie dodane są elementy wykorzystania tego podejścia w deployowaniu usług. Zmiana jest o tyle naturalna, że wcześniej po prostu go nie było, ale dobrze, że zaktualizowano tego e-booka pod tym kątem bo to jednak inna koncepcja.

To tyle po bardzo pobieżnym przescrollowaniu. Zauważyłem jeszcze też sporo małych aktualizacji (np. VS 2013 na VS2015), pewnie jest tego jeszcze dużo więcej. Wyjdzie w trakcie dokładniejszego przeglądania.

Doskonała pozycja dla rozpoczynających zabawę z Azure, polecam.

Patterns & practices

Jest taki dział w bibliotece MSDN, który polecam najmocniej jak się da, nazywa się patterns & practices. Jest to wg mnie jedno z najlepszych miejsc w MSDN, dzięki któremu można porządnie ogarnąć system jako całość i spojrzeć na wiele metod podejścia do rozwiązywania problemów.

Wewnątrz tego działu jest mniejszy fragment, który dotyczy mojej codziennej pracy – Cloud Design Patterns. Genialna sprawa, świetne, przejrzyste opisy różnych wzorców projektowych podzielonych pod kątem klasy rozwiązywanych zagadnień oraz zorientowania na konkretne wyzwania stawiane przed systemem lub jego częścią. Pozwala, nawet nie znając szczegółów (co czasami jest zbawienne na początkowym etapie ;)), dowiedzieć się co potrafią usługi w Azure, jak można połączyć je z innymi i jakich efektów można się dzięki temu spodziewać. Dodatkowo, dzięki kategoryzacji typów problemów do rozwiązania daje dobrą podkładkę pod rozmowy nad projektem i checklistę do odhaczenia z czym można się w konkretnym przypadku zderzyć. Jeśli tylko dam radę to z pewnością powybieram co ciekawsze, albo sprawdzone przeze mnie, wzorce i jeszcze o nich napiszę.