Escribí el código después de beber, borré la base de datos de producción ...

(Destaca esas cosas sobre programadores)

Original: esas cosas sobre los programadores (id: iProgrammer)

"Si no puede despejar su mente incluso después de tomar café por la mañana, vaya al entorno de producción para borrar el reloj".

Los lectores antiguos pueden recordar esta interesante imagen que publicamos en noviembre de 2017 .

Sin embargo, recientemente se han producido chismes técnicos similares y también han aparecido en las noticias.

El 12 de octubre, keepthescore, un servicio de puntuación extranjero, publicó la misma imagen interesante que el comienzo de este artículo en Twitter.

A los pocos días, Keepthescore experimentó un evento de eliminación de la base de datos en el entorno de producción. Realmente es verdad  

¿Qué tipo de melón es este?

El día 17, el blog oficial de keepthescore actualizó un artículo con una explicación.

"(Hora local) alrededor de las 10:45 de la noche, después de que se comieron unas copas de vino tinto, borramos accidentalmente la biblioteca en el entorno de producción. Si la puntuación excedía los 300,00 y sus datos desaparecían instantáneamente". (La persona en cuestión debería recuperarse instantáneamente )

"Pero gracias a Dios, nuestro proveedor de alojamiento de servidores DigitalOcean realiza automáticamente una copia de seguridad una vez al día. Después de 5 minutos de desesperación y pánico, entramos en el modo de mantenimiento del sitio web y comenzamos a restaurar la copia de seguridad. 30 minutos después del desastre, se restauraron los datos de la copia de seguridad y el sitio web volvió a estar en línea. , ¡Pero las 7 horas de datos se pierden permanentemente!   "

¿Por qué hay una biblioteca de eliminación?

"¿Quién te dijo que escribieras código después de beber?" Quizás todos culpen a esas copas de vino tinto.

Sin embargo, la función para eliminar la base de datos fue escrita por sus programadores cuando estaban sobrios. Esa función elimina la base de datos local y luego crea todas las tablas necesarias desde cero.

Cuando se escribió el código en la noche del día 17, la función se conectó a la base de datos de producción y la borró. ¿Por qué se borra? Aún no lo han descubierto.

El siguiente es el código que desencadenó el desastre de esta eliminación:

def database_model_create():
    """Only works on localhost to prevent catastrophe"""
    database = config.DevelopmentConfig.DB_DATABASE
    user = config.DevelopmentConfig.DB_USERNAME
    password = config.DevelopmentConfig.DB_PASSWORD
    port = config.DevelopmentConfig.DB_PORT
    local_db = PostgresqlDatabase(database=database, user=user, password=password, host='localhost', port=port)
    local_db.drop_tables([Game, Player, Round, Score, Order])
    local_db.create_tables([Game, Player, Round, Score, Order])
    print('Initialized the local database.')

Tenga en cuenta que el host es localhost codificado de forma rígida.

Esto significa que no debe conectarse a ninguna máquina que no sea la del desarrollador. Sin embargo, utilizan diferentes contraseñas y usuarios en el desarrollo y la producción. Dijeron en el artículo: "Demasiado cansados, ahora no pueden entender por qué".

¿Qué lecciones aprendieron de él?

Han aprendido:

  • 1. Es muy peligroso tener funciones que puedan borrar la base de datos. El mecanismo de seguridad nunca se puede probar correctamente, porque intentar probar significa tomar la base de datos de producción.

  • 2. Debe haber una copia de seguridad que se pueda restaurar rápidamente.

  • 3. Incluso los desastres tienen un lado bueno. Su publicación en el blog despertó el interés de muchas personas y les dio a todos diversión y alerta.

¿El jefe despidió al programador involucrado?

Sin expulsión. Porque el desarrollador y fundador de la biblioteca de eliminación de keepthescore son la misma persona, llamada Caspar. "Esas cosas sobre los programadores" tienen motivos para sospechar que las posiciones de seguridad, marketing y operaciones de Keepthescore también las realiza Caspar.

Caspar dijo que este es uno de sus proyectos paralelos, aunque no es el nivel de software que tiene la central, algunos usuarios pagan por él, expresa sus más profundas disculpas.

Caspar tiene muy buena mentalidad, al final de la entrada del blog publicó las divertidas fotos que publicó hace unos días, para que todos puedan aprender de la alegría.

¿Sucederá esto de nuevo?

Caspar dijo con franqueza: "No podemos garantizar al 100% que este tipo de cosas no volverán a suceder. Las computadoras son demasiado complicadas y algún día un duende complicado ganará. Sin embargo, encontraremos el problema y nos aseguraremos de que este error en particular no suceda. Sucede una vez más ".

¿Tiene alguna buena sugerencia para prevenir incidentes de eliminación de bases de datos en el entorno de producción? Bienvenido a dejar un mensaje para compartir.

- EOF -

Lectura recomendada Haga clic en el título para saltar

1. Se borraron todos los datos del servidor y Weimob fue condenado a 6 años por la operación de "eliminación de la base de datos".

2. La biblioteca se elimina nuevamente, esta vez es AI

3. ¡ Elimina la biblioteca! Un programador no está satisfecho con la empresa antes de ser despedido en represalia

Presta atención a la estrella de "cosas del programador", no te pierdas el círculo

Me gusta y mirar es el mayor apoyo ❤️

Supongo que te gusta

Origin blog.csdn.net/P5dEyT322JACS/article/details/109192410
Recomendado
Clasificación