De Kubernetes venimos, a Kubernetes vamos: cómo desarrollar microservicios sin duplicar trabajo

Cuando sabes que tu aplicación va a ir a producción en Kubernetes desde el minuto cero, lo último que quieres es mantener un docker-compose.yml, un .aspire.app, un conjunto de manifiestos k8s/, y encima repetir la configuración en CI/CD. La tentación de crear “entornos de desarrollo paralelos” es alta, pero el coste a medio plazo también lo es.

En este artículo, te muestro cómo estructurar un entorno de desarrollo eficiente, realista y sin lock-in, comparando 4 enfoques comunes: Docker Compose, .NET Aspire, k3d y kind, desde la perspectiva de un equipo que desplegará sí o sí en Kubernetes.

Leer más

Reprocesamiento y concurrencia en EF Core con SQL Server

En sistemas distribuidos que usan bases de datos relacionales como SQL Server, es común que múltiples hilos o procesos intenten leer y modificar simultáneamente la misma entidad. Este fenómeno se llama concurrencia y, lejos de ser un bug, es una consecuencia natural de los entornos altamente paralelos y asincrónicos.

Leer más

Cómo manejar reprocesos con alta concurrencia en DDD y Service Bus

En arquitecturas distribuidas con Service Bus (como Azure Service Bus, RabbitMQ o NServiceBus), es común recibir mensajes que provocan cambios en nuestro modelo de dominio. Pero… ¿qué ocurre cuando ese modelo ya fue modificado por otro proceso?

Este artículo te guía sobre cómo actuar ante errores de concurrencia al reprocesar mensajes, especialmente cuando sigues prácticas de Domain-Driven Design (DDD) y usas concurrencia optimista con una base de datos relacional.

Leer más

NewSQL con .NET: escalabilidad moderna sin renunciar a la consistencia

¿Es posible escalar horizontalmente sin renunciar a las garantías ACID?
Con la llegada de bases de datos NewSQL como CockroachDB, el ecosistema .NET puede por fin combinar lo mejor del mundo relacional con la resiliencia y elasticidad de los sistemas distribuidos.

En este artículo te cuento por qué deberías tener las bases de datos NewSQL en el radar, qué ventajas traen respecto a SQL y NoSQL, y cómo puedes integrar CockroachDB en tu aplicación .NET para empezar a construir sistemas realmente cloud-native.

Leer más

Test de Contratos y Componentes en .NET: Más allá de la pirámide de testing

¿Y si te dijera que un error mío distribuyó cientos de CDs defectuosos y casi me cuesta el trabajo?
Ese día no solo aprendí lo que es el caos… también entendí por qué las pruebas de software bien diseñadas salvan carreras.
De esa experiencia —entre lágrimas, bugs y monolitos de VB6— nace este libro:
«Test de Contratos y componentes en .Net: Más allá de la pirámide de testing», donde comparto cómo evitar esos errores, cómo estructurar pruebas útiles de verdad, y por qué los contract tests son tu mejor seguro de vida en microservicios.
Disponible gratis, en español, con ejemplos reales, código, herramientas y estrategia.

Leer más

Uso de AddDbContextPool y Buenas Prácticas con DbContext en Azure SQL y On-Premises

En aplicaciones EF Core, cada instancia de DbContext establece internamente conexiones y servicios que conllevan cierta sobrecarga. Aunque crear y eliminar un DbContext es relativamente ligero (no implica operar con la base de datos por sí solo), en escenarios de alta concurrencia la repetición continua de esa inicialización puede notarse en rendimiento. Además, las bases de datos (especialmente en la nube) imponen límites de sesiones/ conexiones. Optimizar el ciclo de vida del DbContext y la gestión de conexiones es clave para evitar errores de límite (por ejemplo “session limit reached”) y asegurar que la aplicación escala bien tanto en Azure SQL como en entornos on-premises.

Leer más
Cargando

Acerca de

Reconocimientos

Microsoft MVP

GitKraken Ambassador

Azure Heroes

GitKraken Ambassador

GitKraken Ambassador

Conecta conmigo

        

Perfil Sessionize

Otros

Buy Me a Coffee