Aquí en SurveyMonkey, The DB Team se divide en varios grupos distintos.
Tenemos ingenieros de bases de datos integrados con varios grupos de desarrollo. Son responsables de diseñar el esquema de la base de datos, trabajar en cualquier corrección de datos, mejoras de rendimiento, ajuste de consultas, etc. Básicamente, todo lo relacionado con la base de datos que necesitan sus contrapartes de desarrollo, en los equipos a los que dan soporte.
También contamos con el equipo de BI Infra que son responsables de la gestión de la infraestructura utilizada por nuestro departamento de BI. Esto puede incluir el desarrollo y mantenimiento de ETL, clústeres de Hadoop, almacenamiento de datos, informes, etc.
- En el desarrollo de software, ¿cuál es la diferencia entre las aplicaciones de escritorio y las aplicaciones web?
- ¿Qué marco web no me hace implementar el modelo y las capas GUI por separado?
- ¿Cuáles son los idiomas utilizados para desarrollar la interfaz de una aplicación web?
- ¿Qué tan bueno es PostgreSQL con la aplicación web Java?
- Cómo implementar mi aplicación Spring MySQL en GAE
El equipo DBOps, en el que estoy formado, está formado por nuestros DBA. Nos enfocamos en mantener nuestra infraestructura de SQL Server. Gestionamos nuestro propio hardware separado de la infraestructura de TI. Hacemos nuestra propia administración del servidor, etc. También nos preocupan las copias de seguridad, la planificación de la capacidad, la resolución de problemas de rendimiento, la aplicación de parches, la administración de SAN, las revisiones de código, la creación de perfiles de procesos, la alta disponibilidad, la recuperación ante desastres, etc.
También tenemos un equipo de DB de código abierto que es similar a DBOps pero para otras plataformas fuera de SQL Server.
¿Podríamos ser tan efectivos con más generalistas de bases de datos, probablemente no? Nuestros ingenieros tampoco tienen el mismo conocimiento profundo de SQL que nosotros. Al igual que nosotros en el equipo de DB, no tenemos el mismo conocimiento sobre la pila de aplicaciones que ellos. DBA es un rol híbrido entre desarrollador y administrador de sistemas, por lo que poner a un desarrollador en un rol de DBA significa que tendrán mucho que aprender antes de que sean efectivos.