Slide 1

Slide 1 text

Modernización de Bases de Datos Open Source Modernización de Bases de Datos Open Source Nutanix - Virtual Bootcamp

Slide 2

Slide 2 text

Modernización de Bases de Datos Open Source ` whoami ` ● Fundador y CEO, OnGres ● DBA y usuario de Postgres por más de 20 años ● Centrado en la I+D en bases de datos Postgres ● Muy frecuente ponente en conferencias de Postgres y bases de datos ● Arquitecto principal de StackGres, ToroDB ● Fundador y Presidente de la Fundación PostgreSQL ● AWS Data Hero Álvaro Hernández aht.es @ahachete

Slide 3

Slide 3 text

Modernización de Bases de Datos Open Source Modernización de Bases de Datos: Postgres ¿Por qué Postgres?

Slide 4

Slide 4 text

Modernización de Bases de Datos Open Source Lo primero de todo: ¿cómo se pronuncia? ● Post como un “post en un blog” ● gre ● SQL (pronunciado en español) post-gre-ese-ku-ele

Slide 5

Slide 5 text

Modernización de Bases de Datos Open Source Lo primero de todo: ¿cómo se pronuncia? ¿Muy complicado? Simplificamos. Usa: post-GRES

Slide 6

Slide 6 text

Modernización de Bases de Datos Open Source Lo primero de todo: ¿cómo NO se pronuncia? Pero nunca... post-GRE postRE

Slide 7

Slide 7 text

Modernización de Bases de Datos Open Source Popularidad ● Elegida base de datos del año 2017, 2018 y 2020:

Slide 8

Slide 8 text

Modernización de Bases de Datos Open Source Popularidad ● La segunda base de datos más deseada después de Redis (fuente: StackOverflow 2021 Survey). ● Fuente: DataDog Container Report: ○ La tercera imagen de contenedor más popular (sólo por detrás de NGINX y Redis). ○ La segunda imagen más usada en Kubernetes Stateful Sets. ¿Es la popularidad una razón de peso?

Slide 9

Slide 9 text

Modernización de Bases de Datos Open Source Reputación ● Postgres tiene una muy alta consideración en la comunidad técnica. Casi nadie critica negativamente a Postgres. Casi todo el mundo alaba: ○ Su robustez ○ Cumplimiento del estándar SQL ○ Gran cantidad de funcionalidades ○ Calendario anual y conservador de adición de nuevas funcionalidades.

Slide 10

Slide 10 text

Modernización de Bases de Datos Open Source Licencia ● Licencia software libre muy liberal. ● No hay en esencia ninguna restricción a su uso. ● Se pueden incluso hacer forks propietarios. ● No depende de ninguna empresa principal. Es una comunidad puramente distribuida, de forma similar a Linux.

Slide 11

Slide 11 text

Modernización de Bases de Datos Open Source Completísima documentación ● Casi 3.000 páginas de manual:

Slide 12

Slide 12 text

Modernización de Bases de Datos Open Source Extensiones: ¡mejora y transforma Postgres! PostGIS: añade las capacidades GIS más avanzadas CitusData: sharding, y consultas distribuidas pg_auto_failover: alta disponibilidad, como extensión Timescale: añade funcionalidad de time-series (IoT) ZomboDB: un índice que es un ElasticSearch remoto

Slide 13

Slide 13 text

Modernización de Bases de Datos Open Source Funcionalidad muy avanzada ● DDL transaccional. ● Variedad de índices (funcionales, parciales, hash, GIN, GIST, BRIN). ¡Incluso puedes crear tu propio tipo de índice! ● Soporte muy avanzado de JSON. ● SQL muy avanzado y completo (ver modern-sql.com). ● No uno, sino muchos lenguajes para procedimientos almacenados: plpgsql, Python, Perl, Java, JavaScript, R...

Slide 14

Slide 14 text

Modernización de Bases de Datos Open Source FDWs: Foreign Data Wrappers ● Implementación del estándar SQL/MED. ● Permite acceder a fuentes de datos externas como si fueran tablas “virtuales” en Postgres. ● API que permite fuentes externas muy ricas, incluyendo: ○ Otras bases de datos relacionales (Oracle, SQL Server...) ○ Bases de datos no relacionales (MongoDB, HBase, Neo4j…) ○ Ficheros (CSV, JSON, XML, ZIP, Parquet) ○ ¡Muchos otros, web, APIs…!

Slide 15

Slide 15 text

Modernización de Bases de Datos Open Source ¡Babelfish! ● Una capa de compatibilidad con SQL Server sobre Postgres. ● Implementa tanto T-SQL como el protocolo TDS. ● Permite migrar aplicaciones de SQL Server con mucho menor esfuerzo (teóricamente y en algún momento: 0). ● Más información: ○ https://babelfishpg.org ○ https://stackgres.io/blog/easily-running-babelfish-for-postgresql-o n-kubernetes/

Slide 16

Slide 16 text

Modernización de Bases de Datos Open Source Anatomía de una Migración

Slide 17

Slide 17 text

Modernización de Bases de Datos Open Source Por qué migrar a Postgres ● Coste, coste, coste. ● Términos de licencia (“los hombres de negro”). ● Evitar guardar datos en bases de datos propietarias. ● Oracle, DB2, …, no disponibles en muchos entornos gestionados. ● Postgres es la base de datos open source destino natural de estas migraciones.

Slide 18

Slide 18 text

Modernización de Bases de Datos Open Source Análisis de viabilidad Proyecto previo a la migración que permite obtener: ● Documentación del entorno. ● Objetivos de servicio de la compañía (SLOs). ● Planificación de la capacidad. ● Plan de proyecto. ● Estimación de presupuesto. ● Barreras infranqueables para la migración.

Slide 19

Slide 19 text

Modernización de Bases de Datos Open Source Barreras infranqueables para la migración ● TDE (cifrado transparente de datos). ● Aplicaciones que deben ser modificadas, para las que no hay código fuente o éste no puede ser modificado. Lo que NO son barreras (aunque pueda parecerlo): ● RAC ● Exadata

Slide 20

Slide 20 text

Modernización de Bases de Datos Open Source Migración de datos: con caída o instantánea ● La migración con caída (ventana de mantenimiento) implica detención en la provisión del servicio. ● La migración instantánea (“online”) tiene una complejidad mucho mayor, y puede suponer coste adicional (software de CDC). ● Realmente depende en los requisitos del negocio.

Slide 21

Slide 21 text

Modernización de Bases de Datos Open Source Migración de procedimientos almacenados ● Es mayoritariamente un proceso manual. ● Require desarrollar primeramente un entorno de pruebas, para validar todo el código existente. ● Normalmente domina el coste de un proyecto de migración.

Slide 22

Slide 22 text

Modernización de Bases de Datos Open Source Fases de la migración 1. Análisis de viabilidad 2. Migración del DDL 3. Despliegue del entorno de pruebas de Postgres 4. Migración inicial de datos 5. Validación de la aplicación (proceso iterativo) 6. Despliegue del entorno de producción 7. Pruebas de migración, del mecanismo de “marcha atrás” y de la migración en producción. 8. Migración en producción.

Slide 23

Slide 23 text

Modernización de Bases de Datos Open Source Ejemplo de migración: BlackBerry BBM ● Fue el sucesor de la plataforma de mensajería de BlackBerry ● Más de 150 millones de usuarios ● Base de datos Oracle multi-TB con la autenticación y autorización de todos los usuarios.

Slide 24

Slide 24 text

Modernización de Bases de Datos Open Source Requisitos de la migración de BlackBerry ● Tiempo mínimo de parada. ● Sin pérdida de datos. Todos los datos debían ser verificados tras la migración. ● Cruzando todo el pacífico (200-250ms de latencia). ● Migración 100% automatizada (IaC). La migración se ejecutó exitosamente, con un tiempo de parada que resultó inferior a los 5 minutos.

Slide 25

Slide 25 text

Modernización de Bases de Datos Open Source ¿Preguntas?