Llegó el momento que estabas esperando por mucho tiempo, eres el nuevo administrador de la base de datos de producción. ¡Tremenda responsabilidad!. 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.
Te esperamos en la segunda parte del artículo en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.