despliegue y monitoreo de aplicaciones asp.net core en linux
TRANSCRIPT
Despliegue y Monitoreo de aplicaciones ASP.NET Core
en Linux
Rodolfo Finochietti@rodolfofCOO
.NET Core 1.1
Despliegue y monitoreo en Linux
4 pasos Instalar software de base Compilar y armar el paquete de nuestra aplicación Configurar el ambiente de ejecución Configurar el monitoreo
Instalando software de base SO .NET
http://dot.net Otra opción es compilar una app “Self-Contained”
Proxy reverso Apache Ngnix Seguridad
Apparmor Monitoreo
systemd Supervisor New Relic
Generando el paquete de distribución dotnet publish Cuidado con incluir todos los directorios!
publishOptions en el archivo project.json
Opcionalmente se puede armar un paquete “Self-Contained” Borrar type="platform“ en el archivo project.json Incluir la sección runtimes
"runtimes": { "win10-x64": {}, "osx.10.10-x64": {}, "ubuntu.14.04-x64": {} }
dotnet build -r ubuntu.14.04-x64 dotnet publish -c release -r ubuntu.14.04-x64
Configurando el ambiente de ejecuciónProxy Reverso
Ngnix básico Instalación
sudo apt-get install nginx Configuración básica
server { listen 80; location / {
proxy_pass http://localhost:5000proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection keep-alive;proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;
}}
Ngnix básico Probar configuración
sudo nginx -t Cargar configuración
sudo nginx -s reload
Monitoreo ¿Quien se encarga de controlar el funcionamiento de mi aplicación? Caídas Consumo de recursos Logs
Algunas opciones de monitores Supervisor systemd New Relic
Supervisor Software de monitoreo fácil de configurar y usar
Instalación sudo apt-get install supervisor
Configuración básicasudo nano /etc/supervisor/supervisord.conf [program:myapp]command=/usr/bin/dotnet /home/myapp/myapp.dlldirectory=/home/myappautostart=trueautorestart=truestderr_logfile=/var/log/myapp.err.logstdout_logfile=/var/log/myapp.out.logenvironment=ASPNETCORE_ENVIRONMENT=Productionuser=www-datastopsignal=QUIT
Supervisor Iniciar el monitoreo
sudo service supervisor start Todo queda en los logs
sudo tail -f /var/log/myapp.out.log sudo tail -f /var/log/supervisor/supervisord.log
systemdInit system en la mayoría de las distros de Linux
Demo
¿Preguntas?
¡Muchas Gracias!
[email protected]@rodolfofhttp://shockbyte.net