Deployment: Fácil, Difícil o Imposible!
Cuando un desarrollador, o el equipo de usuarios finales considera que su aplicación está concluida, el siguiente paso es: El Deployment o Publicación.

Cuando un desarrollador, o el equipo de usuarios finales, considera que su aplicación está concluida, que se han desarrollado todos los módulos o servicios del diseño, superado el plan de pruebas y sienten que están satisfechos con el producto, el siguiente paso es: El Deployment o Publicación.
No existe una traducción literal aceptada para este término, pero es de conocimiento general que este proceso, o conjunto de actividades finales, se refiere a la publicación en Internet de la aplicación para salir “al aire” y poder ser accesado por los visitantes o usuarios desde cualquier parte del mundo. El Deployment, conlleva una serie de pasos más o menos ordenados que deben ser llevados a cabo con el debido cuidado para asegurar que la publicación resulte ser exitosa. Sin embargo, este es un proceso que durante mucho tiempo ha estado en una caja negra y pocos eran los que conocían a ciencia cierta los pasos a seguir para lograr salir a producción en Internet.
En la actualidad, conocer los pasos necesarios para publicar una aplicación es de dominio general debido a la gran cantidad de artículos y videos que describen el proceso. No obstante, para muchos desarrolladores no parece ser un camino fácil de recorrer ya que es imprescindible tener algún dominio de conocimiento de redes, protocolos de transporte y seguridad, configuración de Linux, Firewall, servidores de aplicaciones, proxies, servidores de dominio, conectividad remota, encriptamiento, y plataforma de Nube, entre muchos otros conocimientos más. En este artículo se describen de manera general esos pasos que, desde luego, se deben considerar particularidades para cada caso de uso. La cantidad de conocimientos necesarios puede resultar muy fácil para algunos, difícil para otros y, para otros más, una tarea imposible al grado tal que en ocasiones se recurre a servicios de especialistas para lograr la publicación. Sigue las ligas en cada paso para mayor información:
Paso 1: Identificar el servicio en Internet
La primer decisión que deberá tomarse será elegir el tipo de servicio (Hosting compartido, Servidor Privado Virtual, o Nube). La decisión dependerá del tamaño y tipo de aplicación, así como la expectativa de crecimiento a futuro. Por ejemplo, para contenido estático como un Blog o aplicaciones sencillas como una Tienda Virtual, es posible que un hosting compartido sea la mejor opción debido a su bajo costo. Sin embargo, hay que tomar en cuenta que la aplicación comparte recursos del servidor con muchas otras aplicaciones simultáneamente.
Paso 2: Preparar el ambiente de ejecución.
El siguiente paso es crear al ambiente de ejecución para nuestra aplicación dentro de la instancia recién creada. Dependiendo de la distribución, los comandos de preparación variarán.
Paso 3: Publicar la aplicación ASP.NET Core.
Previo a crear la publicación, es importante configurar el middleware para desactivar el direccionamiento al protocolo seguro HTTPS en el ambiente de desarrollo.
Paso 4: Instalar y configurar el proxy Nginx.
Este paso es quizá el de mayor atención debido a la estructura y sintaxis de las instrucciones propias del paquete. Un error de sintaxis o una directiva mal colocada, impedirá que el reverse proxi reenvíe correctamente las peticiones HTTP a la aplicación, imposibilitando salir a Internet. Situación por demás frustrarte para el desarrollador.
Paso 5: Establecer el Dominio de Internet.
Una vez que el sitio está visible en Internet y se han establecido las reglas apropiadas de Firewall para los protocolos SSH, FTP y FTPS, si así se ha decidido, es recomendable la contratación de un Dominio para que los servidores DNS en Internet resuelvan la dirección IP del servidor virtual. Existe una gran variedad de proveedores y se deberá escoger aquel que ofrezca los mejores servicios de administración del DNS, zonas y registros y, por supuesto, el precio más asequible.
Paso 6: Configurar el certificado SSL.
Finalmente, una última acción de importancia significativa consiste en configurar un Certificado de seguridad SSL, con la finalidad de enrutar todas las solicitudes HTTP hacia el puerto seguro HTTPS 443. Para ello, es importante contar previamente con un Dominio.
Eso es todo, si todo está bien, el sitio estará ahora disponible en Internet. Felicidades!
Conclusión
Definitivamente, el proceso completo no está necesariamente al alcance de cualquiera, algunos de los pasos requieren un conocimiento profundo del dominio particular de la etapa. A manera de ejemplo, se puede mencionar que el sitio oficial de Microsoft (https://learn.microsoft.com/es-es/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-8.0&tabs=linux-ubuntu) menciona en la configuración de del proxy Nginx la inclusión de una directiva para peticiones HTTP, en el archivo alojado en la carpeta sites-available. Sin embargo, en las versiones recientes del proxy las directivas http ya no son aceptadas en esa carpeta, resultando en un error que imposibilta la publicación con éxito.
Suscríbete al Blog
Obtén las últimas noticias en tu correo!Leer siguientes
Dotnet Linux Laboratory
Es una iniciativa experimental para el desarrollo de aplicaciones Web modernas con el potente Framework ASP.NET Core de Microsoft, y el maravilloso sistema operativo GNU Linux.

Instalar Visual Studio Code en Linux

Instalar .NET SDK en Linux
