¿Alguna vez ha cometido un error importante en un servidor de producción?

Sí, definitivamente.

Fue bastante simple en realidad. Nuestro servidor de producción ha estado arrojando algunos errores de hardware. Entonces, plan simple, vaya al centro de datos, copie la base de datos al servidor de respaldo que acabamos de configurar. Vuelva a colocar los front-end web y luego desconecte el servidor original. Nada de eso.

Usé el asistente (creo que esto fue SQL Server 7 por cierto) y no pasó nada.

Apuntó alrededor, me di cuenta del error que había cometido. Trivial para arreglar. Unos pocos clics más tarde y estaba listo para comenzar.

Presiona el botón. ¡Viola! ¡Hecho!

Espere un segundo, debería haber tomado al menos 1/2 hora, tal vez una hora, no 5 segundos.

“Dios mío, ¿qué he hecho?”

Ah, ya veo, copié la base de datos del Servidor B al Servidor A. No del Servidor A al Servidor B. ¿Mencioné que la base de datos en el Servidor B estaba vacía? Bueno, una base de datos vacía copia MUY rápidamente. Y ahora la base de datos en el Servidor A estaba vacía.

No hay problema, solo ve a las copias de seguridad. ¿Oh que es esto? ¿La última copia de seguridad fue de hace 4 a 5 noches y habían fallado desde entonces?

Ese día aprendí algunas lecciones muy importantes que apliqué a lo largo de los años.

1) Los errores suceden. Mi jefe fue amable al aceptar mi error. A su vez, le dije a mis informes que cometerían errores, a veces grandes (hablaría de los míos). Pero esperaba que se presentaran lo antes posible para que pudiéramos solucionarlos. Y luego no repetir los mismos errores.

2) Desarrollé un Plan de Cambio / Revisión (originalmente pensé en llamarlos Cambio / Revisión / Análisis / Planes, pero decidí que no tomaría CRAP de nadie).

Los CRP (o realmente cualquier plan de cambio, independientemente de cómo los llames) tienen varias fortalezas: te da la oportunidad de escribir y planificar las cosas de antemano y otros pueden revisarlo. un CRP NO habría evitado mi error. PERO, un CRP habría tenido un paso, “asegúrese de que se hayan ejecutado las copias de seguridad, si no se ha ejecutado uno” que habría mitigado GRANDEMENTE la falla.

Además, incluya un plan de recuperación. ¿Qué puede ir mal? ¿Qué harás cuando algo salga mal? Esto hará que planifique mejor (como agregar el paso anterior sobre las copias de seguridad).

Por cierto, si puedes, lee “El Manifiesto de la Lista de Verificación”

3) A veces es lo más simple que puede causar los mayores problemas. No te dejes sorprender.

4) Aprende de los errores.

Este evento me convirtió en un mejor gerente y DBA y persona de tecnología.

Mi peor error personal no fue en la producción, sino en el desarrollo. Había estado apoyando a un equipo de desarrollo, proporcionándoles copias de la base de datos de producción, donde no me había molestado en editar datos confidenciales antes de entregarlos a los desarrolladores. Era joven, no sabía nada mejor y ninguna persona sugirió que era una mala idea. De todos modos, uno de los desarrolladores estaba probando el programa de correo electrónico … Sí, un correo electrónico a la lista de clientes.

Hubo largas reuniones para discutir lo que había sucedido y cómo evitaríamos que siguiera adelante. Fue una forma difícil de aprender una lección importante, pero no me despidieron.

Estoy bastante seguro de que casi todos en el lado de la infraestructura de TI han cometido un error importante en algún momento en un sistema de producción. Por lo general, esto es más temprano en nuestra carrera. Compartiré contigo un par de historias. Uno mío y otro ex compañero de trabajo que permanecerá en el anonimato.

En los primeros días de ser un DBA, ejecuté una eliminación en una tabla que asignaba ID de sistema. Accidentalmente omití la cláusula where cuando resalté la declaración de eliminación. Esto inmediatamente causó todo tipo de estragos. Afortunadamente, los datos de la tabla eran en su mayoría estáticos. Envié un correo electrónico a las partes interesadas apropiadas y mencioné mi plan para solucionar el problema y luego me puse a trabajar.

Después de solucionar el problema, fui a mi director y nuevamente le expliqué lo que había sucedido junto con lo que iba a hacer para evitar que siguiera adelante. También tuvimos problemas de datos posteriores que tuvimos que abordar como resultado del problema. Me quedé hasta tarde con algunos equipos para ayudar a arreglar las cosas. Allí bromeé durante unos días pero no me despidieron. De hecho, muchas personas me animaron y me contaron sobre las veces que cometieron un gran error. Luego, años más tarde, le transmití mi historia al caballero cuya historia también estoy a punto de contarle.

Bob era un administrador de sistemas que tenía contratos con nosotros durante unos meses antes del incidente. Un día fue a formatear un volumen en nuestra SAN. Bueno, desafortunadamente formateó accidentalmente TODA LA SAN … No hace falta decir que fue un gran problema. Sin embargo, lo que realmente sorprendió al resto de nosotros fue que Bob admitió de inmediato su error y pidió ayuda. Una vez que nos recuperamos, tuvimos una reunión con la alta gerencia y se tomó la decisión de que si bien Bob había cometido un error MUY GRANDE, había demostrado mucha integridad. La precaución se aprende. La integridad es MUCHO más difícil de enseñar. Bob pensó que lo iban a dejar ir, en cambio lo contratamos a tiempo completo.

He tenido suerte / cuidado de no encontrarme en tal situación, pero trabajé con un compañero que fue menos afortunado. Estaba trabajando en actualizar un servidor departamental y “olvidó” hacer una copia de seguridad. Como sucede, la actualización no fue tan fácil y tuvo que formatear todos los discos y comenzar desde cero. Cuando el jefe del departamento descubrió que todos sus datos se habían perdido y que no había copias de seguridad, comenzó a llorar histéricamente y pensé que iba a comenzar a arrancarse el pelo frente a nosotros. Curiosamente, nada le sucedió al tipo que cometió el error. Esperaba completamente que lo despidieran, pero no fue así.

Hace muchos años, trunqué mi tabla de hechos principal con 100 millones de registros. Y la copia de seguridad no había funcionado. Malos recuerdos.

More Interesting

¿Cuáles son los mayores problemas con SAP como empresa y su software?

¿Cuál es la diferencia entre la confiabilidad del software y la predicción de la calidad del software en función de los cambios de código?

¿Cuál es la lista de habilidades que debe tener todo ingeniero de software integrado?

¿Por qué ni siquiera estoy recibiendo una entrevista para trabajos de ingeniería de software? Llevo 4 años trabajando como ingeniero de software en una empresa francesa en El Cairo. Quiero mudarme a Europa o EE. UU., Así que comencé a postularme a muchos trabajos en LinkedIn.

¿Cuáles son algunas herramientas efectivas para la estimación de historias y la planificación de lanzamientos?

¿Debería reconsiderar la especialización en Ciencias de la Computación si estoy teniendo dificultades en el Cálculo 1?

¿Qué es 'bot' y cómo funciona?

¿Cuáles son los trabajos de programación que no les gustan a los programadores?

¿Cómo se debe aprender un lenguaje de programación? Cuando comenzamos a aprender un nuevo lenguaje de programación, ¿cuáles son todas las cosas que debemos aprender a decirnos a nosotros mismos como un buen programador en ese idioma?

¿Es sabio tomar un doble título en ingeniería de software y ciencias de la computación?

¿Cómo pasan la vida los ingenieros de software?

¿Quién está usando Redis en un entorno de producción?

¿Hay alguna diferencia entre CS e ingeniería de software?

¿Cómo aseguran las grandes empresas la calidad del código (herramientas, rutinas y metodologías)?

¿Quién ofrece capacitación en pruebas de software?