{"id":8925,"date":"2018-02-07T16:09:24","date_gmt":"2018-02-08T00:09:24","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/cesardelatorre\/?p=8925"},"modified":"2019-03-12T22:14:26","modified_gmt":"2019-03-13T06:14:26","slug":"microsoft-ebook-gratuito-en-espanol-microservicios-net-arquitectura-para-aplicaciones-net-contenerizadas","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/microsoft-ebook-gratuito-en-espanol-microservicios-net-arquitectura-para-aplicaciones-net-contenerizadas\/","title":{"rendered":"Microsoft eBook gratuito en Espa\u00f1ol: \u201cMicroservicios .NET \u2013 Arquitectura para aplicaciones .NET contenerizadas\u201d &#8211; Docker, .NET Core, Kubernetes, Service Fabric, Azure."},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/020818_0012_MicrosofteB1.png\" alt=\"\" \/><\/p>\n<p>Las arquitecturas basadas en Microservicios est\u00e1n emergiendo actualmente como opciones apropiadas para aplicaciones distribuidas de misi\u00f3n cr\u00edtica.<\/p>\n<p>En una arquitectura basada en microservicios, la aplicaci\u00f3n se construye basada en una colecci\u00f3n de servicios que deben ser desarrollados, probados, versionados y desplegados en producci\u00f3n, de forma independiente.<\/p>\n<p>En paralelo, las empresas actualmente est\u00e1n descubriendo como con contenedores Docker pueden reducir costes, resolver problem\u00e1ticas de despliegues y en definitiva mejorar DevOps y operaciones de despliegues a producci\u00f3n. Docker se esta convirtiendo en un est\u00e1ndar &#8220;de facto&#8221;.<\/p>\n<p>Las arquitecturas de microservicios son realmente independientes, a nivel purista, de los contendores Docker. Se puede implementar una aplicaci\u00f3n con microservicios sin contenedores Docker, por ejemplo, desplegando microservicios como simples procesos. Y viceversa tambi\u00e9n es cierto, se puede usar contenedores Docker en aplicaciones con despliegue monol\u00edtico (como una aplicaci\u00f3n web sencilla), sin arquitectura de microservicios. Pero tambi\u00e9n es cierto que el uso de contendores Docker en arquitecturas de microservicios es una opci\u00f3n muy conveniente y en general, hoy en dia, se recomienda hacer uso de contenedores en aplicaciones con arquitectura de microservicios.<\/p>\n<p>Microsoft has estado en los \u00faltimos a\u00f1os creando mucha innovaci\u00f3n alrededor de contendores Docker, tanto contenedores Linux como contenedores Windows, as\u00ed como creando productos de despliegue de infraestructura tipo orquestadores como Azure Container Service (AKS) con Kuberentes y Azure Service Fabric. Estos productos permiten desplegar aplicaciones basadas en contenedores al tiempo que posibilitan ofrecer alta escalabilidad tanto en la nube (Microsoft Azure u otras nubes publicas) como tambi\u00e9n on-premises (en tu propio datacenter).<\/p>\n<p>Hace algunos meses, desde el grupo de producto de Microsoft .NET publicamos <a href=\"https:\/\/aka.ms\/microservicesebook\">en ingles<\/a> una <strong>gu\u00eda\/eBook sobre Microservicios .NET y Contenedores Docker<\/strong>, actualizada a <strong>.NET Core 2.0<\/strong> (Blog post en el <a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2017\/08\/02\/microservices-and-docker-containers-architecture-patterns-and-development-guidance\/\">Blog de .NET con resumen en ingl\u00e9s<\/a>), la cual ha tenido muy buena aceptaci\u00f3n en la comunidad .NET y en el contexto profesional empresarial. Sin embargo, recibimos tambi\u00e9n bastante <em>feedback<\/em> solicitando la traducci\u00f3n de este libro a otros idiomas, como el espa\u00f1ol, chino, etc. Me hubiera encantado traducirlo personalmente a espa\u00f1ol, pero me ha sido imposible por falta de tiempo.<\/p>\n<h2>Microsoft eBook gratuito en Espa\u00f1ol: &#8220;Microservicios .NET \u2013 Arquitectura para aplicaciones .NET contenerizadas&#8221;<\/h2>\n<p>Hoy anuncio que hemos podido traducirlo a espa\u00f1ol (gracias a la ayuda y buen trabajo de <strong>Miguel Veloso, <\/strong>consultor en <em>Turing Challenge<\/em>, en Espa\u00f1a) y est\u00e1 disponible para bajarlo desde Internet en la siguiente URL:<\/p>\n<p><a href=\"https:\/\/aka.ms\/microservicesebook-es-es\">https:\/\/aka.ms\/microservicesebook-es-es<\/a><\/p>\n<p><a href=\"https:\/\/aka.ms\/microservicesebook-es-es\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/020818_0012_MicrosofteB2.png\" alt=\"\" \/><\/a><\/p>\n<p>Tambi\u00e9n esta disponible <a href=\"https:\/\/aka.ms\/microservicesebook-zh-cn\">en chino<\/a>, por si el lector de este blog post en espa\u00f1ol conoce a alguien que este interesado en dicho idioma. \ud83d\ude42<\/p>\n<p>A continuaci\u00f3n, paso a destacar los puntos mas destacables de la gu\u00eda\/libro:<\/p>\n<p>Esta gu\u00eda\/libro (unas 300 p\u00e1ginas con implementaci\u00f3n de c\u00f3digo detallada) es una gu\u00eda de desarrollo de aplicaciones basadas en microservicios y en contenedores Docker.<\/p>\n<p>Cubre conceptos de arquitectura, dise\u00f1o e implementaci\u00f3n de microservicios con <strong>.NET Core<\/strong> y <strong>Docker<\/strong>.<\/p>\n<h2>Aplicaci\u00f3n de referencia relacionada con la gu\u00eda de arquitectura<\/h2>\n<p>Para hacer m\u00e1s f\u00e1cil el arrancar y aprender sobre esta tem\u00e1tica, tambi\u00e9n se ha creado una aplicaci\u00f3n de referencia de microservicios\/contenedores a la cual se referencia desde el eBook seg\u00fan se avanza en diferentes implementaciones.<\/p>\n<p>Esta aplicaci\u00f3n de referencia se llama <a href=\"https:\/\/github.com\/dotnet-architecture\/eShopOnContainers\">eShopOnContainers y esta disponible en GitHub<\/a>. Es c\u00f3digo open-source y abierta a la colaboraci\u00f3n de la comunidad. De hecho a la fecha hemos tenido ya mas de 176 PRs (Pull Requests) con c\u00f3digo de la comunidad mejorando la aplicaci\u00f3n.<\/p>\n<p>Eso s\u00ed, lo relacionado a la aplicaci\u00f3n, <em>Wiki<\/em>, <em>setups<\/em>, etc. est\u00e1 solamente disponible en ingl\u00e9s.<\/p>\n<p>Es importante destacar que el hecho de que el dominio de negocio de esta aplicaci\u00f3n ejemplo sea sobre eCommerce es puramente como ejemplo por ser una tem\u00e1tica que todos los desarrolladores conocen. Pero esta aplicaci\u00f3n no trata de ser un modelo\/referencia de eCommerce como tal, solamente de aplicaci\u00f3n de ejemplo de como se puede implementar microservicios con .NET Core y contendores Docker.<\/p>\n<p>El siguiente diagrama muestra un resumen de alto nivel de la arquitectura de esta aplicaci\u00f3n ejemplo, en un entorno de desarrollo\/pruebas.<\/p>\n<p><strong>Requerimientos:\n<\/strong><\/p>\n<p>Es importante destacar que lo \u00fanico que se necesita para hacer funcionar la aplicaci\u00f3n es un <strong>-PC Windows 10 con Visual Studio 2017 y Docker for Windows-<\/strong> o incluso opcionalmente tambi\u00e9n un <strong>-Mac con Docker for Mac y .NET Core SDK-<\/strong> o un <strong>-PC Windows 10 con Docker for Windows y .NET SDK-<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/020818_0012_MicrosofteB3.png\" alt=\"\" \/><\/p>\n<p>La siguiente imagen seria como se recomienda desplegar en un &#8216;entorno de producci\u00f3n&#8217; en Azure con un API Gateway tipo &#8220;Azure API Management&#8221;:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/020818_0012_MicrosofteB4.png\" alt=\"\" \/><\/p>\n<p>Sin embargo, actualmente estamos trabajando en una actualizaci\u00f3n de la aplicaci\u00f3n para uso de API Gateways gen\u00e9ricos (basados en <a href=\"https:\/\/github.com\/TomPallister\/Ocelot\">Ocelot<\/a>) en contenedores Docker .NET, y de esa forma el uso de &#8216;Azure API Management&#8217; en producci\u00f3n seria opcional.<\/p>\n<p>La lista siguiente son las caracter\u00edsticas m\u00e1s importantes implementadas en la aplicaci\u00f3n ejemplo y explicadas en el eBook\/Libro:<\/p>\n<p>Microservicios en el <em>backend<\/em>:<\/p>\n<p>\u2022 Microservicio IDENTITY, basado actualmente en ASP.NET Core Identity e IdentityServer4.<\/p>\n<p>\u2022 Microservicio CATALOG, es un servicio sencillo, CRUD (create, read, update, delete) que consume su propia base de datos SQL Server con Entity Framework Core.<\/p>\n<p>\u2022 Microservicio ORDERING, es un microservicio con implementacion interna basada en patrones DDD (Domain-Driven Design).<\/p>\n<p>\u2022 Microservicio BASKET, es un esrvicio CRUD con datos en Redis Cache<\/p>\n<p>\u2022 Microservicios MARKETING y LOCATION, como ejemplos de uso de bases de datos No-SQL (MongoDB \/ CosmosDB).<\/p>\n<p>\u2022 Una app web MVC &#8220;watchdogs&#8221; que consulta y muestra informacion sobre el estado de salud (HealthChecks) de todos los servicios de la aplicacion.<\/p>\n<p>Todos estos microservicios estan implementados con ASP.NET Core Web API y desplegados como contenedores Docker.<\/p>\n<p>Las aplicaciones cliente se comunican con los servicios de backend mediante HTTP.<\/p>\n<p>Los microservicios tambi\u00e9n se comunican entre ellos pero solamente mediante mensajes as\u00edncronos (Eventos de integraci\u00f3n) basados en un Bus de Eventos con varias implementaciones opcionales:<\/p>\n<ul>\n<li>Contenedor RabittMQ (para entorno Dev\/Test)<\/li>\n<li>Azure Service Bus (Para entornos escalables en la nube)<\/li>\n<li>NServiceBus (Implementacion en un fork realizado por Particular Software: <a href=\"https:\/\/github.com\/Particular\/eShopOnContainers\">https:\/\/github.com\/Particular\/eShopOnContainers<\/a> )<\/li>\n<\/ul>\n<p>Ademas, la aplicaci\u00f3n dispone de tres apps cliente:<\/p>\n<p>\u2022 Una aplicacion cliente web tradicional creada con ASP.NET Core MVC<\/p>\n<p>\u2022 Una aplicacion cliente SPA (Single Page Application) basada en Angular y Typescript.<\/p>\n<p>\u2022 Una app movil, cross-platform para iOS, Android y Windows, basada en Xamarin.Forms.<\/p>\n<p>Puntos adicionales recientemente actualizados:<\/p>\n<ul>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Uso de\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>.NET Core 2.0<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0y\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>.NET Standard Library 2.0.<\/strong><\/span><span style=\"font-family: Times New Roman\">\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Uso de\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Entity Framework 2.0<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0con caracteristicas como\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>owned entities<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0para implementaci\u00f3n del patron\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Value Object<\/strong><\/span><span style=\"font-family: Times New Roman\">.\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Uso de ASP.NET Core 2.0\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Docker multi-arch images<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0en dockerfiles (Linux y Windows Containers)\n<\/span><\/span><\/div>\n<ul>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Soporte en los ficheros docker-compose para\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Docker<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Linux<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0y\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Windows<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0Containers\n<\/span><\/span><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-family: Times New Roman;font-size: 10pt\">Uso de <strong>Docker multi-stage builds<\/strong>, en los dockerfiles.\n<\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-family: Times New Roman;font-size: 10pt\">Codigo actualizado de logging y configuration en ASP.NET Core 2.0\n<\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Uso del nuevo\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>IHostedService<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0para la tarea de background llamada\u00a0<\/span><span style=\"font-family: Segoe UI\"><em>OrderGracePeriod<\/em><\/span><span style=\"font-family: Times New Roman\">\u00a0de la aplicaci\u00f3n.\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Actualizado\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>MVC<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0y\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>SPA-Angular<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0a las ultimas templates en\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Visual Studio 2017<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0con\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>ASP.NET Core 2.0<\/strong><\/span><span style=\"font-family: Times New Roman\">\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Migrado a\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>ASP.NET Identity 2.0<\/strong><\/span><span style=\"font-family: Times New Roman\">\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Segoe UI\">Implementacion de <strong>Idempotent commands<\/strong><\/span><span style=\"font-family: Times New Roman\">.\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Uso de\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>MediatR<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0con\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Behaviors<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0para la implementacion de <\/span><span style=\"font-family: Segoe UI\"><strong>Domain Events<\/strong> (eventos de dominio internos a un microservice)<\/span><span style=\"font-family: Times New Roman\">\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Uso opcional de\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Azure Application Insights<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0para monitorizacion de los microservices\/containers.\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Soporte de <\/span><span style=\"font-family: Segoe UI\"><strong>Kubernetes<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0en despliegues a Azure AKS (Linux containers deployment)\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Soporte de\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Service Fabric<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0en despliegues a Azure (Linux and Windows containers deployment)\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Segoe UI\"><strong>Event Bus<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0e\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Integration Events<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0soportando contenedor local de\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>RabbitMQ<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0o implementacion con\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Azure Service Bus<\/strong><\/span><span style=\"font-family: Times New Roman\">\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Segoe UI\"><strong>NServiceBus<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0y\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Sagas<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0en la version &#8220;forked&#8221;:\u00a0<a href=\"https:\/\/github.com\/Particular\/eShopOnContainers\"><span style=\"color: #969696\">Forked version of eShopOnContainers for NServiceBus<\/span><\/a>.\n<\/span><\/span><\/div>\n<ul>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Times New Roman\">Muy interesante la informacion de eventos de integracion mostrada por\u00a0<\/span><span style=\"font-family: Segoe UI\"><strong>Particular ServiceInsight<\/strong><\/span><span style=\"font-family: Times New Roman\">\u00a0basada en info de ejecucion.\n<\/span><\/span><\/div>\n<\/li>\n<li>\n<div style=\"background: white\"><span style=\"color: #454545;font-family: Times New Roman;font-size: 10pt\">Gracias a <a href=\"https:\/\/particular.net\/\"><span style=\"color: #969696\">Particular Software<\/span><\/a>\u00a0por esta implementaci\u00f3n adicional (forked)\n<\/span><\/div>\n<p style=\"background: white\">\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Segoe UI\">Para una lista m\u00e1s detallada de las implementaciones, v\u00e9ase el <em>eShopOnContainers<\/em>\n<a href=\"https:\/\/github.com\/dotnet-architecture\/eShopOnContainers\/wiki\/01.-Roadmap-and-Milestones-for-future-releases\"><\/a><\/span><span style=\"color: #969696\"><span style=\"font-family: Times New Roman\">Roadmap and features Wiki post<\/span><span style=\"color: #454545;font-family: Segoe UI\">.\n<\/span><\/span><\/span><\/p>\n<p>&#8212;-<\/p>\n<h2>Libro relacionado: &#8220;Modernizar aplicaciones .NET Framework existentes con Contenedores Windows y Azure&#8221;<\/h2>\n<p><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">Tambi\u00e9n hace poco hemos traducido este otro libro relacionado.\n<\/span><\/p>\n<p><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">En este caso no se trata de arquitecturas de microservicios. Tampoco de .NET Core. Al contrario, se trata simplemente de como se puede mejorar aplicaciones .NET Framework existentes, &#8220;antiguas&#8221; o &#8220;legacy&#8221;, la mayor\u00eda con despliegues monol\u00edticos o 3-Tier, e implementadas, por ejemplo, con .NET Framework y ASP.NET WebForms, MVC o WCF y como contenerizarlas con WINDOWS CONTAINERS para mejorar los despliegues a entornos de produccion o Dev\/Test y en definitiva mejorar mucho vuestro Dev\/Test y los entornos CI\/CD eliminando los t\u00edpicos problemas tradicionales de:\n<\/span><\/p>\n<p><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">&#8220;<em>Por qu\u00e9 no funciona en producci\u00f3n? \u00a1En mi m\u00e1quina de desarrollo funciona perfectamente!<\/em>&#8221; \u2013 Eso es precisamente lo que solucionan los contenedores Docker.\n<\/span><\/p>\n<p><a href=\"https:\/\/aka.ms\/liftandshiftwithcontainersebook-es-es\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/32\/2019\/03\/020818_0012_MicrosofteB5.png\" alt=\"\" \/><\/a><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">\n<\/span><\/p>\n<p><a href=\"https:\/\/aka.ms\/liftandshiftwithcontainersebook-es-es\">https:\/\/aka.ms\/liftandshiftwithcontainersebook-es-es<\/a><\/p>\n<h2>Visita el &#8220;.NET Application Architecture Center&#8221; y obtiene m\u00e1s recursos (en ingles)<\/h2>\n<p style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Segoe UI\">En ingles hay muchos mas recursos que hemos hecho disponibles en la pagina\u00a0<a href=\"http:\/\/dot.net\/architecture\"><\/a><\/span><span style=\"color: #969696\"><span style=\"font-family: Times New Roman\">.NET Application Architecture Center page<\/span><span style=\"color: #454545;font-family: Segoe UI\">\u00a0desde donde se pueden bajar muchos otros eBooks en ingles.\n<\/span><\/span><\/span><\/p>\n<p style=\"background: white\"><img decoding=\"async\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/2018\/02\/020818_0012_MicrosofteB6.png\" alt=\"\" \/><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">\n<\/span><\/p>\n<h2>Comentarios, <em>feedback<\/em> y colaboraciones de la comunidad<\/h2>\n<p style=\"background: white\"><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">Agradezco mucho vuestros comentarios para mejorar. Podeis hacerlo directamente en los comentarios de este blog post o mand\u00e1ndome un email a &#8220;cesardl at microsoft.com&#8221;.\n<\/span><\/p>\n<p style=\"background: white\"><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">Espero pueda servir de ayuda y no dud\u00e9is en contactar con nosotros.\n<\/span><\/p>\n<p style=\"background: white\"><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">Cesar de la Torre\n<\/span><\/p>\n<p style=\"background: white\"><span style=\"color: #454545;font-family: Segoe UI;font-size: 10pt\">.NET\u00a0Product Group\n<\/span><\/p>\n<p style=\"background: white\"><span style=\"color: #454545;font-size: 10pt\"><span style=\"font-family: Segoe UI\">Twitter:\u00a0<a href=\"https:\/\/twitter.com\/cesardelatorre\"><\/a><\/span><span style=\"color: #969696\"><span style=\"font-family: Times New Roman\">@cesardelatorre<\/span><span style=\"color: #454545;font-family: Segoe UI\">\n<\/span><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las arquitecturas basadas en Microservicios est\u00e1n emergiendo actualmente como opciones apropiadas para aplicaciones distribuidas de misi\u00f3n cr\u00edtica. En una arquitectura basada en microservicios, la aplicaci\u00f3n se construye basada en una colecci\u00f3n de servicios que deben ser desarrollados, probados, versionados y desplegados en producci\u00f3n, de forma independiente. En paralelo, las empresas actualmente est\u00e1n descubriendo como con [&hellip;]<\/p>\n","protected":false},"author":362,"featured_media":12524,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[8,21,38,43,58,63,86],"class_list":["post-8925","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cesardelatorre","tag-net-core","tag-asp-net-core","tag-containers","tag-docker","tag-kubernetes","tag-microservices","tag-service-fabric"],"acf":[],"blog_post_summary":"<p>Las arquitecturas basadas en Microservicios est\u00e1n emergiendo actualmente como opciones apropiadas para aplicaciones distribuidas de misi\u00f3n cr\u00edtica. En una arquitectura basada en microservicios, la aplicaci\u00f3n se construye basada en una colecci\u00f3n de servicios que deben ser desarrollados, probados, versionados y desplegados en producci\u00f3n, de forma independiente. En paralelo, las empresas actualmente est\u00e1n descubriendo como con [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts\/8925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/users\/362"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/comments?post=8925"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/posts\/8925\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/media\/12524"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/media?parent=8925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/categories?post=8925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cesardelatorre\/wp-json\/wp\/v2\/tags?post=8925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}