Dzisiaj skupimy się na wdrożeniu aplikacji ASP.NET Core MVC.
Po przeczytaniu tego artykułu będziesz potrafił uruchomić swoją pierwszą aplikację ASP.NET Core na maszynie wirtualnej z systemem Ubuntu 14.
Załóżmy, że mamy nasza aplikację gotową i chcemy ją uruchomić.
Jak najłatwiej to zrobić? Podczas debugowania możemy roboczo wykorzystać Visual Studio do uruchomienia aplikacji na IIS Express.
Jednak w warunkach produkcyjnych kiedy chcemy wdrożyć aplikację na systemie Linux, musimy poszukać innego rozwiązania.
Dlaczego? Bo Linux nie będzie obsługiwał ani visual Studio ani IIS Express, ponadto jeśli korzystamy z Continuous Deployment, to chcemy wdrożenie robić z poziomu konsoli.
Jak pisałem w poprzednich postach, wraz z nadejściem ASP.NET Core MVC, mamy możliwość wdrażania aplikacji napisanych w C# na platformie Linux.
To niezwykle istotne, bo przynosi ogromne korzyści, choćby dlatego, że ceny hostingu są kilka razy niższe dla maszyn z Linuxem niż z Windowsem.
1) Framework-dependent deployments (FDD) - ta opcja wymaga aby na maszynie docelowej był zainstalowany dotnet core.
2) Self-contained deployments (SCD) - ta opcja nie wymaga aby dotnet był zainstalowany na docelowej maszynie.
Ja korzystam aktualnie z opcji FDD, uprzednio instalując dotnet framework na maszynie wirtualnej ale gdybym miał dużo serwerów produkcyjnych to poważnie rozważyłbym opcję SCD.
Dzięki temu zaoszczędziłbym mnóstwo czasu, bo nie musiałbym instalować dotnet frameworka na każdej z maszyn.
Gdyby ktoś był zainteresowany instalacją dotnet core na systemie Ubuntu 14 to instalacja sprowadza się do wykonania poleceń w konsoli:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.1
Po zakończeniu instalacji możemy upewnić się, że wszystko działa wywołując polecenie:
dotnet
Przypomnę, że aplikacja Perfect Life składa się z 2 części:
- aplikacja mobilna opracowana w Xamarin Forms - uruchamiana na telefonie z Androidem(w przyszłości także na iOS)
- aplikacja serwerowa, web service, opracowana w ASP.NET Core MVC, która jest uruchamiana na serwerze z systemem operacyjnym Linux
Zapewne każdy inżynier potwierdzi moje słowa, że zadania żmudne, które są podatne na błędy ludzkie należy automatyzować.
Zrobiłem to również w przypadku wdrożenia, które dzięki Visual Stuudio Team Services jest procesem w pełni automaatycznym. A działa to w następujący sposób:
Wdrożenie aplikacji serwerowej odbywa się za pomocą VSTS(visualstudio.com), gdzie stworzyłem definicję builda. Każdy build jest wyzwalany w momencie gdy wykonam polecenie: git push origin master. Wtedy moje najnowsze zmiany trafiają do githuba. W cigu kilku sekund VSTS zostaje powiadomiony przez githuba o nowych zmianach, i rozpoczyna się budowanie projektu za pomocą polecenia dotnet publish.
W wyniku otrzymujemy jeden folder ze skompilowaną wersją naszej aplikacji w postaci pliku .dll oraz wszystkie zależnośći, czyli biblioteki, które wykorzystuje nasza aplikacja.
Taki folder VSTS kopiuje na docelową maszynę wirtualną z systemem Ububtu 14, a następnie uruchamia poleceniem: sudo nohup dotnet.dll kestrel > /dev/null 2>&1 &
Oczywiście testowo możemy zalogować się na tę maszynę za pomocą programu PUTTY, który jest klientem SSH instalowanym na Windowsie i uruchomić krótsze polecenie:
dotnet.dll
Jednak wtedy po zakończeniu sesji Putty zamknie połączenie i nasza aplikacja ASP.NET Core MVC się wyłączy.
Dlatego polecam stosować tę dłuższą wersję polecenia, która uruchamia proces w tle i możemy bezpiecznie zamknąć sesję SSH a serwer będzie działać dalej.
Zachęcam wszystkich programistów .NET do eksperymentów z ASP.NET Core już teraz, bo warto go znać.
Wiem, ze nowe aplikacje już powstają w ASP.NET Core. Spodziewam się również, że coraz częściej będziemy spotykali się migracjami starych projektów do najnowszej wersji .NET Core.
Jako źródło wiedzy o ASP.NET MVC Core najlepsza na początek będzie książką Adama Freemana: http://www.apress.com/us/book/9781484203989
Zachęcam do lektury.
Po przeczytaniu tego artykułu będziesz potrafił uruchomić swoją pierwszą aplikację ASP.NET Core na maszynie wirtualnej z systemem Ubuntu 14.
Załóżmy, że mamy nasza aplikację gotową i chcemy ją uruchomić.
Jak najłatwiej to zrobić? Podczas debugowania możemy roboczo wykorzystać Visual Studio do uruchomienia aplikacji na IIS Express.
Jednak w warunkach produkcyjnych kiedy chcemy wdrożyć aplikację na systemie Linux, musimy poszukać innego rozwiązania.
Dlaczego? Bo Linux nie będzie obsługiwał ani visual Studio ani IIS Express, ponadto jeśli korzystamy z Continuous Deployment, to chcemy wdrożenie robić z poziomu konsoli.
Jak pisałem w poprzednich postach, wraz z nadejściem ASP.NET Core MVC, mamy możliwość wdrażania aplikacji napisanych w C# na platformie Linux.
To niezwykle istotne, bo przynosi ogromne korzyści, choćby dlatego, że ceny hostingu są kilka razy niższe dla maszyn z Linuxem niż z Windowsem.
1) Framework-dependent deployments (FDD) - ta opcja wymaga aby na maszynie docelowej był zainstalowany dotnet core.
2) Self-contained deployments (SCD) - ta opcja nie wymaga aby dotnet był zainstalowany na docelowej maszynie.
Ja korzystam aktualnie z opcji FDD, uprzednio instalując dotnet framework na maszynie wirtualnej ale gdybym miał dużo serwerów produkcyjnych to poważnie rozważyłbym opcję SCD.
Dzięki temu zaoszczędziłbym mnóstwo czasu, bo nie musiałbym instalować dotnet frameworka na każdej z maszyn.
Gdyby ktoś był zainteresowany instalacją dotnet core na systemie Ubuntu 14 to instalacja sprowadza się do wykonania poleceń w konsoli:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.1
Po zakończeniu instalacji możemy upewnić się, że wszystko działa wywołując polecenie:
dotnet
Przypomnę, że aplikacja Perfect Life składa się z 2 części:
- aplikacja mobilna opracowana w Xamarin Forms - uruchamiana na telefonie z Androidem(w przyszłości także na iOS)
- aplikacja serwerowa, web service, opracowana w ASP.NET Core MVC, która jest uruchamiana na serwerze z systemem operacyjnym Linux
Zapewne każdy inżynier potwierdzi moje słowa, że zadania żmudne, które są podatne na błędy ludzkie należy automatyzować.
Zrobiłem to również w przypadku wdrożenia, które dzięki Visual Stuudio Team Services jest procesem w pełni automaatycznym. A działa to w następujący sposób:
Wdrożenie aplikacji serwerowej odbywa się za pomocą VSTS(visualstudio.com), gdzie stworzyłem definicję builda. Każdy build jest wyzwalany w momencie gdy wykonam polecenie: git push origin master. Wtedy moje najnowsze zmiany trafiają do githuba. W cigu kilku sekund VSTS zostaje powiadomiony przez githuba o nowych zmianach, i rozpoczyna się budowanie projektu za pomocą polecenia dotnet publish.
W wyniku otrzymujemy jeden folder ze skompilowaną wersją naszej aplikacji w postaci pliku .dll oraz wszystkie zależnośći, czyli biblioteki, które wykorzystuje nasza aplikacja.
Taki folder VSTS kopiuje na docelową maszynę wirtualną z systemem Ububtu 14, a następnie uruchamia poleceniem: sudo nohup dotnet
Oczywiście testowo możemy zalogować się na tę maszynę za pomocą programu PUTTY, który jest klientem SSH instalowanym na Windowsie i uruchomić krótsze polecenie:
dotnet
Jednak wtedy po zakończeniu sesji Putty zamknie połączenie i nasza aplikacja ASP.NET Core MVC się wyłączy.
Dlatego polecam stosować tę dłuższą wersję polecenia, która uruchamia proces w tle i możemy bezpiecznie zamknąć sesję SSH a serwer będzie działać dalej.
Zachęcam wszystkich programistów .NET do eksperymentów z ASP.NET Core już teraz, bo warto go znać.
Wiem, ze nowe aplikacje już powstają w ASP.NET Core. Spodziewam się również, że coraz częściej będziemy spotykali się migracjami starych projektów do najnowszej wersji .NET Core.
Jako źródło wiedzy o ASP.NET MVC Core najlepsza na początek będzie książką Adama Freemana: http://www.apress.com/us/book/9781484203989
Zachęcam do lektury.
No to grubo, że można już odpalać serwisy webowe w technologiach Microsoftowych w linuxie. Kto by pomyślał.
OdpowiedzUsuńTak, uważam, że to bardzo dobry krok Microsoftu.
Usuń