Estas funciones podrían ser realizadas por una persona en una tienda lo suficientemente pequeña, o por equipos de personas para cada función en tiendas más grandes. Pero una organización adecuada debe tener estos tres roles (y quizás incluso un cuarto (el DBA de Desarrollo) que pondré en las discusiones a continuación) interactuar y coordinar para obtener resultados óptimos.
Diferencias de alto nivel:
- Data Architect modela los datos, realiza un análisis para comprender cómo los elementos de datos interactúan adecuadamente entre sí a través de una aplicación o la empresa, luego diseña los modelos de datos (conceptuales, lógicos, incluso físicos) con las relaciones definidas para mantener la integridad referencial con el comercio apropiado off-offs para el rendimiento (como se discutió con los DBA de desarrollo … ver más abajo). Los DA comunicarán sus modelos con su personal de desarrollo, pero rara vez interactuarán con los DBA de producción.
- El DBA de desarrollo es el que crea una instancia del modelo físico y se basará en la experiencia para configurar adecuadamente las tablas físicas para hacer un uso óptimo del DBMS en cuestión. Los arquitectos de datos generalmente no diseñan estrategias de índice o estrategias de partición; será un “complemento” que harán los DBAs de desarrollo. Los DBA de Dev también abordarán problemas arquitectónicos en la base de datos, trabajarán en la instalación de otras características que necesita la empresa (seguridad, auditoría), realizarán revisiones de rendimiento y ajuste del código desarrollado por los desarrolladores de la base de datos y resolverán problemas difíciles que surjan en producción. Los DBA de desarrollo deben comprender los modelos generados por los arquitectos de datos y trabajarán con los DBA de producción cuando surjan problemas importantes.
- El desarrollador de la base de datos será un especialista en SQL y desarrollará funciones, disparadores, paquetes, procedimientos almacenados para promulgar reglas comerciales y realizar tareas centradas en los datos. Deben ser expertos en la escritura de SQL que cumpla con los requisitos de Ansi, así como en el uso de extensiones específicas de RDBMS para realizar las tareas en cuestión. Trabajarán con los DBA de Dev para revisar el código y garantizar que estén accediendo correctamente al modelo de datos, y trabajarán con los DBA de Prod si su código tiene problemas en prod. Los roles Dev DBA y Developer Developer a menudo se combinan en uno.
- Production DBA es responsable de instalar, configurar, monitorear, realizar copias de seguridad, parchar, operar y realizar la recuperación ante desastres de la base de datos de producción (tanto el producto de la base de datos como la aplicación instalada encima). Generalmente no están interesados en los elementos de diseño que entraron en el producto que están monitoreando, pero están muy interesados en el rendimiento del resultado final; código, modelo de datos, índices, etc. Con frecuencia trabajarán con Dev DBA en errores de aplicación y los desarrolladores en problemas de rendimiento y ajuste.
Así es como generalmente veo a las organizaciones dividiendo estos roles; Puede ver la consolidación. Las tiendas DevOps a menudo difuminan la línea entre los DBA de desarrollo y producción. Los arquitectos de datos a menudo también son Dev DBA y usan dos sombreros. Los DBA de desarrollo como se mencionó anteriormente a menudo se ven involucrados en el desarrollo de SQL de núcleo duro y son los desarrolladores de bases de datos de facto.
- En Google, ¿cuánto tiempo tarda un ingeniero típico en pasar de Ingeniero de software II a III? ¿Cuántas personas hay en cada nivel? ¿Qué niveles son terminales? ¿Está bien ser un III indefinidamente?
- Mi jefe es súper amable, pero no es un buen supervisor. A menudo me siento perdido y he comenzado a odiar mi trabajo. Tengo ganas de perder el tiempo. ¿Qué tengo que hacer?
- Cuando me vuelvo muy bueno en programación competitiva y algoritmos en general, ¿puede Google contratarme a pesar de mi currículum y experiencia laboral aburridos?
- Ecologismo: estoy pensando en un cambio de carrera en la mediana edad. Quiero hacer algo para abordar el cambio climático ya que estoy profundamente preocupado. ¿Cuáles son algunas sugerencias?
- ¿Cuál es el mejor campo después de la ingeniería civil para obtener su propio nombre en el mundo?
Sin embargo, los dos roles que casi nunca se ven juntos son los Data Architects y los DBA de producción: los arquitectos de datos generalmente son más trabajadores de TI que conocen el lado comercial más que el lado tecnológico, mientras que los DBA de producción son especialistas en productos que conocen un producto RDBMS particular (Oracle , MS SQL Server, DB2, etc.) dentro y fuera.