DBaaS con EDB Ark

Por Jaime Soler.

Durante los últimos tiempos, existe una tendencia a disponer servicios sobre la nube y las bases de datos se suman a esta tendencia.

Las empresas requieren de mayor de agilidad y velocidad al desplegar entornos de bases de datos relacionales.

Adaptación a los ciclos ágiles de desarrollo, prueba y despliegue. Una rápida creación y borrado de base de datos Postgres que soporte el desarrollo, test y posterior despliegue de aplicaciones sobre la base de datos o cluster de bases de datos, todo ello, mucho más rápido que un provisionamiento físico.

La portabilidad de la carga de trabajo. La misma base de datos Postgres ejecutándose en un centro de datos también puede ejecutarse en cluster en la nube con escalabilidad y alta disponibilidad.

EDB Ark nace de la mano del fabricante de software Enterprisedb y complementa su solución de servicios de bases de datos Postgresql y EDB Postgres Advanced Server. EDB Ark nos brinda la posibilidad de ofrecer servicios de base de datos en la nube, pudiendo para ello, desplegar bases de datos PostgreSQL tanto en Amazon Web Services como OpenStack.

Entre las funcionalidades que incluye:

  • Escalado vertical y horizontal de recursos. EDB Ark automáticamente escala verticalmente la capacidad de nuestro almacenamiento. Y es ofrece con un botón el escalado de vertical de la máquina virtual cuando nuestra carga de trabajo lo requiera.
  • Gestor de conexiones automático y balanceo de carga. EDB Ark mantiene los nodos del cluster de base de datos, escala horizontalmente de manera automática las réplicas basadas en el incremento de la demanda de usuario. El gestor de conexiones incrementa el rendimiento de las lecturas en la base de datos, distribuyéndolas entre los miembros del cluster.
  • Self-Healing Failover. EDB Ark automáticamente reemplaza nodos de base de datos caídos, manteniendo la continuidad y rendimiento del cluster. Los usuarios pueden elegir entre cambiar el nodo maestro con otro maestro nuevo o usando una replica que promueva a maestro.
  • Backup online automático. EDB Ark usa una política de retención de backups definida por el usuario para proteger los datos de perdidas o errores.
  • Soporte de encriptación de datos. EDB Ark ofrece la encriptación de los datos, activada de una manera fácil y transparente para los clientes que se conectan al cluster.
  • Compatibilidad con bases de datos Oracle. Usando la base de datos EDB Postgres Advanced Server desplegada desde EDB Ark en nubes públicas o privadas, tendremos una base de datos compatible con Oracle, con un importante ahorro de coste, segura y rápida para soportar aplicaciones Oracle.
  • Interfaz webEDB Ark proporciona una gestión del ciclo de vida del cluster de una manera sencilla, a golpe de clic desde nuestro navegador web.
  • Clonado de base de datos. EDB Ark también permite la creación rápida y fácil de ‘sandboxes’ de desarrollo basados en datos de producción, ahorrando tiempo en la configuración y carga del sistema.
  • Soporta una API compatible con JSON. EDB Ark ofrece sus servicios desde una api compatible con JSON.

Viendo a más detalle

Cuando creamos un nuevo cluster ( un grupo de servidores de bases de datos replicados), EDB Ark inicializa una o más instancias de Postgres (máquinas virtuales) adecuándose a nuestras especificaciones. EDB Ark use Postgres streaming replication para sincronizar las replicas del cluster, y pgpool-II para implementar el balanceo de carga y la gestión de conexiones entre las instancias activas del cluster.

La arquitectura general de EDB Ark:

Y bueno, ¿ cómo instalamos EDB Ark ?, pues fácilmente, Enterprisedb tiene preparada una imagen compatible con el servicio Glance de gestión de imágenes de Openstack y también publican la correspondiente en AWS ( disponible en https://aws.amazon.com/marketplace/pp/B06XKLT7JL?qid=1489661835942 ).

Previa la carga de la imagen en la nube que hayamos elegido, tenemos que cumplir con unos requisitos previos. Para nuestro entorno de demo, vamos a desplegar un cluster de postgresql comunidad 9.6 sobre Amazon Web Services. Así que deberemos seguir los pasos descritos en: https://www.enterprisedb.com/docs/en/2.1/ARK_Admin/EDB_Ark_Administrative_User_Guide.1.10.html#pID0E0MRB0HA , donde se crear distintos usuarios/roles y permisos asociados para que EDB Ark pueda hablar con la api de Amazon web services y crear todos los tipos de objetos necesarios para ejecutar el cluster.

Ahora pasamos a ejecutar la imagen de EDB Ark 2.1 en amazon, para ello, nos logamos en la consola de Amazon y seleccionamos del marketplace la imagen: https://aws.amazon.com/marketplace/pp/B06XKLT7JL?qid=1489661835942 . Lanzamos una instancia, para nuestra demostración, hemos optado por una t2.medium . Adicionalmente, tenemos que configurar el cortafuegos tal como indica la siguiente sección del manual: https://www.enterprisedb.com/docs/en/2.1/ARK_Admin/EDB_Ark_Administrative_User_Guide.1.12.html

Crearemos en S3 un bucket para almacenar los archivados, si vamos a lanzar clusters de base de datos que soporten PITR.

Una vez tenemos la instancia corriendo, procedemos a acceder a ésta, para configurar la instancia. Primero zona horaria y hora local. Y luego el fichero de configuración de Ark, situado en /var/ppcd/ppcd.properties donde se indican las claves e identificadores de usuario que previamente hemos creado en amazonY cuidado con incluir el bucket de s3 en la directiva wal.archive.container. Posteriormente redesplegamos la consola de EDB Ark siguiente las instrucciones dadas en: https://www.enterprisedb.com/docs/en/2.1/ARK_Admin/EDB_Ark_Administrative_User_Guide.1.12.html#pID0E0KJB0HA

Y al acceder al puerto 443 del dns público de nuestra instancia, tendremos la consola de EDB Ark en funcionamiento, tal como se muestra en la siguiente captura de pantalla

A continuación, nos registramos como usuario de la consola Ark. Pulsando sobre el botón Register y completando los datos de nuestro usuario. Después es necesaria, la vinculación de nuestro usuario en la consola de Ark, con el correspondiente role en Amazon, así tendremos permisos para crear nuevas instancias, mantenimiento de snapshot de discos ec2… y múltiples operaciones que internamente realiza Ark sobre la API de AWS ( pueden ver más detalles en https://www.enterprisedb.com/docs/en/2.1/ARK_Admin/EDB_Ark_Administrative_User_Guide.1.12.html#pID0E0GJB0HA ).

Ya estamos en disposición de hacer login en la consola de EDB ARK y el panel de control principal que nos muestra es:

Antes de lanzar nuestro primer cluster con Ark, debemos de definir qué imagen de servidor vamos a desplegar. Para ello, accedemos al menú Admin, sólo accesible para el usuario con rol de administración de la consola, y pulsando sobre la opción Add Server incluimos los siguientes datos:

En nuestro caso, hemos elegido una imagen disponible en amazon que desplegará una distribución linux centos 7 y que el usuario, centos, será usado para hacer login remoto.

Y a continuación, del listado de versiones y sabores de postgresql que Ark puede desplegar, vamos a asociar la imagen de servidor con la versión de la base de datos. Para ello, seleccionamos el id PG_96_C7 y pulsamos Edit Engine Details. Y le asociamos a la versión 9.6 de postgresql comunidad, la imagen de centos7 anteriormente creada, tal como vemos en la siguiente imagen

Una vez hemos definido imagen del servidor y versión de postgresql a usar, ya podemos lanzar nuestro primer cluster con EDB Ark. Así que volvamos a la pestaña Dashboard y pulsemos el botón Launch DB Cluster y completamos con los datos de la imagen.

Una vez lanzado, dentro de unos breves minutos tendremos disponible un cluster con dos nodos de postgresql 9.6 disponible para recibir conexiones y balanceando las consultas de lectura entre lo dos nodos.

Como vemos en la pestaña de Clusters, disponemos de dos secciones principales. El menú de acciones disponibles a realizar sobre el cluster y tres paneles, Detalles, Monitorización y Eventos. En la imagen superior, estamos viendo desplegado el panel de detalles donde se indican los datos de acceso a cada miembro del cluster, su estado general, la posibilidad de establecer los umbrales para el autoescalado y la definición de la política de backups.

Y para finalizar verificaremos que nuestro cluster está funcionando, podemos probar a conectarnos con pgAdmin. Registrando la conexión según los datos que nos da el panel de detalles.

Y vemos, como en la imagen de arriba, estamos correctamente conectados a un PostgreSQL 9.6.2, bueno en realidad, estamos conectándonos a pgpool y éste a alguno de los nodos del cluster.

En siguientes publicaciones, veremos más de las opciones que nos ofrece EDB Ark.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.