Azure: IconSet para diseñar arquitecturas en Azure y Kubernetes

Muchas veces tenemos que realizar diseños conceptuales o presentaciones para transmitir a los equipos y clientes la arquitectura de referencia que vamos a montar en Azure y Kubernetes para nuestras aplicaciones y servicios cloud.

Para ello, lo mejor es utilizar el propio conjunto de iconos y símbolos que nos ofrece Microsoft donde disponemos de una lista organizada por categorías y en formato SVG compatibles con PowerPoint, Visio y otras herramientas.

Azure Enterprise Symbol / IconSet 

azure-iconset-imagenes.png

El paquete de Azure Enterprise Symbol / IconSet los encontramos en la web de Microsoft como descarga gratuita y dentro contiene todos los recursos para representar servicios que usan Azure y tecnologías relacionadas en la nube.

El enlace para descargar es este Microsoft download y una vez descargado el archivo.zip descomprimirlo y tendréis una carpeta con todas estas categorías de iconos y símbolos.

azure-iconset-folders.jpg

Iconos de Kubernetes

Para las arquitecturas de Kubernetes también disponemos de una lista de iconos que podemos utilizar de forma gratuita.

iconset-kubernetes-imagenes

El enlace para consultar y descargar esta publicado en GitHub: https://github.com/kubernetes/community/tree/master/icons

Además tenemos a nuestra disposición una serie de diapositivas y ejemplos muy útiles en este otro enlace: Kubernetes_Icons_GSlide

Que lo disfruteis!!

Azure: Security Center te alerta de amenazas y vulnerabilidades

Azure Security Center (centro de seguridad en Azure), por resumirlo en un párrafo, es un servicio centralizado para evaluar riesgos, vulnerabilidades, seguridad en bases de datos y cuentas de almacenamiento como análisis de registros con el objetivo de detectar amenazas y responder a las mismas con mayor visibilidad y control sobre la seguridad de los recursos en Azure, infraestructuras on-premises y otros cloud mediante el uso de Microsoft Monitoring Agents.

Fundamentos Básicos

Dashboard Security Center

Como se muestra en el video anterior, disponemos de un Dashboard que informa y supervisa los distintos recursos de Azure como:

  • Máquinas virtuales
  • AppServices y Cloud Services
  • Escalado de máquinas virtuales
  • Recursos de Networking
  • SQL de Azure y Redis
  • Cuenta de Azure Storage
  • Azure Web Apps
  • Contenedores
  • Otros recursos

También se pueden supervisar los equipos on-premises, tanto equipos Windows como equipos Linux 

Regulatory compliance

Una de las ultimas opciones incluidas es Cumplimientos regulatorios, que permite mediante un dashboard simplificar el proceso y proporciona información sobre el estado de cumplimiento para un conjunto de normas y regulaciones compatibles, basadas en evaluaciones continuas de su entorno Azure.

En el panel obtenemos una vista general de las partes de cumplimiento con respecto a un conjunto de estándares compatibles, estos estándares actualmente admitidos en Azure son CIS 1.0, PCI DSS 3.2, ISO 27001 y SOC TSP.

¿Cuanto cuesta Security Center?

La pregunta más tipica que suelen consultarme. Solo hay 2 modelos de precios y podemos verlos en la web oficial de  Microsoft:

Gratis: permite ver el estado de seguridad de los recursos de Azure, la directiva de seguridad básica, las recomendaciones de seguridad y la integración con los productos y servicios de seguridad de los asociados.

Estándar:  agregan funcionalidades de detección de amenazas avanzada, como inteligencia de amenazas, análisis del comportamiento, detección de anomalías, incidentes de seguridad e informes de atribución de amenazas.

Video con demos para ver caracteristicas del plan estandar

Para conocer los precios de cada servicio dentro de Azure Security Center consultar la página de precios.

 

Link Oficial: https://azure.microsoft.com/en-us/services/security-center

Docker: ASP.NET Nerd Dinner en contenedores Docker

Continuando con Docker, hoy quiero compartir este excelente articulo que encontre buceando por la red de Elton Stoneman para dockerizar la famosa NerdDinner, donde explica de forma detallada todo el proceso.

Part1: https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container

Part2: https://blog.sixeyed.com/dockerizing-nerd-dinner-part-2-connecting-asp-net-to-sql-server

Aqui vemos la aplicación funcionando con Docker.

Agradecer al autor, el trabajo realizado y también comentaros que no dejeis de ver sus cursos: https://blog.sixeyed.com/my-pluralsight-courses porque son brutales.

Happy Docking!!

 

 

 

Docker: Dockerizando aplicaciones ASP.NET tradicionales en contenedores Windows

ACTUALIZADO JUL-2018: En este post, quiero compartir la 2º Edition de la guía realizada por Cesar de la Torre, para modernizar aplicaciones .NET mediante Docker, contenedores y llevarlas a la nube (Azure, AWS, etc) recordar que al tenerlas «dockerizadas» podemos llevar nuestro contenedor a cualquier sistema que permita desplegar contenedores Docker lo cual nos da una flexibilidad total.

guia-modernizar-con-docker.jpeg

Lo mejor de todo, como explican en la guía, es que, podemos dockerizar nuestras aplicaciones .NET con Full Framework de forma directa sin tener que redefinir arquitectura ni modificar el código fuente.

Igualmente, como siempre recomiendo, debemos revisar bien la aplicación y el contexto antes de asegurar al cliente que se puede realizar la migración a contenedores y el cloud sin problemas.

Aplicaciones ASP.NET tradicionales con Docker

También os dejo este artículo, de la revista MSDN donde explican en detalle como realizar modernización de las aplicaciones de .NET tradicionales con Docker, en mi caso, me ayuda bastante a realizar estas tareas, a pesar de que Visual Studio 2017 hace la magia, crea el DockerFile y docker-compose, pero no esta de más tener el conocimiendo y fundamentos del proceso.

Practicando con Docker y Windows Containers

Por último, compartir estos tutoriales de Docker donde practicar como instalar Docker en Windows10 o WindowsServer2016 y crear un contenedor paso a paso hasta llegar a utilizar docker-compose para definir todo nuestro proyecto en un solo punto.

  1. Link: https://github.com/docker/labs/blob/master/windows/windows-containers/README.md
  2. Link: https://github.com/docker/labs/tree/master/windows/modernize-traditional-apps
  3. Link: https://github.com/dotnet-architecture/eShopModernizing

Partiremos de ejemplos básico en GitHub para dockerizar, con material muy bien documentado para entender el proceso de principio a fin.

Hasta llegar a dockerizar las aplicaciones dentro de contenedores:

Happy Docking!!

Azure: Cuestiones clave sobre Microservicios

En el articulo anterior, hablamos sobre microservicios de forma general, aunque como bien sabéis, muchas empresas antes de evolucionar hacia una arquitectura basada en microservicios deben afrontar muchos retos complejos que no encontramos en las aplicaciones monolíticas.

A día de hoy, todos conocemos la diferencia entre un sistema monolito y microservicios.

Comparto la definición que ofrece Microsoft sobre microservicios: overview-microservices y un interesante post de Mark Russinovich: microservices-an-application-revolution-powered-by-the-cloud

Cuestiones clave sobre microservicios

Todo lo anterior es literatura muy bonita, pero como indicamos al principio hay muchos retos a resolver, el objetivo de este artículo es precisamente plantear una serie de cuestiones fundamentales para confirmar si realmente vamos a utilizar microservicios y como afrontarlos respondiendo todas estas preguntas.

Arquitectura de Referencia para Microservicios

  1. ¿Qué Modelo de Referencia vamos a utilizar?​
  2. ¿Qué Modelo de Almacenamiento vamos a utilizar?​
  3. ¿Qué Modelo de Implementación vamos a utilizar?​
  4. ¿Qué Modelo de Desarrollo vamos a utilizar?​
  5. ¿Qué Modelo de Despliegue vamos a utilizar?​

Retos a resolver

  • ¿Cómo serán configurados en cada entorno?​
  • ¿Cómo serán desplegados en cada entorno?​
  • ¿Cómo serán registrados en el sistema?​
  • ¿Cómo serán descubiertos en el sistema?​
  • ¿Cómo serán documentados en el sistema?​
  • ¿Cómo serán versionados en el sistema?​
  • ¿Cómo serán securizados?​
  • ¿Cómo serán testeados?​
  • ¿Cómo serán monitorizados?
  • ¿Cómo serán logging?
  • ¿Cómo serán depurados y trazabilidad para encontrar errores?
  • ¿Cómo escalarán al aumentar la carga?​
  • ¿Cómo manejarán fallos y resilencias?​
  • ¿Cómo operarán entre ellos y resto del sistema?​
  • ¿Usaremos contenedores para los microservicios?
  • ¿Usaremos orquestadores para los microservicios?

Todas estás cuestiones deben tener respuestas por el equipo y quedar documentadas en la arquitectura de referencia antes de empezar, si no es así, el proyecto acabará siendo un FRANKENSTEIN y estará destinado al fracaso.

¿Que problemas hay con microservicios?

Visto lo anterior, actualizo este post en 2019 y dejo un link muy popular que recomiendo leer sobre microservicios para tener una visión más detallada de los problemas que encontrareis con microservicios: https://www.dwmkerr.com/the-death-of-microservice-madness-in-2018/

Netflix are great at devops.
Netflix do microservices.
Therefore: If I do microservices, I am great at devops.

Por mi experiencia y punto de vista personal, si no existe una buena cultura DevOps en la organización donde vayamos a implantar microservicios, estos no serán efectivos.

Espero que sea de utilidad.

Azure: Arquitecturas para microservicios en .NET

Hay mucho material en Intenet sobre temas de microservicios, en este articulo nos centramos en una vision enfocada con tecnologias Microsoft .NETy las guias oficiales sobre este tema donde podemos encontrar mucha informacioón y implementaciones de referencia para saber por donde empezar a diseñar y construir de forma correcta una arquitectura de microservicios.

 

Recordemos que los microservicios son pequeños servicios (APIs) independientes que cubren una sola funcionalidad de negocio y que encajan muy bien con la metodologia DDD y contextos aislados para saber donde acotarlos.

Las guias oficiales de Microsoft recopilan toda la información:

  1. Introducción a las arquitecturas de microservicios
  2. Estilo de arquitectura de microservicios
  3. Analisis del dominio para los microservicios
  4. Diseño de una arquitectura de microservicios
  5. Patrones de diseño para microservicios
  6. Procesos CI/CD para microservicios

Arquitecturas de referencia con microservicios

La teoria y literatura sobre microservicios es muy extensa pero en el mundo real nos interesa conocer como llevarlo a la practica, para ello actualmente tenemos en el mundo Microsoft dos enfoques que comparto el enlace con las explicaciones detalladas de cada uno de ellos.

Nota: los enlaces son todos a la documentación oficial de Microsoft y la información que encontramos va cambiando con el tiempo, es bueno repasarla de vez en cuando para ver como evolucionan este tipo de arquitecturas de año en año para adaptar nuestros diseños y aplicaciones si fuera necesario.

En próximos articulos ire compartiendo más articulos y videos sobre estos servicios de Microsoft y conceptos de cluster, nodos, contenedores, servicios front, back, bbdd, seguridad, procesos CI/CD, monitorizacion,etc. que es importante conocer para implementar este tipo de arquitecturas y que funcionen bien.

Azure: Arquitecturas para aplicaciones en la nube

Microsoft ha publicado de forma totalmente gratuita una serie de guías, patrones  y conjunto de arquitecturas recomendadas para las aplicaciones en la nube.

Las podéis consultar desde aquí con un enlace a todas las arquitecturas que están disponibles en la web oficial de Microsoft.

Azure Architectures

La lista de arquitecturas recomendadas son todas en ingles:

  1. Azure Application Architecture Guide: link
  2. Arquitecturas de referencia para la nube: link
  3. Patrones de diseño para la nube: link
  4. Procedimientos recomendados para la nube: link

Azure Developers

Además tambien existe una guía para empezar como desarrolladores en Azure que os dejo aqui: azure-developers-guide

Vale la pena leerlas todas porque aportan muchos conceptos nuevos para el desarrollo de aplicaciones nuevas, migración a la nube de soluciones actuales on-premise y despliegue para puesta en marcha de aplicaciones en la nube.

Azure: API Management para gobernar todo nuestro negocio

api-azure-logo

Antes de entrar con Azure, vamos a definir de forma simple que es un API Management y que características debe tener para ofrecer toda su potencia a las organizaciones que deciden implementarlo y conocer los competidores de APIs más importantes actualmente.

Para mí, básicamente es el proceso de administrar, crear, publicar y suministrar los datos y servicios de una empresa a todo el mundo a través de un sistema integrado e independiente de nuestro backend y exponer servicios del negocio a otras aplicaciones y partners sobretodo en escenarios de movilidad y cloud de forma controlada y segura.

Las características que ofrece un API Management suelen ser:

  • Gateway de acceso a las APIs
  • Portal para Desarrolladores
  • Portal para Gestión de las APIs
  • Documentación de las APIs
  • Políticas de uso de las APIs
  • Políticas de seguridad
  • Monetización de las APIs
  • Monitorización del trafico
  • Reportes y analíticas de uso

 

Soluciones API Management

Para tener una visión global del mundo de los APIs management y los vendors disponibles, os dejo una foto real de todo el ecosistema actual con los proveedores más importantes en el mercado.

api-esquema-vendorsComo vemos en el diagrama, la oferta del mercado es bastante grande, ya que, el negocio de las APIs esta en auge y como profesionales debemos valorar que caracteristicas y funcionalidades ofrecen cada una de ellas.

 

Microsoft Azure API Management

Es la solución que ofrece Microsoft a sus clientes para crear rápidamente puertas de enlace API modernas para servicios de back-end existentes hospedados en cualquier lugar.

api-azure-diagram

En la web oficial de Microsoft Azure API Management, tenemos toda la información disponible de las caracteristicias, documentación y precios para crear en cuestion de minutos un portal para nuestras APIs.

En este video podemos ver resumido en que consiste:

 

 

Un video más detallado:

api-azure-video

Como conclusión, hoy en dia, todas las arquitecturas de software modernas y empresas en proceso de transformación digital deben tener en cuenta en su estrategia empresarial el uso API Management dentro de su organización para exponer y ofrecer todos sus servicios de negocio para partners, aplicaciones de Mobilidad, Cloud, Saas, B2B, etc.

Como instalar Mosquitto Server MQTT Broker en Windows para notificaciones push

mosquitto-server-logo

Mosquitto es un message broker open source que implementa el protocolo MQTT, originalmente diseñado por IBM para utilizarlo como mensajeria ligera, muy útil hoy en dia para usar con Arduino y dispositivos IoT como sensores, sistemas de monitorización y diagnóstico, etc. pero también lo podemos usar como servidor de notificaciones push.

Tiene clientes para los principales lenguajes actuales: client libraries y el protocolo MQTT es un OASIS standard con lo que tiene soporte y continuidad de la comunidad.

Recientemente, he tenido que valorar este broker para usarlo como sistema de notificaciones push para una aplicación en Android (sin tener que depender de los Google Service) y aunque es bastante simple instalarlo se deben tener en cuenta una serie de pasos que me gustaria compartir por si alguien tiene la necesidad de montarlo en un servidor Windows.

Después de leer varios blogs y foros, algunos confusos o complejos de entender, encontré este video donde se explica paso a paso el proceso de instalación de Mosquitto:

En mi caso, lo he instalado en un Windows Server 2008R2 y también en un Windows 10 sin problemas, eso sí, necesitamos el .NET Framework 2.0 y 3.5 porque necesita alguna dll para funcionar, sino es posible que se instale corrrectamente el servicio pero luego no funcione las publicaciones/suscripciones a los topics.

Nos leemos!!