Cloud

Instancias Administradas en Azure (Introducción)

En este artículo vamos a hablar de las instancias administradas de SQL Server en Azure, un servicio que nos permite tener una experiencia casi idéntica a la de un servidor SQL Server tradicional, pero con las ventajas de la nube. Las instancias administradas de SQL Server en Azure son una opción ideal para migrar nuestras bases de datos SQL Server existentes a Azure sin tener que modificar mucho el código ni la configuración. Además, nos ofrecen todas las ventajas de la nube como un alto nivel de rendimiento, seguridad, escalabilidad y disponibilidad.

¿Qué son las instancias administradas de SQL Server en Azure?

Las instancias administradas de SQL Server en Azure son un tipo de servicio PaaS (Platform as a Service) que nos permite crear y administrar instancias de SQL Server en la nube. Estas instancias tienen casi las mismas características y funcionalidades que un servidor SQL Server tradicional. También soportan las mismas versiones y ediciones de SQL Server, desde la 2008 hasta la 2022, y se actualizan automáticamente con los últimos parches y mejoras.

Las instancias administradas de SQL Server en Azure se diferencian de otros servicios de bases de datos SQL en Azure en que nos permiten tener un mayor control sobre la instancia, como el acceso al sistema operativo, la configuración del firewall, la administración de usuarios y roles, la auditoría y el seguimiento, etc. Además, nos permiten usar características avanzadas de SQL Server que no están disponibles en otros servicios, como el Always On Availability Groups, el Transparent Data Encryption, el Change Data Capture, el Service Broker, etc.

¿Cómo se administran?

La administración de las instancias administradas de SQL Server en Azure es muy similar a la de un servidor SQL Server tradicional. Podemos usar las mismas herramientas y métodos que estamos acostumbrados a usar, como el SQL Server Management Studio, PowerShell o T-SQL. También podemos usar los servicios integrados de Azure para facilitar algunas tareas, como el Azure Portal, el Azure Monitor o el Azure Automation. Veremos más sobre este tema en otro post.

Instancias administradas en Azure VS instancias On Premise

Las instancias On Premise son aquellas que se ejecutan en nuestros propios servidores físicos o virtuales, dentro de nuestra infraestructura local. Estas instancias tienen algunas ventajas sobre las instancias administradas en Azure, como un mayor control sobre el hardware, una menor latencia y una mayor personalización. Sin embargo, también tienen algunos inconvenientes, como un mayor coste, una mayor complejidad y una menor flexibilidad.

Las instancias administradas en Azure nos ahorran los costes y las molestias de tener que comprar, instalar y mantener nuestros propios servidores. Además, nos ofrecen una mayor escalabilidad y disponibilidad, ya que podemos aumentar o reducir los recursos según la demanda y contar con la garantía de un SLA (Service Level Agreement) del 99.99%. También nos facilitan la migración y la recuperación de nuestras bases de datos, ya que podemos usar herramientas como el Data Migration Service o el Backup and Restore.

La elección entre las instancias administradas o las instancias on premise dependerá de nuestras necesidades y preferencias. Si queremos tener una solución más económica y flexible, con todas las ventajas de la nube, las instancias administradas son la mejor opción. Si queremos tener una solución más personalizada y con menos dependencia de internet, las instancias on premise pueden ser suficientes.

Instancias administradas en Azure VS Bases de datos de Azure

El servicio de bases de datos SQL en Azure es otro tipo de servicio PaaS que nos permite crear y administrar bases de datos SQL en la nube como ya vimos en el post anterior. Sin embargo, a diferencia de las bases de datos de Azure, las instancias administradas nos ofrecen una instancia completa de SQL Server y no solo una base de datos aislada que se ejecuta en un servidor compartido con otros clientes. Esto implica que tenemos mayor control sobre la base de datos y que podemos usar algunas características de SQL Server propias de la instancia.

El servicio de bases de datos SQL en Azure tiene algunas ventajas sobre las instancias administradas, como un menor coste, una mayor elasticidad y una menor complejidad. Sin embargo, también tiene algunas limitaciones, como una menor compatibilidad con las versiones y ediciones de SQL Server, una menor capacidad para escalar verticalmente y una menor flexibilidad para migrar o restaurar bases de datos.

La elección entre las instancias administradas o el servicio de bases de datos SQL en Azure dependerá de nuestras necesidades y preferencias. Si queremos tener una experiencia similar a la de un servidor SQL Server tradicional, con todas sus características y funcionalidades, las instancias administradas son la mejor opción. Si queremos tener una solución más simple y económica, con solo lo necesario para alojar nuestras bases de datos SQL, el servicio de bases de datos SQL en Azure puede ser suficiente.

Conclusión

Las instancias administradas de SQL Server en Azure son un servicio que nos ofrece una forma fácil y rápida de migrar nuestras bases de datos SQL Server existentes a la nube, sin perder ninguna característica ni funcionalidad. Se trata de un servicio PaaS que nos brinda un alto nivel de rendimiento, seguridad, escalabilidad y disponibilidad, así como un gran control sobre la instancia. Como esto se alargaba ya demasiado, mañana hablamos de temas más técnicos de la administración de este servicio (que seguro que os interesa más), mientras tanto, podéis dejarme vuestros comentarios aquí abajo, en Twitter o por mail.

Publicado por Roberto Carrancio en Cloud, SQL Server, 1 comentario

Azure Database: SQL sin servidor

Seguimos con los artículos sobre SQL en la nube, ya hemos visto por encima todas las posibles soluciones de SQL en Cloud. Hoy quiero compartir con vosotros mi experiencia con Azure Databases, el servicio de bases de datos en la nube de Microsoft. ¿Qué ventajas tiene frente a otras opciones? ¿Cómo podemos migrar nuestras bases de datos SQL Server a Azure? ¿Qué retos y oportunidades nos ofrece este servicio? Estas son algunas de las preguntas que intentaremos responder en este artículo.

¿Qué es Azure Database?

Azure Databases es una plataforma que nos permite crear, administrar y escalar bases de datos en la nube, sin tener que preocuparnos por el hardware, el software o la infraestructura. Podemos elegir entre diferentes tipos de bases de datos, según nuestras necesidades y preferencias: SQL Database, MySQL, PostgreSQL, MariaDB, Cosmos DB, etc. Cada una de estas opciones tiene sus propias características, ventajas y desventajas, que podéis consultar en la documentación oficial de Azure.

Nosotros nos vamos a centrar en SQL Database, que es el servicio que nos permite usar SQL Server en la nube. SQL Server es uno de los sistemas de gestión de bases de datos relacionales más populares y potentes del mercado, y con Azure Databases podemos aprovechar todas sus funcionalidades y beneficios, pero con una mayor flexibilidad, escalabilidad y seguridad.

Una de las funcionalidades más interesantes que nos ofrece SQL Database en Azure es la posibilidad de usar SQL sin servidor (serverless SQL). ¿Qué significa esto? Significa que podemos crear una base de datos que solo consume recursos cuando está activa, y que se pausa automáticamente cuando no hay actividad. De esta forma, podemos ahorrar costes y optimizar el uso de los recursos. Además, podemos escalar la base de datos según la demanda, sin tener que especificar un tamaño fijo.

¿Qué beneficios tiene usar SQL sin servidor?

Algunos de los más destacados son:

  • No tenemos que comprar ni mantener servidores físicos ni licencias de software. Solo pagamos por lo que usamos, según el tiempo y el rendimiento que consuma nuestra base de datos.
  • Podemos crear y eliminar bases de datos rápidamente, sin tener que esperar a que se aprovisionen o desaprovisionen los recursos.
  • Podemos adaptar nuestra base de datos a las fluctuaciones del tráfico o la actividad, sin tener que hacer cambios en el código ni en la configuración. Azure se encarga de ajustar los recursos automáticamente según la demanda.
  • Podemos acceder a nuestra base de datos desde cualquier lugar y dispositivo, usando las herramientas y lenguajes que prefiramos. Azure nos ofrece una alta disponibilidad y redundancia, garantizando un tiempo de actividad del 99,99%.
  • Podemos proteger nuestra base de datos con las mejores prácticas de seguridad, como el cifrado de datos en reposo y en tránsito, el control de acceso basado en roles, la auditoría y el monitoreo. Además, Azure nos ofrece copias de seguridad automáticas y opciones de recuperación ante desastres.
  • Podemos integrar nuestra base de datos con otros servicios de como Azure Synapse Analytics, Azure Machine Learning o Azure Data Factory, para obtener más valor e insights de nuestros datos.

¿Cómo podemos crear una base de datos SQL sin servidor en Azure?

El proceso es muy sencillo y podéis seguir los pasos que se indican aquí. Básicamente, tenemos que:

  1. Acceder al portal de Azure e ir al servicio SQL Database.
  2. Hacer clic en Crear recurso y seleccionar Base de datos única.
  3. Rellenar los campos del formulario con los datos de nuestra base de datos: nombre, grupo de recursos, servidor, etc.
  4. En el apartado Tamaño + rendimiento, elegir la opción vCore como modelo de compra y seleccionar la casilla Habilitar SQL sin servidor.
  5. Configurar los límites mínimos y máximos de vCore y memoria para nuestra base de datos.
  6. Revisar y crear la base de datos.

Una vez creada la base de datos, podemos conectarnos a ella usando las herramientas y lenguajes que prefiramos: SSMS, Azure Data Studio, Visual Studio Code, PowerShell, etc. También podemos usar el portal de Azure para administrar y monitorear nuestra base de datos.

¿Qué necesitamos para implementar una base de datos de Azure?

Como todo cambio tecnológico, usar SQL sin servidor en Azure implica algunos desafíos y adaptaciones, pero también nos abre un mundo de posibilidades. Algunos aspectos a tener en cuenta son:

  • Debemos elegir bien el nivel de rendimiento y los límites de recursos que queremos para nuestra base de datos. Azure nos ofrece una calculadora de precios que nos ayuda a estimar el coste de nuestra base de datos según el tiempo y el rendimiento que consuma.
  • Debemos tener en cuenta que nuestra base de datos se pausará automáticamente cuando no haya actividad, lo que puede afectar al tiempo de respuesta de la primera consulta después de la reanudación. Podemos configurar el tiempo de espera antes de la pausa, que por defecto es de una hora, según nuestras preferencias.
  • Debemos aprovechar las nuevas funcionalidades y características que nos ofrece SQL sin servidor en Azure. Por ejemplo, podemos usar la inteligencia artificial para mejorar la calidad y el análisis de nuestros datos, usando servicios como Cognitive Services o Azure Machine Learning. También podemos usar la computación distribuida para procesar grandes volúmenes de datos, usando servicios como Azure Synapse Analytics o Azure Databricks.

¿Cómo podemos migrar nuestra base de datos SQL Server a Azure?

Hay varias opciones disponibles, según el tamaño y la complejidad de nuestra base de datos. Algunas de las más comunes son:

  • Usar la herramienta Data Migration Assistant (DMA) que ya hemos visto en profundidad en este post.
  • Utilizar el servicio Azure Database Migration Service (DMS), que nos permite migrar nuestra base de datos online u offline, con una mínima interrupción del servicio y una alta fiabilidad.
  • Usar el método bacpac, que consiste en exportar nuestra base de datos a un archivo .bacpac y luego importarlo a Azure mediante el portal o PowerShell.
  • Utilizar el método log shipping, que consiste en copiar los archivos .mdf y .ldf de nuestra base de datos a un blob storage en Azure y luego restaurarlos mediante T-SQL.

Conclusión

SQL sin servidor en Azure es una excelente opción para usar SQL Server en la nube, con todas las ventajas que ello implica. Nosotros hemos creado algunas bases de datos SQL sin servidor en Azure y estamos muy satisfechos con los resultados. Os animamos a que lo probéis y nos contéis vuestra experiencia. Si tenéis alguna duda o comentario, podéis escribirnos por mail o seguirnos en nuestra cuenta de Twitter. ¡Hasta la próxima!

Publicado por Roberto Carrancio en Cloud, SQL Server, 1 comentario

Data Migration Assistant: Migrar de SQL Server a Azure SQL

En el pasado post vimos las distintas soluciones de SQL en la nube. En este post vamos a hablar de la herramienta Data Migration Assistant (o DMA), una aplicación de Microsoft que nos va a permitir migrar bases de datos SQL de nuestros servidores On Premise a la nube de Azure de forma fácil y rápida. Esta herramienta es ideal para los profesionales que quieren aprovechar las ventajas de la nube, como la escalabilidad, la seguridad y el ahorro de costes, sin perder el control y el rendimiento de sus datos.

Que es Data Migration Assistant

Data Migration Assistant es una solución integrada que nos ofrece Microsoft para facilitar el proceso de migración de bases de datos SQL a Azure. Con esta herramienta, además, podemos realizar las siguientes tareas:

  • Analizar el estado y la compatibilidad de nuestras bases de datos SQL con Azure.
  • Seleccionar el servicio de Azure más adecuado para alojar nuestras bases de datos, ya sea Azure SQL Database, Azure SQL Managed Instance o Azure SQL Server en una máquina virtual.
  • Realizar la migración de los datos, los esquemas, los objetos y las configuraciones de nuestras bases de datos SQL a Azure.
  • Validar y monitorizar el resultado de la migración y resolver posibles problemas.

¿Cómo usar Data Migration Assistant?

Para usar Data Migration Assistant necesitamos tenerlo instalado en nuestro equipo local, no os preocupéis porque es una aplicación gratuita que nos permite realizar el análisis y la evaluación de nuestras bases de datos SQL. También necesitamos tener una cuenta de Azure con una suscripción activa.

El proceso de migración se realiza en cuatro pasos:

  1. Crear un proyecto de migración en el DMA, indicando el origen y el destino de los datos, el tipo de migración (esquema, datos o ambos) y el alcance del proyecto (una o varias bases de datos).
  2. Ejecutar una evaluación de las bases de datos seleccionadas, que nos mostrará un informe con los posibles problemas de compatibilidad, las recomendaciones y las acciones correctivas que debemos realizar antes de la migración.
  3. Crear o seleccionar el servicio de Azure donde queremos alojar nuestras bases de datos, configurando los parámetros necesarios como el tamaño, la ubicación, la red y la seguridad.
  4. Ejecutar la migración propiamente dicha, que se realizará en modo online u offline dependiendo del servicio de destino elegido. Durante la migración podremos ver el progreso y el estado de cada base de datos.

Al finalizar la migración podremos acceder a nuestras bases de datos SQL en Azure desde cualquier dispositivo y aplicación, con las mismas funcionalidades y herramientas que teníamos en On Premise, pero con las ventajas añadidas de la nube.

Otros usos de Data Migration Assistant

Además de para migrar hacia Azure, DMA nos permite realizar migraciones entre otros entornos incluidos de On Premise a On Premise, AWS a On Premise, incluso a servidores SQL en servidores Linux. DMA acepta como origen todas las versiones de SQL Server On Premise desde SQL 2005 hasta SQL 2022 así como AWS RDS. Como destino podremos seleccionar cualquier SQL On Premise desde SQL 2012 hasta SQL 2022 o los servicios de Azure ya mencionados.

Por si esto fuese poco, no solo migrará nuestras bases de datos sino también objetos como inicios de sesión, roles de servidor e, incluso, evaluará la viabilidad de la migración de los paquetes SSIS.

Alternativas

Si no queremos usar Data Migration Assistant para realizar la migración, existen otras alternativas como:

  • Usar el portal de Azure o PowerShell para crear y configurar manualmente los servicios de destino y copiar los datos mediante herramientas como SQL Server Management Studio (SSMS), Azure Data Studio o bcp.
  • Usar Azure Database Migration Service (DMS), que es un servicio gestionado que nos permite realizar migraciones online o offline con un mínimo tiempo de inactividad. DMS soporta más tipos de origen y destino que DMA, como Oracle, MySQL o PostgreSQL.
  • Usar otras herramientas o servicios externos que ofrezcan soluciones específicas para cada caso, como Apex, Flyway, Redgate o Attunity.

Conclusión

Data Migration Assistant es una herramienta muy útil cuando queremos llevar a cabo una migración de SQL Server a la nube o a un entorno local sin complicaciones ni riesgos. Con esta herramienta podemos realizar una migración rápida, segura y eficiente, aprovechando al máximo los recursos y servicios que nos ofrece Azure. Si os ha quedado cualquier duda o queréis contarme vuestra opinión os leo en los comentarios, en Twitter o en mi mail..

Publicado por Roberto Carrancio en Cloud, SQL Server, 2 comentarios
SQL Server en la nube

SQL Server en la nube

Hoy vamos a hablar de las soluciones SQL en la nube que ofrecen tanto Azure de Microsoft como AWS de Amazon. Entre otras cosas vamos a ver: ¿Qué ventajas tiene alojar una base de datos en la nube? ¿Qué opciones tenemos para elegir la plataforma más adecuada para nuestras necesidades? ¿Qué diferencias hay entre una base de datos solo en Azure, una instancia gestionada en Azure o AWS RDS, y una máquina virtual con una instancia instalada en Azure o en AWS? 

¿Por qué debería irme a la nube?

Lo primero que hay que tener en cuenta es que la nube nos ofrece una serie de beneficios que no podemos obtener con una base de datos local. Algunos de estos beneficios son:

  • Escalabilidad: podemos aumentar o disminuir los recursos asignados a nuestra base de datos según la demanda, sin tener que invertir en hardware adicional o realizar complejas migraciones.
  • Disponibilidad: la nube nos garantiza un alto nivel de disponibilidad y redundancia, lo que significa que nuestra base de datos estará siempre accesible y protegida ante posibles fallos o desastres.
  • Seguridad: la nube cuenta con medidas de seguridad avanzadas que protegen nuestra base de datos de ataques externos o internos, así como de pérdidas o fugas de datos.
  • Coste: la nube nos permite pagar sólo por los recursos que utilizamos, lo que, teóricamente, supone un ahorro frente al coste fijo de mantener una infraestructura propia.

Opciones SQL en la nube

Ahora bien, ¿qué plataforma elegir para alojar nuestra base de datos SQL en la nube? Tanto Azure como AWS son dos gigantes del sector que ofrecen soluciones robustas y flexibles para diferentes escenarios. Veamos algunas de las opciones que tenemos en cada una de ellas.

Primera opción: Base de datos en la nube:

La primera opción sería alojar nuestra base de datos solo en Azure, es decir, utilizar el servicio Azure SQL Database. Podríamos decir que esta es la opción de entrada a la nube de Microsoft. Este servicio nos permite crear y gestionar bases de datos relacionales en la nube, sin tener que preocuparnos por el mantenimiento o la administración del servidor. Azure SQL Database se encarga de todo: desde el aprovisionamiento hasta el backup, pasando por el parcheo, el monitoreo o el balanceo de carga. Además, Azure SQL Database nos ofrece compatibilidad con el lenguaje T-SQL y con las herramientas y aplicaciones habituales de SQL Server, lo que facilita la migración desde una base de datos local. Otra ventaja es que Azure SQL Database se integra con otros servicios de Azure, como Azure Active Directory, Azure Synapse Analytics o Azure Machine Learning.

Segunda opción: Instancia SQL en la nube:

La siguiente opción es utilizar una instancia gestionada en Azure, es decir, el servicio Azure SQL Managed Instance. Este servicio es similar al anterior, pero nos ofrece un mayor grado de control y personalización sobre nuestra base de datos. Con Azure SQL Managed Instance podemos configurar aspectos como el tamaño del almacenamiento, el número de núcleos, el nivel de aislamiento o el modelo de recuperación. Además, Azure SQL Managed Instance nos permite acceder a características propias de SQL Server, como el servicio de agente, los trabajos programados, las réplicas secundarias o el cifrado transparente de datos. Esta opción es ideal para aquellos casos en los que necesitamos una mayor compatibilidad con SQL Server o una mayor flexibilidad para adaptar nuestra base de datos a nuestros requisitos.

Si queremos usar una solución de Amazon nuestra opción será utilizar RDS, es decir, el servicio Amazon Relational Database Service. Este servicio nos permite crear y gestionar bases de datos relacionales en la nube utilizando diferentes motores, entre ellos SQL Server. Al igual que los servicios anteriores, RDS se encarga del aprovisionamiento, el backup, el parcheo y el monitoreo de nuestra base de datos. Además, RDS nos ofrece características como la replicación múltiple, el escalado automático, la restauración puntual o la migración de datos. RDS se integra con otros servicios de AWS, como Amazon S3, Amazon VPC o Amazon CloudFormation.

Tercera opción: Servidor en la nube:

Para terminar, otra opción es utilizar una máquina virtual con una instancia instalada en Azure o en AWS. Esta opción consiste en crear una máquina virtual en la nube y luego instalar y configurar manualmente una instancia de SQL Server en ella. Esta opción nos da el máximo control sobre nuestra base de datos, ya que podemos elegir el sistema operativo, el hardware y las características que queremos utilizar. Sin embargo, esta opción también implica un mayor esfuerzo y responsabilidad por nuestra parte, ya que tendremos que ocuparnos del mantenimiento y la administración tanto del servidor como de la base de datos. Esta opción es recomendable para aquellos casos en los que tenemos requisitos muy específicos o complejos que no podemos cubrir con las opciones anteriores.

¿Qué opción elegir?

Como hemos visto, tanto Azure como AWS nos ofrecen diferentes formas de alojar una base de datos SQL en la nube, cada una con sus ventajas e inconvenientes. La elección dependerá de factores como el presupuesto, el rendimiento, la compatibilidad, la seguridad o la facilidad de uso. Lo importante es analizar bien nuestras necesidades y comparar las distintas opciones para encontrar la que mejor se adapte a nuestro proyecto.

Conclusión

Espero que este artículo te haya resultado útil e interesante. Próximamente profundizaremos más en estas soluciones en la nube y herramientas específicas. 

¿Vosotros qué opináis? ¿Os convencen las soluciones en la nube? Os leo en los comentarios y en Twitter.

Publicado por Roberto Carrancio en Cloud, SQL Server, 4 comentarios