Quizás para algunos, convertirse en el administrador de la base de datos de producción fue por pura necesidad, la aplicación SaaS de tu proyecto startup, creció de manera exponencial, el negocio de tus clientes no se detiene y mientras estás en la búsqueda de un profesional especializado en la administración y en el almacenamiento de información, no queda de otra cosa que ponerte el sombrero de DBA (Database Administrator), por supuesto, si tienes el conocimiento técnico para abordar la situación.

 

El rol del administrador de base de datos, es un rol que demanda mucha preparación, experiencia y especialización técnica. En este post, comparto algunas buenas prácticas que aprendí no solo por ensayo y error, sino de lecciones aprendidas de colegas con experiencia en DBA que conocí en el camino. No me enfocaré a ninguna tecnología de base de datos en particular (Oracle, SQL Server, MySQL, Cassandra, MongoDB, u otro), sino a la planificación y a la gestión que debemos emplear para administrar de una manera eficiente nuestras bases de datos.

Como toda buena práctica, no necesariamente aplique a tu realidad, sino debes emplearlo como base, analizarlo y tomar la mejor decisión. No todas las base de datos son iguales, algunas requieren a una persona y otras requieren a un equipo de personas para administrarlas. Precisamente este es un nuestro punto de partida, conocer nuestra realidad,  para ello, es importante analizar y responder las siguientes preguntas:

  • ¿Cuántas base de datos están bajo tu dominio?
  • ¿Qué software de gestión de base de datos utilizan para almacenar y manipular la información?
  • ¿Cuál es la capacidad actual de almacenamiento que ocupan tus base de datos?
  • ¿Qué modelo de arquitectura utilizan tu base de datos? ¿Aplican un modelo master-slave, replicación, sharding?
  • ¿Conoces el modelo de datos de tus bases de datos?
  • ¿Almacenan data estructura y no estructurada?
  • ¿Conoces en que base de datos se almacena data sensible?
  • ¿Conoces que base de datos almacenan información encriptada?
  • ¿El software de base de datos genera y almacena logs sobre la manipulación y acceso a las bases de datos?, ¿Donde las almacena? ¿Cómo las almacena? ¿Cuándo las almacena?
  • ¿Aplican políticas de depuración de información? ¿En qué frecuencia? ¿Cuál es el umbral mínimo de historia que almacenan las bases de datos transaccionales?
  • ¿Tienen base de datos que se ejecutan en memoria?
  • ¿Cuentan con repositorios de información histórica para reportes analíticos? ¿Cómo, cuándo y dónde se alimentan estos repositorios?
  • ¿Cuál es el volumen de transacciones diarias que recibe tu base de datos?
  • ¿Cual es la entidad, objeto, archivo o tabla (lo que fuera según el motor de base de datos que utilicen) que crece más en comparación a otras?
  • ¿Cuántas aplicaciones y/o clientes se conectan a las bases de datos?
  • ¿Cuál es el volumen de consultas (lecturas) que reciben las bases de datos?
  • ¿Cuales son las consultas de información más demandadas de tu base de datos?
  • ¿Cuál es la hora pico que demanda un mayor uso de recursos del servidor de base de datos?
  • ¿Sobre que software base (SO) funciona el software que administra tu base de datos?
  • ¿Qué tecnología y características tiene el o los servidores donde se ejecuta el software de base de datos?
  • ¿Cuál es la capacidad y tecnología de almacenamiento del servidor storage donde se almacena la información?
  • ¿Cuál es la estrategia de backup que utilizan para administrar las copias de seguridad? ¿En qué frecuencia? ¿dónde las almacenan?
  • ¿Cuál es el plan de contingencia que utilizan para garantizar la continuidad del servicio?
  • ¿Cuál es el indicador de I/O en MB por minuto que utilizan las base de datos?
  • ¿Cual es el indicador de transferencia de data (en MB) de tu servidor de base de datos?

De seguro habrán muchas otras preguntas que estoy obviando, pero es importante conocer las respuestas para tener claridad a lo que nos enfrentamos.

La responsabilidad y alcance de las funciones de un administrador de base de datos, es realmente importante y de alta demanda para una organización.

Y entonces, ¿Cómo asegurarnos que la operación de nuestras bases de datos funcionen sin problemas en producción? A continuación, algunos consejos.

1. Delegar tareas y definir Focal Points en el equipo

Es importante definir el rol y alcance de los miembros del equipo. La clave está en la delegación, para ello, debe definir quienes serán los Focal Points para saber:

  • Quienes serán los responsables de cada elemento de la administración de las bases de datos.
  • Quienes serán los responsables de los protocolos de contingencia y continuidad del servicio.
  • Quienes serán los responsables de la malla de procesos programados en los servidores de base de datos.
  • Quienes serán los responsables del monitoreo y alertas definidas para cada base de datos.
  • Quienes serán los responsables de la coordinación con los proveedores o equipo externo a cargo de la infraestructura de los servidores.
  • Quienes serán los responsables de los informes de auditoria.
  • Quienes conforman la matriz de escalamiento para la toma de decisiones.

Esto significa que debes contar con un equipo con diferentes perfiles, que tengan habilidades y experiencia específica con los distintos software de gestión de base de datos que estén utilizando; otros perfiles que posean un mayor conocimiento en la construcción de objetos de base de datos, manipulación de información y generación de reportes con SQL; otros perfiles orientados a la auditoria de base de datos; personas con experiencia en la configuración de escalamiento y optimización de base de datos o tener personas con experiencia en el monitoreo de servidores u otros tipos de características.

Como DBA tienes el gran reto de dominar todas las aristas que conlleva asegurar la disponibilidad y confiabilidad del servicio de administración de base de datos de la organización, por lo tanto debes contar con una planificación a corto, mediano y largo plazo, además de un plan de comunicación, para distribuir el trabajo de una manera sostenible y eficiente.

La clave es delegar tareas a las personas correctas. Como DBA es probable que recibas cientos de solicitudes por día. Por lo tanto, debes asegurarte en tener múltiples niveles de atención para gestionar la afluencia de solicitudes, de esta manera puedes contribuir a una mejor gestión general dentro del equipo.

Finalmente, debes recordar que como DBA puedes delegar tareas a tu equipo, pero la responsabilidad de todo lo que pueda ocurrir no se delega, sino se asume.

2. El origen de los datos

Hay organizaciones que crecen rápidamente, las necesidades del negocio obligan a toda la compañía a responder a la competencia en un menor tiempo, el time to market importa y mucho, y  quizás son estas las situaciones que originan que los cambios en la plataforma tecnológica, que a su vez da soporte a los procesos del negocio, empiecen a atenderse de una manera desordenada, ocasionando que existan muchas fuentes de origen de datos de donde se genera la información y que finalmente llega a nuestros servidores de bases de datos.

Este es uno de los grandes problemas en la administración de la base de datos, es decir, ingresa demasiados datos provenientes de muchas fuentes diferentes y hasta algunas veces, no sabes de donde (imagina que eres un nuevo DBA en una organización que no conoces a detalle).

Por supuesto, habrá documentación que leer (si es que las hay), es más podemos conocer las cuentas de usuario que utilizan estas aplicaciones que envían la información, pero te va tomar un buen tiempo en analizar y poner todo en orden.

En lugar de tener una gran cantidad de endpoints de origen que envían información a la base de datos, asegúrese de contar con un proceso integral para la administración y el seguimiento de los datos de origen.

3. Calidad de la data

Como administradores de base de datos debemos asegurar la consistencia e integridad de la data almacenada.

Tiene sentido depurar, limpiar, normalizar y corregir los datos que vas a tener en los sistemas de la compañía. A veces se comete el error de agregar demasiados datos aleatorios, y luego nos sentimos abrumados con el trabajo de administrarlo. Lo mismo sucede cuando las aplicaciones tienen la funcionalidad de eliminar información de manera lógica (no física), esta data eliminada sigue estando almacenada en las tablas principales de la base de datos, cuando debería estar en otra base de datos como historial (según sus políticas de eliminación de data). Una solución es establecer un protocolo estricto para que la información solo se agreguen sobre una base de datos necesaria.

4. Administración eficiente de notificaciones y alertas

La automatización de tareas que se programan en los servidores de nuestros sistemas ha cambiado la forma de trabajo. Estas tareas que se ejecutan de manera automática puede que ayude para bien o para mal. La información que se almacena en nuestras bases de datos ya no solo se origina por una interacción entre un usuario y un sistema de información, sino que existen muchas tareas automáticas que generan un alto volumen de transacciones que finalmente impactan en nuestras base de datos. Es importante tener un control sobre estas tareas automáticas, los permisos de acceso y demanda de recursos que requieran.

Un aporte valioso de la automatización de tareas, es que también podemos emplearlas de nuestro lado, por ejemplo es importante tener tareas automáticas que monitoreen el estado de nuestras base de datos y enviar alertas vía email o vía SMS cuando se detecte que el uso de algún recurso de un servidor supere el indicador máximo permitido para notificar a las personas responsables a tomar una acción preventiva o correctiva. Pero volvemos a lo mismo, las alertas y notificaciones que generen nuestras base de datos, pueden ayudarnos o perjudicarnos.

5. Simplificar el procedimiento de backup y restauración

Su misión es garantizar la continuidad del servicio de acceso a los datos, resguardando la información y restaurándola en el momento que se requiera en el menor tiempo posible, ¿Cómo afrontamos este punto crítico? 

Tómese su tiempo en investigar y elaborar una estrategia y una planificación de actividades con responsables para administrar las copias de seguridad y procedimiento de restauración y contingencia, ya que lo necesitarás en algún momento.

Debes asegurarte de que las copias de seguridad de los datos se realicen en un plazo razonable y en un momento que no impacte la operativa del negocio; además, que se cumpla la planificación de estas operaciones de copias de seguridad y restauración. Puedes planificar ensayos o simulacros (en un entorno no productivo) que te permita preparar a tu equipo ante una situación de emergencia. No querrá que su equipo vaya a realizar la contingencia y restauración de la base de datos al azar. Todo debe ser estructurado y organizado.

6. Plan de seguridad de su base de datos

Su misión es evitar que su sistema de base de datos sea vulnerable, permitiendo que la información sea accedida, manipulada, transferida o eliminada por elementos externos a la organización.

Este es un gran desafío que enfrentan los administradores de base de datos. Tómese su tiempo para investigar y elaborar un plan inicial de seguridad para su base de datos. Según sea la organización a la que pertenezca, habrán leyes o normas regulatorias que debe tener en cuenta, aparte de las propias normas internas sobre seguridad de la información que debe tener su empresa.

Hoy en día, existe mucha información sensible que está sujeto a fuertes restricciones en términos de seguridad y privacidad, como por ejemplo el Reglamento General de Protección de Datos Europeo o GDPR (si es que almacenas información de personas que vivan en la Unión Europea debes leer esta ley) o las leyes que se apliquen en tu país, en el caso del Perú, existe la Ley N° 29733 Ley de Protección de Datos Personales. Lo mejor es que su plan debe contener el procedimiento de cómo manejar cualquier problema, con auditorias, protocolos y operaciones inmediatas que serán valiosas si hay algún problema con la seguridad de los datos.

Algunas buenas prácticas para la seguridad consiste en definir un “ciclo de vida” para el uso de una base de datos dentro de una arquitectura, y proteger cada paso de ese ciclo de vida en consecuencia. Otro consejo es documentar las cuentas de usuario, aplicaciones y terminales que acceden a su motor de base de datos, por ejemplo, otorgando a cada administrador su propio acceso específico y parcheando servidores regularmente. También puede usar firewalls de base de datos u otras soluciones para salvaguardar datos.

7. Infraestructura para las base de datos

Hoy en día, podemos desplegar rápidamente servidores virtuales y entornos de virtualización de contenedores para albergar nuestra base de datos. También disponemos de servicios de cloud database y replicación en la nube que podemos utilizar como solución alterna para almacenar información o como una salida de contingencia. Por supuesto, la solución que elijas dependerá de las políticas de la empresa y el presupuesto asignado para la administración de los datos.

Debes contar con la documentación e inventario de la infraestructura, así como copias de respaldo de los entornos donde se ejecutan sus distintos motores de base de datos.

Debe realizar seguimiento a las actualizaciones del software base (SO) y si estas actualizaciones son compatibles con el software motor de sus bases de datos. Además deberá contar con herramientas y soporte para el monitoreo de la infraestructura.

A medida que su entorno sea más distribuido debe tener especial consideración en la coherencia y consistencia de los datos almacenados. Las actualizaciones masivas y sincronizadas son muy importantes para garantizar la consistencia de la información, por lo que deben ser un punto central de su plan de administración de bases de datos.

A %d blogueros les gusta esto: