Categories
54cuatro

Ejecutar las aplicaciones de negocio de manera más eficiente con SQL Server en Azure

Azure es una nube pública compuesta por más de 100 centros de datos interconectados en todo el mundo. Cada centro de datos ejecuta miles de servidores para procesamiento y almacenamiento administrados por #Microsoft. Las pequeñas y medianas empresas pueden trasladar las cargas de trabajo del servidor a Azure y beneficiarse de un mayor ahorro de costes, innovación y seguridad.

Instancia administrada de Azure SQL Database

El mejor destino para cargas de trabajo SQL

Beneficios de mover sus bases SQL a Azure

  • ROI inmejorable: ejecute cualquier parte de su negocio en la nube de manera más rentable que nunca: la instancia administrada de Azure SQL Database tiene el mejor ROI para SQL en la nube con un #ROI anticipado del 212% y un período de recuperación de 6 meses.
  • Seguridad y cumplimiento inigualables: con características de seguridad avanzadas y más de 90 certificaciones de cumplimiento, más que cualquier otra nube pública, Azure ayuda a proteger sus datos.
  • Modernización flexible: agregue innovación en la nube a su propio ritmo, ejecutando cargas de trabajo de SQL Server en las instalaciones y en la nube.
  • Innovación incomparable: elimine la administración y libere su tiempo para innovar con Azure SQL Database, un servicio de base de datos completamente administrado que nunca necesita ser parcheado o actualizado.

Es important mencionar que la plataforma de SQL en Azure, usa características familiares de #SQL Server. #Azure SQL Database y SQL Server se basan en el mismo código, por lo que su aplicación funciona de la misma manera, algo diferencial respecto a otros cloud vendors. Ademas puede mover las aplicaciones basadas en SQL Server a la nube con pocos o ningún cambio, y aprovechando ademas la integración con Azure Active Directory entre otros servicios de Azure que pueden funcionar con sus aplicaciones, redes y seguridad locales.

Beneficios económicos

Utilice los precios de pago por uso para pagar SQL en Azure mensualmente, sin gastos de capital iniciales. O con una licencia de suscripción de SQL Server, obtiene derechos para ejecutar cualquier versión de SQL Server local o en Azure.

Ademas…

Si compromete una suscripción de 1 o 3 años puede obtener más descuentos y costos predecibles que son fácilmente manejables desde las herramientas de administración de costos de Azure que permiten rastrear fácilmente las recomendaciones de uso y ahorro de costo.

Queres conocer mas? Escribinos para comenzar un inventario de sus cargas de trabajo y determinar el tamaño adecuado de Azure SQL Database o SQL Server en máquinas virtuales.


[popup_anything id=”2076″]

Categories
54cuatro

Patrones de Arquitectura para Microservicios

Acerca de los microservicios

Los #microservicios, son un estilo arquitectónico que estructura una aplicación como una colección de servicios. La arquitectura de microservicios permite la entrega rápida, frecuente y confiable de aplicaciones grandes y complejas.

Al trabajar con microservicios es común que las transacciones tarden mucho en ejecutarse debido a una gran distribución de aplicaciones como bases de datos y servicios que hacen más complejo mantener la consistencia de los datos (ACID). Recordemos que en un entorno de base de datos, ACID es un estándar de las base relacionales, que cumple estos requisitos: Atomicity — Atomicidad: Se ejecutan todas las instrucciones o ninguna, Consistency — Consistencia: Asegura que el estado final sea un estado válido y consistente. Isolation — Aislamiento: Sólo se puede acceder por un agente a la vez, a la información a ser modificada. Durability — Durabilidad: La información modificada tiene que quedar persistida en el repositorio.

Las transacciones locales de ACID tampoco ayudarán si la comunicación ocurre entre servicios separados con múltiples bases de datos.

Patrón de diseño SAGA

SAGA es un modelo de arquitectura publicado originalmente por el departamento de informática de la universidad de Princeton en 1987. Pueden descargar el paper original aquí.

De acuerdo a la descripción del modelo, SAGA es una secuencia de transacciones locales donde cada transacción actualiza los datos dentro de un solo servicio.

Hay un par de formas diferentes de implementar una transacción de saga, pero las dos más populares son:

  • Eventos / coreografía: cuando no hay coordinación central, cada servicio produce y escucha los eventos de otro servicio y decide si se debe tomar una acción o no.
  • Comando / Orquestación: cuando un servicio coordinador es responsable de centralizar la toma de decisiones y la secuencia de la lógica de negocios de la saga.

Vamos a usar estas imágenes de https://microservices.io para graficar cada modelo y que se entienda como funcionan:

Modelo EVENTOS
Modelo ORQUESTRADO

Ejemplo de una plataforma de stream de datos con Apache #Nifi

Beneficios de usar SAGA como patrón de arquitectura

Los eventos / coreografía es una forma natural de implementar el patrón de Saga, es simple, no requiere mucho esfuerzo para construir. Es un patrón muy atractivo para casos donde la transacción de su aplicación implica de 2 a 4 pasos. Este enfoque puede volverse confuso rápidamente si sigue agregando pasos adicionales en su transacción, ya que es difícil rastrear qué servicios escuchan qué eventos. Ademas las pruebas serían difíciles de implementar usando este diseño, para simular el comportamiento de la transacción, debe tener todos los servicios corriendo.

SAGA es un modelo muy util que permite que una aplicación mantenga la consistencia de datos en múltiples servicios sin usar transacciones distribuidas.

Prueba de Concepto

En #github, #Microsoft tiene una solución que simula un escenario de transferencia de dinero, donde se transfiere una cantidad entre cuentas bancarias a través de operaciones de crédito / débito y se genera un recibo de operación para el solicitante. Es una referencia de implementación del patrón #Saga a través de un enfoque de orquestación en una arquitectura sin servidor en #Azure. La solución aprovecha Azure #Functions para la implementación de los participantes de Saga, Azure Durable Functions para la implementación del Saga orchestrator, Azure Event Hubs como plataforma de transmisión de datos y Azure Cosmos DB como servicio de base de datos.

Repo disponible en: https://github.com/Azure-Samples/saga-orchestration-serverless

Architecture Overview

[popup_anything id=”2076″]
Categories
54cuatro

Tutorial de Microsoft Azure

Este tutorial está destinado a que los principiantes aprendan todo acerca de #Azure. A través de este tutorial de Azure, comprenderás la arquitectura, varios productos de la suite Azure y conocer ventajas, migración de las instalaciones a la nube, administración y más.

Digamos que estás desarrollando una aplicación como Uber. Ya tiene esta aplicación lista en su computadora y el siguiente paso es hacer que esté disponible en Internet para que las personas puedan navegar e ir a este sitio web. ¿Cómo lo harías?

  • Primero. Tendrá que comprar un servidor, en el que cargará su aplicación, con todos los roles que se requieran (Webserver, Application Server, Database, etc) y/o comprar tantos servidores como roles requiera.
  • Segundo. Ademas debería disponibilizar entornos de desarrollo mas seguros y similares a producción que su notebook.
  • A continuación, deberá asegurarse de que su aplicación esté siempre disponible, contratando personas para administrar su servidor en que esta aplicación está alojada.
  • Y, por supuesto, las máquinas están destinadas a averiarse o quedar obsoletas; por lo tanto, deberá controlar el hardware del servidor, ya sea que esté actualizado o no, y esté listo para gastar algo de dinero si algo sale mal.
  • Finalmente, el aspecto más importante, a medida que su aplicación crezca en popularidad entre sus usuarios, sus servidores sobrecargarse con todo el tráfico. Tendrá que pensar en ampliar, manteniendo un control constante sobre el tráfico en su aplicación.

Parece factible? Bueno, lo anterior no solo requerirá mucho esfuerzo, ¡sino que también será extremadamente costoso!

Ahora, ¿te preguntas cómo resolverlo? Bueno, la respuesta es Cloud Computing.

¿Que es cloud computing?

Es básicamente el uso de servidores alquilados en Internet, en lugar de usar uno propio, se conoce como Cloud Computing.

Cloud Computing ha llevado a casi todas las nuevas empresas a cambiar a la nube; por lo tanto, no solo están ahorrando el costo inicial de iniciar un negocio con la infraestructura de TI correcta pero su aplicación ahora está siendo manejada por varios proveedores de la nube como Amazon, Microsoft, Google, etc.

El proveedor de la nube le cobrará en función de la cantidad de horas que utilizó sus servidores, puede configurar la redundancia en sus servidores lo que garantiza una alta disponibilidad de su aplicación, cualquier actualización de hardware o falla será manejada por su proveedor de nube evitando costos de mantenimiento significativos, y ademas puede configurar el autoescalado en su flota de servidores, es decir, siempre que haya un aumento en el tráfico de su aplicación, su proveedor de la nube escalará automáticamente sus servidores.

Existen 3 grandes jugadores en el mercado de nubes. #Amazon, #Microsoft y #Google. Amazon es el pionero y líder en market share con sus servicios #AWS. Microsoft tiene la mayor rentabilidad de servicios en nube por medio de #Azure. Y Google lidera el cuadrante de herramientas para trabajar con datos, ML y IA. En este tutorial vamos a trabajar con Azure.

¿Porque Azure?

Nuestra compañía tiene una orientación clara al uso de los datos para crear informacion que permita optimizar las decisiones de una empresa, mejorar los modelos operativos y redefinir las industrias, y en ese sentido, encontramos nuestra esencia muy acorde a las ideas de Satya Nadella, CEO de Microsoft y quien reconvirtió la compañía a este nuevo modelo. Azure nos asegura una gran cartera de servicios de Datos, tanto bases relacionales, NoSQL, Hadoop, como herramientas de Datalake, Machine Learning, IA e IoT.

La tecnología puede permitir que millones de personas participen en la sociedad de forma plena.

Satya Nadella.

¿Que es Azure?

Azure es una plataforma abierta y flexible que provee todos los servicios para la construcción rápida, despliegue y administración de soluciones basadas en la nube. Ofrece una amplia gama de servicios basados en uso, a través de aplicaciones, cómputo, almacenamiento y redes. Le permite construir aplicaciones usando cualquier lenguaje, herramienta o marco en un portal completamente automatizado de auto-servicio que habilita el aprovisionamiento de recursos escalables en minutos.

Microsoft define a Azure como “una creciente colección de servicios integrados en la nube, que los desarrolladores y los profesionales de TI utilizan para crear, implementar y administrar aplicaciones a través de nuestra red global de centros de datos”.

Azure tiene más de 20 categorías de servicios para ofrecer, hemos dividido los servicios de Azure en los siguientes dominios:

  • Cómputos
  • Almacenamiento
  • Base de datos
  • Seguridad
  • Administración
  • Varios

Cómputos: Son aquellos servicios referidos al despliegue de equipamiento para procesamiento, como las Virtual Machines que son equipos que llevan un sistema operativo Linux o Windows, y que permite trabajar con las mismas libertades que en un servidor físico. Dentro del servicio de Cómputos, se encuentran servicios de ejecución de tareas Batch y el Autoscaling.

Almacenamiento: Son aquellos servicios que permiten almacenar informacion, crear discos de VM, compartir filesystems, etc. Azure ofrece maquinas virtuales con distintos grados de performance para que su rendimiento sea mejor según los discos elegidos, como así también, discos mas performantes equivalen a precios mas elevados. Así también se debe considerar distintos tipos de storages para el almacenamiento de informacion de bases de datos, discos compartidos, etc.

Bases de Datos: Dentro de este titulo, vamos a englobar no solo bases de datos tradicionales como #MSSQL, #MySQL y #Postgresql, sino aquellas bases de tipo Key-Value, Documentales, de grafos, y columnares como CosmosDB, bases de cache como Redis, y los servicios de migración.

Seguridad: En la gama de servicios de seguridad, Azure posee una gran fortaleza propia del gran desarrollo de los servicios de Active Directory, que dentro del mundo cloud habilita servicios como controles de acceso de Roles, autenticacion multifactor, Single sign on, y servicios de encriptación. Por supuesto dentro de la suite de seguridad existen opciones de Firewall, WAF, protección DDoS/Threat y provisión de certificados.

Administración: Un factor muy importante de los servicios de nube, es poder gestionar distintos factores administrativos de forma simple y por medio de roles. Para ello en Azure existen distintos servicios como Portal, la consola donde se desplegan los servicios y aplicaciones; Billing API, una herramienta que permite controlar los gastos efectuados sobre la plataforma; Cost Management, que permite optimizar los costos y maximizar los beneficios de usar Azure; Resource Health, una excelente herramienta para monitorear el estado de los servicios contratados. Ademas Azure posee una calculadora muy simple e intuitiva para calcular los costos de nuevos servicios que quieran ser montados, que evitan sorpresas futuras.

Varios: Para finalizar, y que la entrada no se extienda demasiado, mencionar que solo vimos características principales porque este tutorial esta pensado para alguien sin experiencia en la plataforma; pero existe toda una gama de productos preconfigurados a través de un Marketplace, servicios de BigData y MachineLearning, integraciones DevOps, plataformas para el despliegue de aplicaciones Mobile y IoT. En entradas posteriores interiorizaremos mas sobre aplicaciones de Datos, DevOps, Containers y Serverless, mientras tanto pueden revisar las entradas de nuestro blog.

Empresas de todo el mundo están usando Azure para impulsar su infraestructura, ejecutan un servidor web / de aplicaciones para alojar sus sitios web, aplicaciones, mantener sus archivos de forma segura en la nube, usar una base de datos administrada o implementar archivos a escala global utilizando Content Delivery Network (CDN).

¿Por donde empezar?

Para una persona que quiere iniciarse en Azure, puede comenzar creando una cuenta en https://azure.microsoft.com/es-mx/free/ y familiarizando con la interfaz, ademas de analizar rutas de educación como https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/.

Ademas viendo la calculadora de costos de los servicios https://azure.microsoft.com/es-es/pricing/calculator aprender del Pago por Uso, del ahorro por reservas de instancias, pagar menos usando mas, comparativas de como ahorrar en servicios de bases de datos respecto a AWS, etc.


[popup_anything id=”2076″]