Archivo de Noviembre de 2017 El concepto de las Grandes Bases de Datos y Arquitecturas Monolíticas, es ya un término antiguo, casposo, desfasado. Obvio. Llega un punto en el que dejan de ser escalables, la contención y los bloqueos en entornos de alta concurrencia y grandes tamaños superan las ventajas del hardware más potente y moderno. Divide y vencerás. Particionar la Base de Datos se queda corto, eso era antes. Necesitamos dar un pasito más. Aquí, una Arquitectura basada en Microservicios y un Particionamiento Horizontal entre múltiples Instancias de Base de Datos (Sharding), es la solución que elevará la escalabilidad de nuestra aplicación hasta el infinito y más allá. En la Nube, y fuera de ella. Las Aplicaciones Web están formadas por Páginas Web y otros elementos de carácter dinámico, esto es, que se generan o renderizan en tiempo de ejecución. Un Servidor Web recibe una petición HTTP, tras la cual realiza un trabajo y devuelve un resultado, habitualmente una Página Web que ha sido generada al vuelo, en muchas ocasiones con un contenido sólo y exclusivamente para ti. Pero no todos los contenidos que se sirven son así. Muchos ficheros auxiliares (hojas de estilo CSS, ficheros JavaScript, HTML estático, etc.) son contenidos puramente estáticos, igual que otros como imágenes y documentos para descarga, que se sirven sin ninguna transformación, y por tanto, son susceptibles de separarlos, para dejar que nuestro Servidor Web se dedique a generar y servir los contenidos dinámicos, sin desperdiciar recursos en unos contenidos estáticos que pueden ser servidos desde otra ubicación. En ocasiones, las Aplicaciones Web necesitan acceder a recursos externos (ej: contenidos multimedia, descargar o subir ficheros grandes, etc), de forma segura y autenticada, con el correspondiente consumo de recursos que esto implica para la Aplicación (procesador, memoria y ancho de banda). En el patrón Valet Key, la Aplicación concede una Clave o Token al cliente/usuario para que acceda directamente al contenido solicitado (descargándose de esta tarea, y facilitando así la escalabilidad), habitualmente con un carácter temporal, y unos permisos delimitados sobre un recurso concreto (ej: RO sobre un fichero en particular). Uno de los Patrones de Diseño más importantes para el desarrollo de Aplicaciones Web para la Nube (como sería el caso de Microsoft Azure) y que aplica también en el caso de las Aplicaciones Web On-Premise, es el Patrón de Diseño sin Estado (Stateless Design Pattern), que sugiere distribuir la carga de trabajo en dos Capas (UI Layer y Service Layer), cada una de las cuales puede ser ofrecida por un conjunto de Servidores Web independiente, y almacenando la información de Sesión en una ubicación externa (ej: Servidor de Estado, base de datos, etc.). Así, podremos escalar horizontalmente (hacia arriba y hacia abajo) la Granja de Servidores Web sin impactar en la Experiencia de Usuario, para satisfacer en todo momento las necesidades de nuestro servicio Microsoft tiene disponibles varios cursos gratuitos sobre Microsoft Azure en las plataformas EDX y OpenEDX.microsoft.con, que resultan un complemento ideal a los existentes cursos de Azure en Microsoft Virtual Academy (MVA), al tratarse un cursos más completos, en los que además de videos, tendremos laboratorios y exámenes que superar para conseguir su finalización con éxito. En muchas situaciones necesitamos apoyarnos en un gráfico, como suele ser el caso de tener que exponer el Diseño o Arquitectura de una Solución, para lo cual, al final acabaremos trabajándolo (muy probablemente) con nuestros amigos Visio y PowerPoint. En este caso, que será el más habitual, podemos hacernos la vida un poco más fácil, descargándonos algunos recursos gráficos o ejemplos que nos eviten empezar desde cero, para conseguir unos gráficos profesionales con un esfuerzo razonable. Para todos aquellos que quieran iniciarse en Microsoft Azure, o que estén preparándose para las certificaciones Cloud de Microsoft (exámenes 70-533, 70-534, y 70-535), en Microsoft Virtual Academy (MVA) podemos encontrar varios cursos gratuitos en formato video impartidos por el MVP Corey Hynes, que representa una acción formativa de aproximadamente 15h, para conseguir unas buenas pinceladas de la actual oferta Cloud de Microsoft con sus servicios de Microsoft Azure. Muy recomendable. |