HttpClient en C# y servicios de Docker escalados.

En este post vamos a ver como escalar servicios, tanto en Compose, como en Swarm como en Kubernetes y luego veremos algunas consideraciones cuando usemos HttpClient desde el cliente al acceder a un servidor escalado.

Nos centramos en el escenario de escalado básico, es decir, sin demasiada lógica.

[Autobombo]: Si estás interesado en temas de Docker y Kubernetes, échale un vistazo a mi curso de Docker y Kubernetes en CampusMVP.

Continúa leyendo HttpClient en C# y servicios de Docker escalados.

Monitorizando nuestros servicios en Kubernetes con Beatpulse

Disclaimer: En ese post hablo de una librería (Beatpulse) de la que soy contribuidor (lo aclaro, para que no haya ningún malentendido).

En todo sistema distribuído es importante disponer de un mecanismo que permita saber en todo momento si un servicio está funcionando o no. Es cierto que el concepto de «funcionando» es algo difuso de definir, pero yendo a mínimos deberíamos saber si un sistema se ha caído o no.

Continúa leyendo Monitorizando nuestros servicios en Kubernetes con Beatpulse

Ejecutar pruebas de tus contenedores en VSTS

Si desarrollas con Docker es probable que uses multi-stage builds para crear tus contenedores, en este caso unificas bajo un mismo Dockerfile la creación del binario (usando una imagen de compilación) y la creación de la imagen final (basandote en una imagen de runtime).

Ahora bien, si usas un pipeline de CI/CD con VSTS… ¿como gestionar los tests de esos contenedores? Eso es lo que vamos a discutir en este post.

Continúa leyendo Ejecutar pruebas de tus contenedores en VSTS

Gestionar la configuración en asp.net core y Docker

Cuando desarrollamos una aplicación en asp.net core que queremos terminar ejecutando con Docker, el como gestionar la configuración puede causarnos más de un quebradero de cabeza.

En este post voy a comentar, brevemente, como podemos gestionar varios escenarios de configuración.

Continúa leyendo Gestionar la configuración en asp.net core y Docker

Asp.Net Core – solucionar error al publicar en docker (assembly not found)

Buenas! Imagina que tienes una aplicación hecha en Asp.Net Core y que referencia al metapaquete Microsoft.AspNetCore.All. También tienes un Dockerfile y un fichero compose para generar la imagen usando una multi-stage build.

La imagen se genera sin problemas pero al ejecutarla recibes un error y no arranca.

Continúa leyendo Asp.Net Core – solucionar error al publicar en docker (assembly not found)

El metapaquete Microsoft.AspNetCore.All

Todos estamos acostumbrados a usar los paquetes de NuGet en nuestros desarrollos. Pero a raíz de Net Core 2.0, apareció el concepto de metapaquete. Qué es exactamente un metapaquete y por qué existen?

La respuesta rápida es que un metapaquete de NuGet es simplemente un paquete que no incluye ningún ensamblado, solo referencia a otros paquetes. Es, en definitiva, un mecanismo para «agrupar» paquetes de NuGet bajo un mismo número de version.

Continúa leyendo El metapaquete Microsoft.AspNetCore.All

Swashbuckle con ASP.NET Core y AAD B2C

Swashbuckle es una gran herramienta para crear documentaciones de tus APIs desarrolladas con ASP.NET Core. Por debajo usa Swagger y Swagger UI pero nos abstrae de instalar y configurar esos dos productos. Tan solo tenemos que instalar el paquete NuGet Swashbuckle.AspNetCore y ya tenemos todo lo que necesitamos.

Continúa leyendo Swashbuckle con ASP.NET Core y AAD B2C

ASP.NET Core 2–Razor Pages

Nota: Este post es sobre ASP.NET Core 2 Preview 1. Algunas cosas pueden cambiar en la versión final.

¿Quien se acuerda de las ASP.NET Web Pages? Salieron tampoco hace tanto, más o menos junto con MVC3 y les acompañaba un producto propio (WebMatrix). Su objetivo era proporcionar un modelo de desarrollo basado en páginas (a lo Webforms) en contraposición del modelo basado en controladores de MVC.

He de reconocer que nunca les presté mucha atención y tengo la impresión que el resto del mundo tampoco. Su objetivo creo que era ofrecer una puerta de entrada rápida a ASP.NET ofreciendo un modelo sencillo de páginas. Su principal problema es que era difícil integrarlo en un proyecto “más grande” que estuviese hecho en ASP.NET MVC y así tener partes usando “Web Pages” y otras en MVC. Y, honestamente, montar un proyecto complejo en un modelo basado en páginas, no termino de verlo.

Personalmente las olvidé hace tiempo y por eso el anuncio de “Razor Pages” en ASP.NET Core 2 me sorprendió bastante. Pero la realidad es que Razor Pages es otra cosa bastante más interesante que las antiguas “Web Pages”…

Continúa leyendo ASP.NET Core 2–Razor Pages