Deweloper w chmurze

Deweloper w chmurze

Deweloper w chmurze

Recent Posts

Hello world!

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

Automatyzacja deploy-u aplikacji przy pomocy portalu Azure

W poprzednim wpisie opisałem jak możemy wrzuć naszą aplikację na serwery które znajdują się w chmurze Azure. Cały proces jest strasznie powolny i nie automatyzuje procesu który powinien wykonywać się sam. Z pomocą przychodzi nam github oraz portal Azure. Bezpośrednio na portalu możemy zdefiniować aby nasz serwer sam pobierał zmiany z naszej gałęzi, a następnie robił deploy na serwer.

Aby zacząć przygodę z automatyzacją musimy mieć postawiony serwer z aplikacją web. Możemy sami go postawić wyklikując na portalu formatki albo kliknąć poniżej guzik który postawi nam taki serwer

Kiedy serwer jest postawiony możemy zacząć automatyzować nasze procesy. Aby to zrobić musimy wybrać kartę Deployment Center naszej web Aplikacji. Kolejnym krokiem jest wybór repozytorium. W naszym wypadku wybierzemy githuba. Kiedy przejdziemy dalej musimy dokonać autoryzacji naszego konta na gicie z portalem Azure.

Kolejnym krokiem jest wybór serwera który buduje nasz kod. Najłatwiejszym i najszybszym sposobem jest wybranie KUDU, czyli serwera na którym jest postawiona web aplikacja. Kiedy wybierzemy serwer musimy już tylko wskazać jakie repozytorium chcemy zbudować oraz z której gałęzi KUDU pobierze kod źródłowy.

Tak naprawdę to koniec. W kilku krokach zautomatyzowaliśmy proces publikacji naszej aplikacji. Po odświeżeniu strony można zauważyć, że kod się pobiera, buduje i publikuje. Kiedy status będzie “Active” aplikacja będzie już gotowa :).

Oczywiście cała magia dzieje się już na sam koniec. Jeżeli dodamy zmiany do naszego brancha to Azure automatycznie pobierze, zbuduje i opublikuje nową wersję aplikacji. Od teraz już możemy porzucić visual studio i zautomatyzować publikacje aplikacji.

Co jeżeli nasze zmiany popsuły aplikację ? Nie musimy cofać zmian z gita, mergować się i stresować. Azure daje nam możliwość publikacji dowolnego commita z serwera. Jeżeli klikniemy w portalu na interesujący nas commit, możemy za pomocą guzika “Redeploy”  wrócić do wersji wcześniejszej. Kiedy wszystko naprawimy wystarczy wybrać najnowszy commit i programować dalej 🙂

Podsumowanie warsztatów Code&Cloud 10/13/2018

Dziękuję wszystkim za liczne przybycie na moje warsztaty! Podsumowując dowiedzieliśmy się jak możemy zautomatyzować naszą aplikację. Takie narzędzia jak Visual Studio oraz Azure DevOps bardzo ułatwiają pracę. Jak się okazało automatyczny build jak i deploy jest bardzo łatwy, a potrafi zaoszczędzić dużo pracy. Poniżej link do prezentacji z warsztatów.

Link

Dziękuję również za odpowiedzi w ankiecie jak i wysokie oceny. Na pewno jest to motywacja aby zorganizować kolejne warsztaty. Dziękuje wam i do zobaczenia !


Sendgrid ARM i wysyłka maila

Kiedy tworzymy pierwszą aplikację webową, chcemy dodać do niej jak najwięcej funkcjonalności. Bardzo często na pierwszą funkcjonalność pada wysyłka maili. .Net implementuję bibliotekę która pozwala za pomocą protokołu SMTP wysyłać maile z dowolnej prywatnej skrzynki np. google czy też outlook. Jest to bardzo dobre rozwiązanie na początek gdy tak naprawdę maile wysyłamy tylko my, testując aplikację. Kiedy zdecydujemy się użyć tego sposobu już w świecie produkcji, stajemy przed bardzo poważnym problemem. Google czy też inni klient poczty ma filtry anty-spamowe. Zatem kiedy postanowimy wysyłać znaczną ilość maili, google automatycznie nas zablokuje oraz nasz mail trafi na czarną listę anty-spam. Aby tego uniknąć z pomocą przychodzi SendGrid.

SendGrid to platforma do masowego wysyłania maili. W tym wypadku nie musimy się przejmować serwerami czy też statystykami. SendGrid to usługa SaaS dzięki czemu operator dostarcza nam gotowe rozwiązanie które My tylko używamy.

Konto możemy stworzyć używając portalu SendGrid, lecz jeżeli chcemy skorzystać z darmowej opcji która na ten moment daje nam 25 tyś maili miesięcznie, musimy to zrobić poprzez Azure. Aby stworzyć takie konto możliwości mamy kilka. Jako fan ARM polecam tę drogę 🙂 Samo stworzenie konto można zrobić bezpośrednio z mojego github-a lub klikając przycisk poniżej.

Kiedy już stworzymy usługę, kolejnym krokiem będzie pobranie naszego prywatnego klucza. Prywatny klucz uzyskamy bezpośrednio w portalu. Aby zalogować się do niego musimy znaleźć usługę w portalu a następnie kliknąć manage.

Kiedy już jesteśmy zalogowani w portalu, kolejnym krokiem będzie wygenerowanie klucza.

Kiedy klucz został wygenerowany wystarczy napisać prostą funkcję która wyśle za nas maila. Do celów testowych wystarczy stworzyć aplikację konsolową. Pamiętajmy zainstalować odpowiednie nugety

using SendGrid;
using SendGrid.Helpers.Mail;


private async Task CreateMailAsync() { var apiKey = "TWÓJ KLUCZ"; var client = new SendGridClient(apiKey); var from = new EmailAddress("[email protected]", title); var to = new EmailAddress("TWOJ EMAIL"); var plainTextContent = plainText; var htmlContent = content; var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); await client.SendEmailAsync(msg); }

Jak można zauważyć sama wysyłka jest bardzo prosta. Co ciekawe adres email z którego wysyłamy maila może być dowolny(nie stoi na przeszkodzie by wysłać maile z konta [email protected]:) ). To nie jest bug 🙂 a wada protokołu SMTP. Protokół ten jawnie wysyła tekst przez co łatwo jest wpisać swój własny wymyślony email 🙂 więcej informacji na pewno znajdziesz w internecie .

Sam sendgrid zapewnia nam również statystyki dzięki którym możemy zobaczyć ile maili wysłaliśmy, czy nasze maile zostały doręczone oraz czy któreś z nich zostały potraktowane jako spam. Myślę, że jest to o wiele lepsza opcja niż wysyłanie maili z prywatnego konta google 🙂