Zarządzanie usługami z kodu C#

Czyli biblioteki Azure Management Libraries for .NET. Właśnie wyszła Beta 4, do której dodano obsługę całkiem pokaźnej paczki usług:

  • App Service
  • Azure SQL
  • Application Gateway
  • Traffic Manager
  • DNS
  • CDN
  • Redis Cache

To zaczyna być na prawdę interesujące rozwiązanie i opcje zaczynają być szerokie. Co prawda być może nie każdy ma na co dzień potrzebę dynamicznego tworzenia i usuwania usług, pewne scenariusze są zaadresowane przez inne usługi i rozwiązania (np. DevTest Labs), ale wykonywanie takich operacji z zarządzanego kodu, możliwość wplecenia tego w aplikację i tak jest ciekawe. Przyszło mi nawet do głowy jedno ciekawe, chociaż troszkę szalone rozwiązanie… Jak znajdę czas żeby się pobawić tą biblioteką to się podzielę bo to chyba fajna opcja do pokazania “a da się”. O ile się faktycznie da 😉 Zobaczymy.

Źródło: Manage App Service, SQL Database, and more – Azure Management Libraries for .NET

Nowe funkcje w T-SQL oraz niespodziewane odkrycie

Azure SQL wzbogacił się o kilka nowych funkcji z grupy String. Nie wchodząc w szczegóły i przykłady:

  • TRIM – wycina podane znaki z początku i końca napisu
  • STRING_AGG – skleja wartości wybranego pola z kolejnych wierszy w tabeli oddzielając je podanym znakiem (np. zrobi comma-separated listę e-maili per dział w firmie)
  • CONCAT_WS – skleja podane w parametrach wartości rozdzielając podanym znakiem (np. utworzy “nazwę” osoby łącząc spacjami pierwsze i drugie imię oraz nazwisko)

No i spoko, zawsze lepiej mieć gotowe (i prawdopodobnie wydajne) niż rzeźbić samemu i tworzyć własne rozwiązania w każdej bazie, w której się tego akurat potrzebuje.

Ale! Najlepsze jest to, że coś mnie tknęło w momencie kiedy chciałem zamarudzić “no dobra, contaty ładne, a gdzie jest split god damnit!?”. No i otworzyłem MSDNa, a tam pyk! STRING_SPLIT jest dostępny w SQL Server 2016, a że Azure SQL jest z nowinkami w miarę na bieżąco… Tadam!

Czego się to człowiek rykoszetem nie dowie przy okazji czytania newsów. Tak bardzo mi brakowało tego rodzaju funkcji jeszcze nie tak dawno. Już wiem co będę przerabiał jak wrócę z urlopu.

Źródło: New T-SQL string functions in Azure SQL Database

Query Editor w Azure Portal!

Dla mnie osobiście news dnia. Co prawda nie z dzisiaj, ale dziś się o nim dowiedziałem (dziwne, że RSS mi go nie zarzucił, no ale nic to). Portal Azure uzyskał, czy też raczej należałoby powiedzieć odzyskał, edytor zapytań. Można posłać zapytanie do bazy i obejrzeć wynik. Yay! Przydatne kiedy chce się z różnych dziwnych miejsc coś sprawdzić, albo puścić jakieś ratunkowe procedury.

To z zalet, a wady… no przeglądarka, czyli trzeba uważać na Backspace (jak nie będziemy akurat mieli focusa w okienku edycji to po grzybkach) oraz F5 – to Ci którzy korzystają z SSMS 🙂 Oprócz tego jest to dość wolne. Szybki test pokazał, że zapytanie, które odpalam z SSMSa mam zakończone w czasie ok 1 sekundy, a na ten sam wynik z portalu muszę czekać ok. 12 sekund. No ale jest to też funkcjonalność preview, więc nie ma co marudzić, a jako awaryjne narzędzie pewnie się przyda.

Źródło: Public preview: Interactive query experience for SQL databases

Nowy blog Microsoftu

Odkrywania ciekawostek ciąg dalszy. W styczniu start swojego bloga ogłosił azurowy CAT, czyli Customer Advisory Team, zespół w Microsoft odpowiedzialny za współpracę z klientami, analizowanie ich feedbacku i tworzenie na tej podstawie nowych rozwiązań. Tak przynajmniej o sobie napisali 🙂

Na razie jest hello worldowy post i garść linków do materiałów, w którym ten zespół maczał palce. Post wspomina o ponad 160 publikacjach ogółem (razem z SQL CAT) w różnych miejscach i zawiera odnośniki do wszystkich (nie liczyłem, ale na oko jest tego całkiem dużo, więc możliwe). Jest tam trochę fajnych materiałów, zarówno ogólno-poglądowych jak Checklists, Best Practices, Design Patterns czy adresujących konkretne zagadnienia developerskie, np. “How to implement a partitioned SendBatch method for Azure Service Bus entities”.

Skoro zdecydowali się na blogową formę to może i ciekawostek będzie więcej, albo chociaż szybciej będzie się można o nich dowiedzieć. Ja będę obserwował AzureCAT Guidance.

Awesome Azure IoT

Zgodnie z opublikowanymi pomysłami na 2017 co jakiś czas przebiegam wzrokiem po niedawnych publikacjach dotyczących różnych technologii (choć nadal głównie dotyczących Azure), których nie potrzebuję codziennie w pracy. Dziś mój wzrok przykuł taki tytuł. Otóż powstała lista rzeczy wartych do obejrzenia, sprawdzenia osobiście, przeczytania a dotyczących IoT w Azure.

Spis jest podzielony na różne kategorie i zaczyna od sprzętu, który z Azure potrafi współpracować, biblioteki, narzędzia i inne zasoby. Warto chyba przejrzeć, zwłaszcza jeśli dopiero zaczyna się przygodę z IoT w Azure. Czego mnie troszkę brakuje to oznaczenia jakichś najbardziej spektakularnych projektów przykładowych, z których można by zacząć podglądanie kodu i ogólne ogarnięcie jak to się całościowo prezentuje. Co prawda da się parę projektów znaleźć przez linki (np. zaraz na głównej stronie Windows 10 IoT Core), ale gdyby ktoś z pojęciem w temacie wybrał parę projektów dydaktycznie wartościowych i je tam podlinkował to chyba byłoby spoko. Zwłaszcza, że jest z czego wybierać, projektów, które są tworzone i publikowane, razem z kodem via github, jest mnóstwo i będąc na początku drogi czasem ciężko się przebić przez nie i wybrać coś co we właściwy sposób przeprowadzi przez pierwsze kroki.

Tak czy siak, do lekury: Awesome Azure IoT

Czyszczenia App Service ciąg dalszy

Dziś króciutko.

Po niedawnej zapowiedzi dotyczącej wyłączenia starych (niższych niż 1.x) wersji Azure Functions dziś informacja o przejściu w stan deprecated API Apps V1. Wersja ta przestanie funkcjonować 14 marca. Rozwiązaniem jest redeploy usługi na wersję V2. Więcej informacji pod linkiem niżej oraz w znajdujących się tam odnośnikach (np. do zmian w V2 względem V1).

Źródło: Preview API Apps Deprecation (Azure App Service Team Blog)

IaaS vs PaaS

Na blogach MSDN pojawił się wpis pokrótce (bo temat to rzeka głęboka, kręta i długa) porównujący pewne usługi, ich cechy, użyteczność w wybranych scenariuszach pod względem kategorii, czy też klasy – Infrastructure as a Service oraz Platform as a Service. Przewodni temat – co wybrać?

Dla mnie odpowiedź jest naturalna – chmura to PaaS. Oczywiście nie trzeba się z tym zgadzać, a biorąc pod uwagę co się u dostawców chmurowych wyprawia z różnymi projektami to nawet należy wytknąć palcem, że to jest czasem opcja lepsza (albo przynajmniej wygodniejsza). Nie liczę jakiegoś przenoszenia 1 do 1 aplikacji lub scenariuszy DR lokalnego centrum w chmurę, opieram się raczej na tworzeniu rzeczy nowych.

Niemniej, jakie by moje preferencje i zdanie nie były, wyboru dobrze jest dokonywać świadomie, dlatego takie zestawienia są spoko.

Źródło: What Microsoft Azure Service do I choose?

ASM i ARM Storage Accounts

Tak wypadło z moją krótką wciąż karierą Azurową, że załapałem się na sporo różnych zmian, które do teraz mają wiele konsekwencji w usługach i potrafią stanowić nie lada irytację.

Jedna z tych rzeczy to “stare” (tzw. Classic) i “nowe” Storage Accounts. Jasna cholera mnie bierze, że te konta są w dwóch “zakładkach” i stare nie mają po prostu przycisku “Migrate”. Może za mało wiem o tym co tam się z tyłu dzieje, ale to jest okropnie upierdliwe. Na szczęście jest mądry człowiek prowadzący bloga, który opisał jak to zrobić. Starczy podobno starczy trochę pomachać PowerShellem, o tak.

Warto sprawdzić, ja z pewnością to zbadam i dam znać co i jak.

Szybsza baza, to lepsza baza!

No takie newsy to ja mogę czytać. Piłka jest krótka – Microsoft postanowił dać noworoczny prezent wszystkim, którzy odpowiedzialni są za kontrolowanie i optymalizację obciążenia baz Azure SQL oraz optymalizację kosztów, które one generują.

Od dziś podwojono wydajność zapisu na wszystkich tierach usługi Azure SQL, a bardziej wymagające systemy, opierające się o tiery Premium dodatkowo zyskują podwojoną wydajność odczytu. I wszystko w tej samej cenie, co wcześniej.

Można? Można 🙂

Źródło: https://azure.microsoft.com/pl-pl/blog/azure-sql-database-is-increasing-the-read-and-write-performance/

Ułatwienie w Storage Queues

Takie proste, a takie fajne. Trick polega na tym, że do tej pory po włożeniu wiadomości do kolejki (AddMessage), trzeba było ją ponownie odczytać (GetMessage), żeby otrzymać jej “pop receipt”. Teraz odpowiednie property obiektu CloudQueueMessage jest ustawiane już przy wkładaniu wiadomości do kolejki. Tak więc od razu mamy możliwość przeprowadzania zmian na wiadomości w kolejce czy jej usuwania z kolejki (ogólnie – robienia wszystkiego do czego pop receipt jest potrzebny).

Niby takie nic, ale jak się spojrzy w kod, że jest teraz czysty, elegancki, bez nic nie wnoszących linijek. W dodatku zmiana wprowadzona przy naciski u i usilnych żądaniach community.

Przykład tutaj. Byle tylko więcej funkcjonalności proponowanych przez community.