Menu / szukaj

Optymalizacja kosztów korzystania z API RoyalMail za pomocą Azure Functions

Chciałbym się z Wami podzielić rozwiązaniem, które ostatnio zastosowałem w celu zmniejszenia kosztów związanych z wykorzystania API udostępnianego przez RoyalMail. W jednym z projektów, klient poprosił o możliwość uzupełniania adresu na podstawie wpisanego kodu pocztowego. Problem dotyczył systemu działającego w Anglii, a tam na podstawie kodu pocztowego można ustalić bardzo dokładnie adres. Pozwala to przyspieszyć znacząco wprowadzanie adresu w różnego rodzaju formularzach. Czytaj dalej

Azure Messaging – statystyki

Czasami możemy się zastanawiać jak duża jest chmura. Dlatego też, lubię pojawiać się czasem na prezentacjach osób z Microsoftu, nawet jeśli są one bardziej marketingowe niż praktyczne. Czasami zostają tam przedstawione dane statystyczne dotyczące ich produktów. Podobnie było we wrześniu w trakcie Progressive .NET 2017. W trakcie jednej z prezentacji zostały przedstawione dane dotyczące systemu Azure Messaging – 8 wskaźników, które pokazały rozmiar tego systemu.

W głowie od razu pojawiła się myśl, że z jednej strony Azure Messaging działa bardzo wydajnie i niezawodnie. Z drugiej natomiast pomimo tak dobrych wyników w każdej sekundzie przetwarzania średnio 13500 kończy się błędem.

Caching w Azure Function – czyli jak podpiąć Redis’a

Pewnie już wiecie, ale tak w ramach przypomnienia… Microsoft przygotował niewielki zestaw bardzo przydatnych komponentów, które pozwalają na zintegrowanie naszej funkcji z następującymi usługami: Azure Storage, Azure Event Hubs, Azure Service Bus, Azure Mobile Apps, Azure Cosmos DB, Azure Notification Hubs, Twilio, SendGrid. Lista ta pozwala na zaspokojenie różnorakich scenariuszy. Ale jak zawsze chcielibyśmy coś więcej.

Dzisiaj chciałbym Wam pokazać jak w bardzo łatwy sposób można dodać cache do naszej funkcji. W przykładzie zostanie wykorzystany Redis. Pewnie zastanawiacie się po co? Niejednokrotnie mówiłem, że funkcje powinny być atomowe, bezstanowe, szybkie, … Rzeczywistość nie zawsze jest taka różowa. Czasami musimy coś zoptymalizować i zrobić rzecz nie do końca zgodnie z teorią. I tak było w tym przypadku. Czytaj dalej

Serverless Azure – Wymagane środowisko do pracy

Wielkimi krokami zbliża się konferencja Progressive .NET 2017 i tym samym moje warsztaty pt. Serverless Azure.

Abyś mógł uczestniczyć w nich w pełni od samego początku proszę przygotuj następujące elementy:

Bez zainstalowania tych narzędzi nie będziesz mógł w pełni uczestniczyć w warsztacie.

API Mock w Azure Functions

Największą zaletą Azure Functions jest skrócenie czasu, który jest potrzebny do wypuszczenia produktu na rynek. Można je również zastosować w celu przyspieszenia prototypowania aplikacji. Od jakiegoś czasu można zdefiniować mocka naszej funkcji, który w odpowiedzi na wysłane zapytanie pod konkretne API wyśle nam ustaloną odpowiedź.

Rozwiązanie to ma olbrzymi potencjał. W szczególności w przypadku różnego rodzaju prototypowania aplikacji. Wystarczy tylko zdefiniować nasz end point i wskazać jaka odpowiedź ma zostać zwrócona. Dzięki temu możemy budować od razu docelowe powiązania w naszej aplikacji. A w późniejszym etapie pracy po prostu zastąpić definicję mocka poprawnie zaimplementowaną funkcją.

Funkcjonalność ta umożliwia również zoptymalizowanie prac w zespole. Sądzę, że każdemu z nas zdarzyły się sytuacje, gdy jeden z zespołów odpowiedzialny był za front-end, drugi za back-end. Na początku prac zostały ustalone interfejsy, a po ich zakończeniu obie części aplikacji nie potrafiły się ze sobą porozumiewać. Wykorzystując to rozwiązanie możemy zdefiniować konkretne interfejsy i obydwa zespoły będą miały zmaterializowany wzór do którego będą dążyć.

Opisywana funkcjonalność nie jest jeszcze dobrze znana ponieważ nie do końca została udostępniona na Portalu Azure. Aby z niej skorzystać będziemy musieli modyfikować pliki konfiguracyjne manualnie. Czytaj dalej

Serverless Azure – Progressive .NET 2017

Chciałem Was serdecznie zaprosić na moje nowe warsztaty pt. Serverless Azure. Ich premiera odbędzie się w Londynie w trakcie konferencji Progressive .NET 2017.

W trakcie 3,5 godzinnych warsztatów będziesz mógł sprawdzić jak w łatwy sposób można wykorzystać platformę Azure do budowania aplikacji Serverless. W przykładach chciałbym się skupić na Azure Functions oraz Azure Logic Apps. Zobaczysz jak w łatwy sposób możesz wykorzystać te dwa rozwiązania w swoich aplikacjach. Na koniec nauczysz się jak można budować, wdrażać, monitorować oraz zarządzać Twoimi aplikacjami. Razem z przykładami przedstawię najważniejsze wady i zalety omawianych rozwiązań. Moim głównym celem będzie nauczenie Ciebie jak i kiedy można wykorzystać opisane rozwiązania.

Wykorzystując podejście Serverless tworzenie skalowalnych i bezpiecznych aplikacji stało się bardzo proste. Możesz więc wykorzystać swoją kreatywność w celu wymyślania nowych funkcjonalności.

Azure Functions – Lessons learned

Ostatnio wszystkie tematy związane z Chmurą oraz pojęciem Serverless stały się bardzo modne. Jednym z takich elementów są Azure Functions. Na stronie Microsoftu można przeczytać, że:

Azure Functions to rozwiązanie umożliwiające łatwe uruchamianie małych fragmentów kodu („funkcji”) w chmurze. Możesz napisać tylko kod rozwiązujący aktualny problem, nie martwiąc się o całą aplikację ani infrastrukturę do jej uruchomienia. Dzięki usłudze Functions programowanie może być jeszcze wydajniejsze i można korzystać z wybranego języka programowania, takiego jak C#, F#, Node.js, Python lub PHP. Płać tylko za czas działania kodu — platforma Azure jest skalowana zgodnie z potrzebami. Usługa Azure Functions pozwala tworzyć na platformie Microsoft Azure aplikacje niewymagające użycia serwera.

I rzeczywiście mógłbym pisać dużo o komforcie użycia, łatwości wdrożenia i jeszcze kilkunastu innych cechach, które urzekły mnie w tym rozwiązaniu. Super sprawdzają się w przypadku projektów, które nie potrzebują dużego backendu. Przetestowałem to rozwiązanie wielokrotnie i jestem z niego zadowolony.

Nie odbyło się jednak bez błędów, o których chciałbym wspomnieć – a dokładniej dwóch. Czytaj dalej