Marker Interface: ¿Patrón o Anti-patrón?
· ☕ 5 min · ✍️ eiximenis

Llamamos marker interface a una interfaz vacía. Sí, sí sin métodos ni propiedades ni nada. A pesar de que te pueda parecer una tontería tiene sus usos. Vamos hablar un poco de este patrón y sus usos y por qué es en cierta manera un anti-patrón, aunque no siempre, porque en esa vida, como todo, todo depende…


Meltdown y Spectre… algunos comentarios
· ☕ 11 min · ✍️ eiximenis

dBueno, todo el mundo está hablando sobre Meltdown y Spectre los dos ataques que aprovechan fallos de los microprocesadores “modernos” Intel (el primero) y de cualquier fabricante (el segundo). Como digo muchos medios ya han hablado de ambos ataques, en muchos casos con titulares grandilocuentes y sensacionalistas y contando apenas nada.

En este post voy a intentar explicar como funcionan ambos ataques, aunque me centraré en Meltdown por ser el más fácil de explicar, entender y aplicar. Spectre se basa en los mismos conceptos, pero es un ataque bastante más complejo.

Voy a intentar explicarlo de un modo “entendible”, pero obviamente eso requiere ciertos conocimientos técnicos, pero bueno… ese es un blog de desarrollo, así que seguramente los tienes 😉


Kubernetes (3) – Controladores Ingress
· ☕ 6 min · ✍️ eiximenis

Seguimos con esta serie de posts sobre Kubernetes. Los posts anteriores:

  1. Componentes de Kubernetes (donde vimos los distintos componentes de Kubernetes y como usar Minikube para ejecutarlo en local).
  2. Modelo de aplicación (donde vimos como crear nuestra primera aplicación en k8s).

En este tercer post veremos que son los recursos ingress y los controladores ingress y que ventajas nos aportan.


El metapaquete Microsoft.AspNetCore.All
· ☕ 8 min · ✍️ eiximenis

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.


Kubernetes (2) – Modelo de aplicación
· ☕ 9 min · ✍️ eiximenis

Si conoces compose conocerás su “modelo de aplicación”. Es un modelo sencillo, contiene básicamente servicios. Un servicio en compose no es nada más que una imagen de Docker y su configuración asociada.  Luego cuando levantamos una aplicación compose con docker-compose up se crea uno (o varios) contenedor por cada servicio y listos.

Pero Kubernetes tiene su propio modelo de aplicación radicalmente distinto. En este post vamos a ver (de forma simplificada) cual es el modelo de aplicación que tiene Kubernetes y ¡desplegaremos nuestra primera aplicación!


Kubernetes (1): Componentes de Kubernetes
· ☕ 5 min · ✍️ eiximenis

Bueno, con este post empiezo una serie de posts sobre Kubernetes. Tengo varios posts en borrador, pero creo que antes de publicarlos puede estar bien una pequeña introducción a Kubernetes: qué es. Y de esto va este post.


Docker multi-stage builds… o como compilar (casi) cualquier cosa sin tener que instalar nada.
· ☕ 9 min · ✍️ eiximenis

Poco a poco los contenedores, y Docker en especial, se han ido abriendo paso en nuestro workflow diario. Y si al principio era tan solo un mecanismo para encapsular aplicaciones, luego también vimos en ellos una magnífica opción para evitar tener que instalar mil dependencias en las máquinas de desarrollo y finalmente para compilar cualquier proyecto… sin tener que instalar ningún SDK en local.


Configurar SSL en un cluster de k8s
· ☕ 4 min · ✍️ eiximenis

¡Buenas! En esta entrada voy a resumir los pasos seguidos para añadir soporte SSL a un cluster Kubernetes. En mi caso lo tengo desplgado en ACS pero eso es irrelevante.

Lo único que si usas ACS y quieres usar una IP determinada, recuerda que la IP pública que vayas a usar debe estar creada anteriormente. Si no, por más que la especifiques dentro de la configuración del servicio (usando loadBalancerIP), Kubernetes no va a poder levantar el servicio.