W AWS opisałem AWS Step Functions oraz AWS CloudFormation jako dwa narzędzia które umożliwiają nam tworzenie nowych schematów pracy. Jedno było stricte do maszyny stanu, drugie do bardziej zaawansowanych rozwiązań jak pełna aplikacja, która może być deployowana i zarządzana jako jedna całość. W Azure mamy też dostęp do dwóch różnych aplikacji – Azure Microsoft Flow i Azure Logic Apps. Porównanie i znaczenie tych dwóch narzędzi jest prawie takie samo. Diabeł tkwi w szczegółach. Obie aplikacje raczej tyczą AWS Step Functions. AWS CloudFormation to inny byt. Może jednak powstanie część 5 by to uwzględnić?
Azure Microsoft Flow
Microsoft Flow to dość nowe rozwiązanie które umożliwia nam, programistom, pracownikom biurowym, UŻYTKOWNIKOM końcowym którzy z programowaniem mają tyle wspólnego co nic, tworzyć rozwiązania na zasadzie If This Then That czy też Zapier. Narzędzia te służą do robienia prostych automatyzacji zadań. Na przykład, jeżeli pojawi się nowy post na blogu XYZ, to wyślij mi maila na ten temat. Albo za każdym razem jak ktoś tweetnie zwiększ licznik o jeden. Czy też zapisz automatycznie załączniku w mailu do dropboxa. Czy też, kiedy zaznaczę mail jako WAŻNY automatycznie dodaj mi go jako notatkę do Evernote.
Możliwości się ograniczone jedynie tym co jest wspierane ;) Dla przykładu, notyfikacje u mnie na blogu które dostajecie w przeglądarce są zrobione w Zapier. Wszystko to co jest z dotnetblogs jest robione przez IFTTT. Azure Flow umożliwia dosłownie to samo, ale nie aż tak jeszcze zaawansowanie jak inne usługi, plusem jednak jest to, że jest super dobra integracja z produktami Microsoftowymi w tym także z funkcjami poprzez HTTP endpoint.
Dla przykładu raz na godzinę stwórz notyfikację na moją komórkę z linkiem do mojego bloga i tekstem zdobytym poprzez wykonanie funkcji:
Nie ma co się zbytnio na ten temat rozpisywać. Jeżeli korzystaliście z IFTTT czy Zapier, to Flow jest po prostu kolejnym narzędziem. Jeżeli nie korzystaliście i interesuje was silna integracja z Azure i produktami Mirosoftotowymi to Flow jest dla was.
Plusem Flow jest jego prostota i wystarczy 5 minut poklikać by się zorientować co i jak. W tym jak przejrzeć historię wykonania, jak zobaczyć co było wykonane w każdym kroku i co było zwrócone w każdym kroku. Więc nie ma sensu tutaj na to więcej marnować uderzeń w klawisze klawiatury.
Wiem, że kiedyś tutaj była opcja wywoływania funkcji nie poprzez HTTP endpoint ale normalnie przez podanie jej nazwy. To się jednak zmieniło na rzecz Azure Logic Apps – i słusznie. Niech flow będzie prostym rozwiązaniem, z którego każdy może korzystać.
Azure Logic Apps
Azure Logic Apps to rozszerzona wersja Azure Microsoft Flow, która nawet współdzieli interfejs graficzny definiowania przepływów. Jest to funkcja bardziej kierowane do administratorów i programistów niż normalnych użytkowników końcowych i umożliwia definiowanie bardziej zaawansowanych przepływów prac jak i tworzenie i rozszerzenie elementów/akcji za pomocą Visual Studio. Nie wspominając już o wsparciu kontroli wersji, testowaniu czy automatyzacji. Wszystko to czego nie ma Azure Microsoft Flow ma Azure Logic Apps. Do tego tak jak Azure Functions, Logic Apps umożliwiają sprawdzenie działania bez posiadania konto w Azure. Dla mnie jest TO SUPER POMYSŁ. Zobacz jak to fajnie działa, po dotykaj, nie podawaj karty, nie teraz, teraz niech Cię oczaruje, potem o kartę poproszę.
Tylko tak jak to u mnie bywa… akurat dla mnie to nie działało (tworzenie testowego Azure Logic Apps). Na szczęście mam konto w Azure więc stworzyłem sobie tam Logic Apps, potem zrobiłem to samo dla Azure Function by mieć jakąś funkcję do przetestowania i dopiero potem wszedłem w utworzoną przeze mnie Logic Apps i zrobiłem prawie to samo co w Flow:
Różnica polega na tym, że mam możliwość wywołania funkcji bezpośrednio z activity. Nie muszę robić HTTP, mogę po prostu wywołać sobie funkcję. W tym wypadku co kilka minut otrzymam maila i tyle.
To co wyróżnia Azure Logic Apps of Azure Microsoft Flow to możliwość definiowania całości z poziomu kodu (JSON). Podobnie zresztą jak w AWS CloudFormation. Schemat oczywiście się różni, ale możemy łatwo się przełączać pomiędzy kodem i designerem. Ogólnie mamy olbrzymie możliwości konfiguracyjne tego jak chcemy i co chcemy by było robione. Liczba zaś połączeń lub miejsc z którymi możemy się połączyć jest OLBRZYMIA.
Podsumowanie
To chyba kończy cykl o Azure Functions i co z tym możemy zrobić. Było tego trochę i dobrze. Microsoft napiera na chmurę jak się da. Warto więc się orientować co i jak by potem nie przepłacać za wiedzę, którą można było dość tanio zdobyć teraz.
Azure Microsoft Flow można porównać bezpośrednio do IFTTT czy Zapier, jak i pośrednio do AWS Step Functions – przy czym, Azure Flow > AWS Step Functions. W prostym wykonaniu pewnie można Flow by podciągnięć pod AWS Step Functions, ale MS twierdzi, że Azure Logic Apps to bardziej AWS Step Functions. Zaś AWS CloudFormation tak jak wspomniał Łukasz to ARM templates jak i według MS to jeszcze VM Extensions i Azure Automation. Tutaj nie wiem sam czy za pomocą deploymentu z Visual Studio Azure Logic App jestem wstanie stworzyć nowe funkcje i do nich się odwoływać, czy to już jest poza zakresem. Może drogi czytelniku ty wiesz czy się tak da?
Drobne poprawki ;)
Microsoft Flow – nie Azure Flow.
Logic Apps to narzędzie do integracji oblusga funkcji to jedne z konektorów.
Cloud formation w Azure to ARM templates.
Azure functions jeszcze nie maja odpowiednika step functions
;) oo nazwie nie wiedziałem.
Logic Apps – tak, takie do integracji, chyba coś musiałem źle opisać.
Dzięki za wytłumaczenie, szukałem odpowiednika Cloud formation.
Step functions – tak, nie ma z tego co widziałem ale najbliżej tego jest flow imo aktualnie. ale chyba nawet MS mowi, ze Steps to Flow/Logic Apps czesciowo
A czy jest opcja w Azure Functions na uruchomienie zagadnień ML/DL np z wykorzystaniem Pythona i keras/tensorflow i już wcześniej wytrenowanej sieci? Np: mam wytrenowaną sieć, wrzucam ją gdzieś na storage, następnie podaje (w jakikolwiek sposób) dane (obraz) do azure function, ta się wykonuje z wykorzystaniem wytrenowaje sieci ze storage i zwraca wynik?
Do tego używasz Azure Batch, a Functions jako tylko wyzwalanie zadań.
Dzięki, przyjrzę się.
Comments are closed.