Python戦闘コミュニティ
Java戦闘コミュニティ
長押しして以下のQRコードを特定し、必要に応じて追加します
QRコードをスキャンして、カスタマーサービスを追加します
Pythonコミュニティに参加する▲
QRコードをスキャンして、カスタマーサービスを追加します
Javaコミュニティに参加する▲
ソース丨クラウドヘッドライン
https://mp.weixin.qq.com/s/Q5WSXCVWs9rd34FA46k6Cg
中央ヨーロッパ時間の10月17日午後10時45分頃、Keepthescoreの創設者兼プログラマーは、赤ワインを数杯飲んだ後、誤って生産データベースを削除しました。300.00を超えるスコアボードと関連データが突然消えました。
幸い、同社はDigitalOceanが提供するホスト型データベースを使用しています。つまり、DigitalOceanは毎日自動的にバックアップを実行します。5分間の緊張とパニックの後、Keepthescoreのスタッフは、Webサイトをメンテナンスモードにして、バックアップの復元を試みました。災害から30分後の中央ヨーロッパ時間午後11時15分頃、通常の状態に戻りましたが、7時間のスコアボードデータは永久に消えました。
正確には、2020年10月17日の15:47から23:21の間に作成または追加されたスコアボードはすべて失われます。
結局、何が起こったのですか?
何人かの人々は、数杯の赤ワインで災害を非難せざるを得ません。ただし、データベースを消去する機能は、起動中に作成されました。関数はローカルデータベースを削除し、必要なすべてのテーブルを最初から作成します。今夜、深夜にコードを書いているときに、関数は本番データベースに接続し、データベースをクリアしました。
どうして?現在、私たちはまだその理由を理解しようとしています。
災害の原因となったコードは次のとおりです。
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にハードコードされていることに注意してください。つまり、開発者のマシン以外のマシンには接続できません。また:もちろん、Keepthescoreは、開発環境と本番環境で異なるパスワードとユーザーを使用します。今、彼らは疲れすぎて何が起こっているのか理解できません。
どのような教訓が得られましたか?なぜこの状況が二度と起こらないのですか?
Keepthescoreは、データベースを削除する機能を持つことは危険すぎてどこでも使用できないことを理解しています。問題は、テストは実稼働データベースから開始することを意味するため、セキュリティメカニズムを適切にテストすることは決してできないということです。
Keepthescoreは、迅速な復旧を容易にするバックアップが絶対に必要であることを理解しています。彼らは、この作業を信頼性が高く簡単にしてくれたDigitalOceanに感謝します。
幸いなことに、この災害のために職を失った人は誰もいませんでした。彼らは同じ人物であるため、創設者は開発者を解雇しません。
さらに、このWebアプリケーションは単なる副次的なプロジェクトであり、発電所を実行するための種類のソフトウェアではありません。
皮肉なことに、ほんの数日前、彼らはプロダクションデータベースを削除するというばかげた文化的遺伝子についてのツイートを投稿しました。
程序员专栏 扫码关注填加客服 长按识别下方二维码进群
最近のおすすめのエキサイティングなコンテンツ:
エントリからソースコードまでのSringMVC、これで十分です
10個のPythonビジュアルアニメーション、注意深く美しく
ここで良い記事を見て、もっと多くの人と共有してください↓↓