飲んだ後にコードを書いて、本番データベースを削除しました...

(プログラマーについてそれらにスターを付ける)

オリジナル:プログラマーに関するもの(id:iProgrammer)

「朝にコーヒーを飲んでも気が進まない場合は、生産環境に行って時計を削除してください!」

古い読者は、2017年11月に投稿したこの興味深い写真を覚えているかもしれません

しかし、最近、同様の技術的なゴシップが実際に発生しており、それもニュースになっています。

10月12日、外国のスコアリングサービスであるkeepthescoreが、この記事の冒頭と同じ興味深い写真をTwitterに投稿しました。

数日以内に、Keepthescoreは実稼働環境でデータベース削除イベントを経験しました。それは本当に本当です  

これはどんなメロンですか?

17日、keepthescoreの公式ブログが説明付きの記事を更新しました。

「(現地時間)夕方10時45分ごろ、赤ワインを数杯食べた後、本番環境で誤ってライブラリを削除してしまいました。スコアが300.00を超えてすぐにデータが消えてしまった場合」(関係者はすぐに落ち着くはずです

「しかし、ありがとうございます。サーバーホスティングプロバイダーのDigitalOceanは1日1回自動的にバックアップします。5分間の絶望とパニックの後、ウェブサイトのメンテナンスモードに入り、バックアップの復元を開始しました。災害の30分後、バックアップデータが復元され、ウェブサイトがオンラインに戻りました。 、しかし、7時間のデータは永久に失われます!  」

削除ライブラリがあるのはなぜですか?

「飲んだ後にコードを書くように言ったのは誰ですか?」たぶん誰もがそれらの赤ワインのグラスを非難するでしょう。

しかし、データベースを削除する機能は、彼らが冷静だったときに彼らのプログラマーによって書かれました。この関数はローカルデータベースを削除してから、必要なすべてのテーブルを最初から作成します。

17日の夜にコードが書かれたとき、関数は本番データベースに接続してそれを消去しました。なぜ削除されるのですか?彼らはまだそれを理解していません。

以下は、この削除の災害を引き起こしたコードです。

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.')

ホストはハードコードされたlocalhostであることに注意してください。

これは、開発者のマシン以外のマシンに接続しないことを意味します。ただし、開発と本番では異なるパスワードとユーザーを使用します。彼らは記事の中で、「疲れすぎて、今では理由がわからない」と述べた。

彼らはそれからどのような教訓を学びましたか?

彼らは学んだ:

  • 1.データベースを削除できる機能があると非常に危険です。テストしようとすると本番データベースを取得することになるため、セキュリティメカニズムを正しくテストすることはできません。

  • 2.すばやく復元できるバックアップが必要です。

  • 3.災害でさえ良い面があります。彼らのブログ投稿は多くの人々の興味をそそり、みんなに楽しさと警戒を与えました。

関与したプログラマーは上司によって解雇されましたか?

追放なし。keepthescoreの削除ライブラリの開発者と創設者は同じ人物であるため、Casparという名前です。「プログラマーに関するこれらのこと」には、Keepthescoreのセキュリティ、マーケティング、および運用のポジションもCasparによって行われていると疑う理由があります。

キャスパー氏は、これは彼の副次的なプロジェクトの1つであり、発電所が実行するソフトウェアのレベルではありませんが、一部のユーザーはそれに対してお金を払っていると述べました。

キャスパーはとても良い精神を持っています。ブログ投稿の最後に、彼は数日前に投稿した面白い写真を投稿して、誰もが喜びから学ぶことができるようにしました。

これはまた起こりますか?

キャスパー氏は率直に言って、「このようなことが二度と起こらないことを100%保証することはできない。コンピューターは複雑すぎて、いつか複雑なゴブリンが勝つだろう。しかし、問題を見つけて、この特定の間違いが起こらないようにする。もう一度起こります。」

実稼働環境でのデータベース削除インシデントを防ぐための良い提案はありますか?共有するメッセージを残すことを歓迎します。

-EOF-

おすすめの読み物タイトルをクリックしてジャンプ

1.サーバー上のすべてのデータがクリアされWeimobは「データベースの削除」の運用と保守のために6年の刑を宣告されました

2.ライブラリが再び削除されます。今回はAIです。

3.ライブラリを削除します!プログラマーは報復で解雇される前に会社に不満を持っています

「プログラマーのもの」スターに注意を払い、サークルをお見逃しなく

好きで見ては最大のサポートです❤️

おすすめ

転載: blog.csdn.net/P5dEyT322JACS/article/details/109192410