Co zanim wejdziemy w PaaS? Radzi IBM.

Żeby nie było, że tak tylko Azure i Azure, staram się czasami przynajmniej zerknąć co inni mają, albo co piszą. Dziś wstępniak do wykorzystania i wdrożenia PaaS na blogu Cloud Computing IBMa. Wpis jest pewną zachętą do zapoznania się z większym materiałem, który IBM już dość dawno udostępnił – Practical Guide to Platform as as Service. Sedno stanowi osiem wybranych cech technicznych i organizacyjnych korzystania z PaaS, nad którymi dobrze pochylić się przed podjęciem decyzji o migracji aplikacji na platformę chmurową. Techniczne dotyczą głównie architektury, sposobów działania usług, kontenerów integrowania systemów. Organizacyjne z kolei narzędzi i metod pracy nad tworzeniem projektu (zastosowanie agile, nowe narzędzia developerskie oraz inne podejście do deploymentu).

Całość wraz z linkiem do wspomnianego wyżej guide’a tutaj:
https://www.ibm.com/blogs/cloud-computing/2016/09/acquiring-using-paas/

Functions, Flow, PowerApps

Co prawda na Azure Functions nadal jestem nieco obrażony i dochodzenie w sprawie dziwnego (nie)działania schedulera trwa, ale trzeba przyznać, że potencjalnie ta usługa może stanowić o sile chmury Microsoftu. Oprócz tego mamy Flow, czyli takie uproszczone Logic Apps wystawione na zewnątrz, a na dokładkę PowerApps pozwalające we względnie prosty sposób utworzenie np. mobilnej aplikacji, która będzie prezentowała informację ze wskazanych źródeł.

Wszystkie trzy wymienione oparte są o koncepcję serverless, więc nie stoi za nimi żaden rodzaj mniej lub bardziej zakamuflowanej infrastruktury (ani IaaS, ani PaaS), dodatkowo wszystkie umożliwiają tworzenie aplikacji via browser, bez skomplikowanych, dużych IDE.

Czy to się nadaje do tworzenia dużych systemów? Pewnie nie, ale z pewnością nadaje się do bardzo szybkiej integracji różnych API w niezbyt skomplikowane aplikacje. Bez dwóch zdań warto ogarnąć te technologie, nawet będąc inżynierem informatykiem, który się Assemblerowi nie kłaniał 😉

Parę słów więcej na ten temat na Azure Blog.

Kontenery, kontenery

Jadąc na ostatnie spotkanie Azure User Group w Warszawie słuchałem sobie podcastów, w tym między innymi jednego odcinka o kontenerach. Do tej pory nieco stroniłem od tej działki, nie bardzo wiedziałem o co chodzi, kojarzyłem jednak, że jest to nieco infrastrukturalny temat, więc wolałem się trzymać od niego trochę na uboczu. Podcast troszkę mi dał, ale na koniec jednak pozostałem z pewnym rodzajem niekomfortowej niejasności. Prawie byłem gotów zachować status quo w moich relacjach z kontenerami (chłodna tolerancja ;)), ale jak to w życiu bywa, wiele czasu nie minęło, a okazało się, że prawdopodobnie będziemy jakiś zakupiony software stawiać w pracy via Docker. No i wyszło, że trzeba ogarnąć.
Materiałów jest w Internecie zapewne mnóstwo, ale ja jestem przyzwyczajony do sięgania do sprawdzonych miejsc. Jako że Pluralsighta (jeszcze) nie subskrybuję, to przejrzałem MVA i okazało się, że nie tak dawno pojawiło się video z podstawowymi informacjami i kilkoma demo. Zabieram się zatem za Dockera. Wish me luck.

Rysa na wizerunku Azure Functions

Azure Functions jako usługa podobają mi się niezmiernie i liczę na nie jako silny element Azura. Nawet już tu pisałem jak bardzo mi się podobają, ale… Ostatnio troszkę się zawiodłem. Ja rozumiem, że to wersja 0.5 i w takiej sytuacji nie ma co rozdzierać szat – korzystasz z niefinalnej to masz, ale mimo wszystko, dokumentacja jedno, a rzeczywistość drugie.

Time trigger. Niby fajnie, niby ekstra, przykład, który potrzebowałem miał odpalać funkcję raz dziennie, przez dwa dni na początku tygodnia, taka specyfika. No i nawalił, już dwa razy. Podejrzenie padło na wyłączony AlwaysON, ale po szybkim sprawdzeniu okazało się, że Dynamic Plan nie ma tego ustawienia i jest zawsze włączone by design. No… nie jestem pewien. Ostatnio dołożyłem jeszcze jedną funkcję do tego planu, która nic nie robi, za to uruchamia się co godzinę, zobaczymy co plan na to.

Druga sprawa jest taka, że w portalu są takie małe upierdliwości i jak się nieostrożnie wciska klawisze na klawiaturze to nieopatrzny enter może uruchomić funkcję zamiast np. zrobić Save, którego się spodziewamy. Backspace potrafi zamknąć blade’a zamiast skasować znak. Takie tam, trzeba uważać.

Może też tak być, że robię coś źle. Śledztwo trwa.

Service Fabric, dzień 8 – Przegląd podsystemów, cz.2

Kolejnym z podsystemów w Service Fabric jest Management subsystem. Jest on odpowiedzialny za zarządzanie cyklem życia aplikacji na co składa się tworzenie, patchowanie, updatowanie i usuwanie zasobów.
Jest to główny podsystem, z którym pracuje się poprzez PowerShella czy API.
On także składa się z kilku elementów:

Image store – usługa do składowania i dystrybucji paczek aplikacji. Zapewnia rozproszony system plików przechowujących ww. paczki,

Health manager – Service Fabric posiada własny model „zdrowia”, czy też, nazwijmy to, jakości działania usługi, na który składają się informacje przekrojowo zbierane z różnych elementów całego klastra. Ta usługa udostępnia swojemu podsystemowi dane oraz zdarzenia umożliwiające reakcję i podejmowanie odpowiednich decyzji służących zapewnieniu dostępności aplikacji,

Cluster manager – ta usługa współpracuje z inną – Failover manager – w celu umieszczania aplikacji na węzłach klastra. To ona technicznie odpowiada za wspomniane na początku funkcjonalności podsystemu – od utworzenia do usunięcia zasobów.161

Gleba azurowych DNS

Dziś Azure zaliczył grubszą wywrotkę objawiającą się brakiem łączności do usług. Według publikowanych informacji to była ogólnoświatowa (Multi-Region) awaria DNS. Poważny temat, szczególnie dla PaaSowców, którzy czegoś takiego jak adres IP nie dotykają.

W moim przypadku pierwsze podziękowały za współpracę SQLowe bazy, a ostatecznie prawie nic nie można było zrobić/podejrzeć bo portal moje Web Appy pokazywał jako „Deleted” (niezbyt sympatyczny widok ;)). W sumie smuteczek bo jak DNS leży to co… no można mieć jeszcze to samo zdeployowane u innych dostawców i fallbacki na poziomie aplikacji. Chyba jeden z najgorszych scenariuszy, gdzie i wielokrotna redundancja może na nic się nie zdać. Szczęśliwie korzystanie z moich azurowych usług przez aplikacje klienckie oraz bezpośrednio przez wewnętrznych użytkowników zostało tak zaprojektowane, że nawet kilkugodzinna przerwa w działaniu nie powoduje strasznych trudności (większe wewnętrznie niż dla klientów).

Jedyne co mnie zaniepokoiło to, że o tym, że coś leży, nie dowiedziałem się od mojego monitorowania, tylko od kolegi. Muszę połatać alerty, coś mam nimi nie pokryte.

MAUGP WAW 8…

Czyli spotkanie grupy azurowej w stolicy. Troszkę inne niż zwykle, bez partnera spotkania i bez sesji partnerskiej. Dzięki temu więcej czasu dostało dwóch prelegentów. Moim zdaniem to dobrze zrobiło prezentacjom, na wszystkich spotkaniach w których uczestniczyłem do tej pory (a było ich już kilka) często towarzyszyło mi wrażenie, że można by było jakiemuś tematowi poświęcić więcej czasu. Tym razem ciekawych informacji było więcej, profit.

Sesje ciekawe, w końcu usłyszałem coś, co jakoś do mnie przemówiło w kwestii DevOps. Niby próbowałem parę razy załapać o co chodzi, ale jakoś niezbyt szło. Dariusz Porowski dał radę i chętnie posłucham kolejnych, zapowiedzianych, wystąpień w tym temacie.

Michał Furmankiewicz, nieliczny wśród aktywnych developerów w grupie, sprzedał dużo ciekawostek na co należy uważać i o czym pamiętać korzystając z różnych PaaSowych usług. Także zapowiedział, że da radę uzbierałoby się tego więcej, także kolejne spotkania grupy zapowiadają się potencjalnie bardzo ciekawie.

Azure Media Analytics

Na tę usługę zwróciłem uwagę już dawno, chociaż nie zajmuję się multimediami w Azure na co dzień. Jest tam mnóstwo ciekawych funkcjonalności korzystających pod spotem także z Cognitive Services. Automatyczne dodawanie napisów w wielu językach do filmu czy wykrywanie niedozwolonych treści w materiale wizualnym to tylko część z nich. Teraz doszła kolejna bardzo ciekawa opcja, którą szczególnie powinny być zainteresowane instytucje publiczne – Face Redaction. Usługa, która na razie będzie publicznym preview (bezpłatnym!) polega na automatycznym wykrywaniu i śledzeniu twarzy w materiale wideo w celu zabezpieczenia prywatności wizerunku osób. Oczywiście konfiguracja będzie pozwalała na ingerencję w wynikowe wideo, wybór osób, których wizerunek ma zostać ukryty oraz ręczne korekty w przypadku trudnych materiałów.

Tutaj można znaleźć demonstrację jej możliwości.

Ulepszony Automatic Tuning dla baz Azure SQL

Co prawda Automatic Tuning odbiera nieco pracy DB adminom (w tym trochę i mnie) i odziera optymalizację z pewnej aury tajemniczości i kosmiczności, ale i tak go lubimy. W dodatku teraz jest jeszcze lepszy, szybciej daje wyniki analizy obciążenia i wskazuje miejsca, gdzie można nanieść poprawki. Poprawki, które teraz można wdrożyć niemal od razu, bez dłuższego patrzenia na wykresy degradującej się wydajności.

Czy można to robić samemu? Ano można, nawet trzeba, bo wszystkiego ta zabawka nie przewidzi, na każdą ewentualność nas nie zabezpieczy, naszych pomysłów na dalsze zmiany i rozwój nie zgadnie. Ale sprawdza się elegancko jako wspomaganie, bieżąca kontrola czy wszystko gra, kiedy rzucamy się w wir zmian w kodzie nie zwracając uwagi na strukturę bazy, postawione indeksy i różnice w wymaganiach stawianych im kiedy powstawały, a stawianych dziś.

Przetestowane na tablicach o setkach milionów wpisów i dziesiątkach gigabajtów danych, daje radę.

Nowe regiony Azure w Europie

Na koniec tygodnia parę słów na temat w zasadzie jednego z poważniejszych newsów ostatnich dni. Oficjalnie dostępne są dwa kolejne regiony Microsoft Azure w Europie. Obydwa w Wielkiej Brytanii (Anglia i Walia). To nam daje na obecną chwilę cztery regiony, z dwoma kolejnymi w Niemczech w drodze. To jest już na prawdę solidna baza, na której można, nie wychodząc poza Europę, oprzeć system z grubszym Disaster Recovery. Centra w Niemczech dodatkowo dadzą do ręki silny kontrargument na przeciwników rozwiązań chmurowych, którzy obawiają się bezpieczeństwa danych w centrach prowadzonych przez firmę podlegającą prawu i służbom Stanów Zjednoczonych. Sam co prawda nie mam z tym może wielkiego problemu, używam centrów w U.S. bo mogę i nie mam przeciwwskazań, ale jestem w stanie wyobrazić sobie, że dla pewnych biznesów to jest jakiś problem. Jeśli nawet nie rzeczywisty, to pewna bariera mentalna. Żeby tylko Brexit wszystkiego nie popsuł, bo centra znowu wywędrują poza UE 😉