狠狠撸

狠狠撸Share a Scribd company logo
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
本番用のDBに対して
やってしまった話
2020/8/24
ITエンジニア怪談 #3
小島 優介(8/27デブサミ関西登壇)
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
業務の内容
2
10年以上前の話
数百人が利用している社内ツールの小改善
その社内ツールは
SQL Server のデータを取得?更新する
※以降、赤字部分は、その後の悲劇に繋がるポイントです
社内ツール
(デスクトップアプリ)
SQL
Server
ユーザー
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
社内ツールの改善内容
3
小さな機能(ロジックもシンプル)を追加すること
ただし、その機能追加で、DBにアクセスする回数が増えるため
DBサーバーの負荷状況に問題が起きないか
念の為にサーバー負荷テストを実施することに
←この時点では「余裕!余裕!」と思っていた私
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
サーバー負荷テストの実施手順
4
当時(10年以上前)のさらに数年前に
その社内用ツールでのサーバー負荷を確認するための
テスト用ツールが作成されていた
(自分以外の人が作成したテスト用ツール)
そのテスト用ツールは、過去数年使われていないようだったが
幸いにも利用手順書が存在した
テスト用ツール
(デスクトップアプリ)
SQL
Server
開発者(私)
本番運用を想定した
DBアクセスを行って負荷を与える
テスト用ツールの概要
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
テスト実施時の注意点
5
社内ツールでのテストは
本番環境のDBに間違ってアクセスすると
大変なことになるので
ちゃんとテスト用のDBにアクセスするように
DB設定ファイルを確認した上で、テストを実施する必要がある
テスト用ツールも、利用手順書をしっかり読んで、
テスト用のDBにアクセスすることを確認する
この時点で、テスト用DBが更新されることを確認していた
テスト用ツール テスト用
DB
任意の1レコードが
更新されることを確認
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
そしてテストを実行
6
テスト用ツールでサーバー負荷テストを実施し、
サーバー負荷状況に問題がないことを確認した
テスト用ツール テスト用
DB
本番用
DB
開発者(私)
サーバー負荷テスト合格
テスト用DBでテストしたので
本番用DBには影響がないはず
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
翌日に異変が
7
ユーザーから以下の問い合わせが!
「なんかデータが勝手に書き換わっている気がするんだけど」
←問い合わせ内容を見たときの私
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
おそるおそる本番環境のDBを見ると???
8
書き換わっている!
なぜ!?
←絶望した私
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
原因はテスト用ツール
9
テスト用ツールのソースコードをよく見ると
処理Aと処理Bの2つのDB更新処理が存在し、
処理Aと処理Bがそれぞれ、どのDBにアクセスするかの設定が存在
(なぜ1つにまとまっていないのかは不明)
処理Aはテスト用DBにアクセスしていたが、処理Bは本番用DBに
テスト用ツール テスト用
DB
本番用
DB
処理A
処理B
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
テスト用ツールのDBアクセスの設定漏れ
10
どのDBにアクセスするかの設定は
デフォルトで本番環境のDBにアクセスする設定になっていた
利用手順書には、処理AのDBアクセス設定しか書いていなかったため
手順書通りに実施すると
処理Bは本番環境のDBを更新してしまう状態だった
テスト用ツール テスト用
DB
本番用
DB
処理A
処理B
処理BのDBアクセスの
設定が漏れていた
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
謝罪とデータ復旧
11
致命傷には至らなかったため、なんとか復旧できた
←関係者に謝罪する私
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
教訓
12
何年も使われていないプログラム(テスト用ツールなど)に対しては
手順書を鵜呑みにするのでなく
ソースコードを読んで、重大な問題が起きないことを
確認した上で利用すること
/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
? DENSO CORPORATION All RightsReserved.
自己紹介
13
名前:小島 優介
Twitter:@kojimadev
https://twitter.com/kojimadev
「Serverless LT初心者向け」 というコミュニティを運営
9/7 LT初心者向け LT大会 #3 (発表者を募集中)
https://serverlesslt.connpass.com/event/184417/
デブサミ2020関西で登壇予定(約500人が視聴予定)
8/27 14:10-14:55 事前登録すれば無料で視聴できまさす
https://event.shoeisha.jp/devsumi/20200827/session/2586/
テーマ
組織と個人が内発的動機により
継続的に成長するための施策

More Related Content

What's hot (20)

社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
Hitachi, Ltd. OSS Solution Center.
?
Another Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacAnother Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for Mac
Tomohiro Suzuki
?
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
驰补丑辞辞!デベロッパーネットワーク
?
デバイスコネクト対応机の弊社确认结果とご相谈
デバイスコネクト対応机の弊社确认结果とご相谈デバイスコネクト対応机の弊社确认结果とご相谈
デバイスコネクト対応机の弊社确认结果とご相谈
Device WebAPI Consortium
?
20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと
20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと
20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと
LIFULL Co., Ltd.
?
[デブサミ]Microsoft Data Platform 最新アップデート
[デブサミ]Microsoft Data Platform 最新アップデート [デブサミ]Microsoft Data Platform 最新アップデート
[デブサミ]Microsoft Data Platform 最新アップデート
Daisuke Inoue
?
【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発
【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発
【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発
Developers Summit
?
エクストリーム?プログラミング開発におけるUIテスト #yjbonfire
エクストリーム?プログラミング開発におけるUIテスト #yjbonfireエクストリーム?プログラミング開発におけるUIテスト #yjbonfire
エクストリーム?プログラミング開発におけるUIテスト #yjbonfire
驰补丑辞辞!デベロッパーネットワーク
?
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
de:code 2017
?
Google Container Engine と Kubernetes て? 無理をしないコンテナ管理
Google Container Engine と Kubernetes て? 無理をしないコンテナ管理Google Container Engine と Kubernetes て? 無理をしないコンテナ管理
Google Container Engine と Kubernetes て? 無理をしないコンテナ管理
Ryosuke Suto
?
ACRi_gdep-hayashi-v2
ACRi_gdep-hayashi-v2ACRi_gdep-hayashi-v2
ACRi_gdep-hayashi-v2
直久 住川
?
DataEngConf NYC’18 セッションサマリー #1
DataEngConf NYC’18 セッションサマリー #1DataEngConf NYC’18 セッションサマリー #1
DataEngConf NYC’18 セッションサマリー #1
gree_tech
?
animation_prototype_campfire_design
animation_prototype_campfire_designanimation_prototype_campfire_design
animation_prototype_campfire_design
驰补丑辞辞!デベロッパーネットワーク
?
ソフトウェア开発活动のデータとアナリティクスの3原则
ソフトウェア开発活动のデータとアナリティクスの3原则ソフトウェア开発活动のデータとアナリティクスの3原则
ソフトウェア开発活动のデータとアナリティクスの3原则
Shuji Morisaki
?
OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介
OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介
OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介
Daisuke Nishino
?
狈辞诲别-搁贰顿からメール送信
狈辞诲别-搁贰顿からメール送信狈辞诲别-搁贰顿からメール送信
狈辞诲别-搁贰顿からメール送信
Hitachi, Ltd. OSS Solution Center.
?
Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理
Yusuke Kojima
?
叠尝贰ビーコン活用例
叠尝贰ビーコン活用例叠尝贰ビーコン活用例
叠尝贰ビーコン活用例
株式会社芳和システムデザイン(Houwa System Design K.K.)
?
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」 国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」
Hayato Ito
?
kintone hack in kintone hive fukuoka Vol.4
kintone hack in kintone hive fukuoka Vol.4kintone hack in kintone hive fukuoka Vol.4
kintone hack in kintone hive fukuoka Vol.4
Mitsuaki Ando
?
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
社会のコードを、書き換えよう~エンジニア起点のNew Normalな働き方~
Hitachi, Ltd. OSS Solution Center.
?
Another Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacAnother Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for Mac
Tomohiro Suzuki
?
デバイスコネクト対応机の弊社确认结果とご相谈
デバイスコネクト対応机の弊社确认结果とご相谈デバイスコネクト対応机の弊社确认结果とご相谈
デバイスコネクト対応机の弊社确认结果とご相谈
Device WebAPI Consortium
?
20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと
20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと
20220319冲新卒から活跃し続けるエンジニアが大切にしている5つのこと
LIFULL Co., Ltd.
?
[デブサミ]Microsoft Data Platform 最新アップデート
[デブサミ]Microsoft Data Platform 最新アップデート [デブサミ]Microsoft Data Platform 最新アップデート
[デブサミ]Microsoft Data Platform 最新アップデート
Daisuke Inoue
?
【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発
【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発
【16-贰-4】残业ゼロで开発スピードが10倍に!もう元の开発体制には戻れないデンソー流のアジャイル开発
Developers Summit
?
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
[DO08] 『変わらない開発現場』を変えていくために ~エンプラ系レガシー SIer のための DevOps 再入門~
de:code 2017
?
Google Container Engine と Kubernetes て? 無理をしないコンテナ管理
Google Container Engine と Kubernetes て? 無理をしないコンテナ管理Google Container Engine と Kubernetes て? 無理をしないコンテナ管理
Google Container Engine と Kubernetes て? 無理をしないコンテナ管理
Ryosuke Suto
?
DataEngConf NYC’18 セッションサマリー #1
DataEngConf NYC’18 セッションサマリー #1DataEngConf NYC’18 セッションサマリー #1
DataEngConf NYC’18 セッションサマリー #1
gree_tech
?
ソフトウェア开発活动のデータとアナリティクスの3原则
ソフトウェア开発活动のデータとアナリティクスの3原则ソフトウェア开発活动のデータとアナリティクスの3原则
ソフトウェア开発活动のデータとアナリティクスの3原则
Shuji Morisaki
?
OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介
OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介
OSSコンソーシアム 開発基盤部会 2019年度 活動方針?部会紹介
Daisuke Nishino
?
Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理Slack の Incoming Webhookで簡易なフィードバック管理
Slack の Incoming Webhookで簡易なフィードバック管理
Yusuke Kojima
?
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」 国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」
国内Cloud spanner初事例!「迎車料金無し!新感覚タクシーアフ?リ「フルクル」」
Hayato Ito
?
kintone hack in kintone hive fukuoka Vol.4
kintone hack in kintone hive fukuoka Vol.4kintone hack in kintone hive fukuoka Vol.4
kintone hack in kintone hive fukuoka Vol.4
Mitsuaki Ando
?

Similar to 本番用の顿叠に対してやってしまった话 (20)

CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?
Yugo Shimizu
?
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
NTT DATA Technology & Innovation
?
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介 Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
QlikPresalesJapan
?
Another works_リート?エンシ?ニア向け採用資料.pdf
Another works_リート?エンシ?ニア向け採用資料.pdfAnother works_リート?エンシ?ニア向け採用資料.pdf
Another works_リート?エンシ?ニア向け採用資料.pdf
ssuseree1665
?
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组みモバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
MorioImai
?
scrum_fest_osaka_2020
scrum_fest_osaka_2020scrum_fest_osaka_2020
scrum_fest_osaka_2020
Naomichi Shimazu
?
Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版
Takeshi Fukuhara
?
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
?
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
shojiro-tanaka
?
【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
griddb
?
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
griddb
?
Microsoft Build 2021 Recap Day
Microsoft Build 2021 Recap DayMicrosoft Build 2021 Recap Day
Microsoft Build 2021 Recap Day
ryosuke matsumura
?
Two Dataflows
Two DataflowsTwo Dataflows
Two Dataflows
Yugo Shimizu
?
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
griddb
?
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
?
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
?
CData Drivers HandsOn 20180326
CData Drivers HandsOn 20180326CData Drivers HandsOn 20180326
CData Drivers HandsOn 20180326
CData Software Japan
?
BigQueryを活用したPrivate DMPを作って使ってるお話
BigQueryを活用したPrivate DMPを作って使ってるお話BigQueryを活用したPrivate DMPを作って使ってるお話
BigQueryを活用したPrivate DMPを作って使ってるお話
Masato Kawada
?
Ignite update databricks_stream_analytics
Ignite update databricks_stream_analyticsIgnite update databricks_stream_analytics
Ignite update databricks_stream_analytics
Ryoma Nagata
?
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
griddb
?
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?
CDS が DirectQuery をサポートしたのでそれを紹介しながら新機能を紹介していきます?
Yugo Shimizu
?
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
脅威へ、しなやかかつ持続可能に対応するためのIaC環境 ~循環型IaC~ (CloudNative Security Conference 2022 プレ...
NTT DATA Technology & Innovation
?
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介 Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
QlikPresalesJapan
?
Another works_リート?エンシ?ニア向け採用資料.pdf
Another works_リート?エンシ?ニア向け採用資料.pdfAnother works_リート?エンシ?ニア向け採用資料.pdf
Another works_リート?エンシ?ニア向け採用資料.pdf
ssuseree1665
?
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组みモバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
MorioImai
?
Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版Data & AI Update 情報 - 2020年4月版
Data & AI Update 情報 - 2020年4月版
Takeshi Fukuhara
?
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
?
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
shojiro-tanaka
?
【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー?フィジカル?システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
griddb
?
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
griddb
?
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
【ハンズオンセミナー】NoSQL/SQLデュアルインタフェースを備えたIoT向けデータベースGridDB ~ GridDB CE 4.6のテーブルパーティ...
griddb
?
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
?
BigQueryを活用したPrivate DMPを作って使ってるお話
BigQueryを活用したPrivate DMPを作って使ってるお話BigQueryを活用したPrivate DMPを作って使ってるお話
BigQueryを活用したPrivate DMPを作って使ってるお話
Masato Kawada
?
Ignite update databricks_stream_analytics
Ignite update databricks_stream_analyticsIgnite update databricks_stream_analytics
Ignite update databricks_stream_analytics
Ryoma Nagata
?
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』ビッグデータやIoTシステムを支えるデータベース 『GridDB』
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
griddb
?

More from Yusuke Kojima (6)

(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法
(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法
(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法
Yusuke Kojima
?
组织と个人が内発的动机により継続的に成长するための施策
组织と个人が内発的动机により継続的に成长するための施策组织と个人が内発的动机により継続的に成长するための施策
组织と个人が内発的动机により継続的に成长するための施策
Yusuke Kojima
?
彻底的にアウトプットを伴う育成をやってみた话
彻底的にアウトプットを伴う育成をやってみた话彻底的にアウトプットを伴う育成をやってみた话
彻底的にアウトプットを伴う育成をやってみた话
Yusuke Kojima
?
リモートワークで楽しく开発するためのチームビルディング
リモートワークで楽しく开発するためのチームビルディングリモートワークで楽しく开発するためのチームビルディング
リモートワークで楽しく开発するためのチームビルディング
Yusuke Kojima
?
生产性を倍にしたハピネスチームビルディング
生产性を倍にしたハピネスチームビルディング生产性を倍にしたハピネスチームビルディング
生产性を倍にしたハピネスチームビルディング
Yusuke Kojima
?
生产性を2倍にしたチームビルディング
生产性を2倍にしたチームビルディング生产性を2倍にしたチームビルディング
生产性を2倍にしたチームビルディング
Yusuke Kojima
?
(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法
(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法
(SPI JAPAN 2020) 組織と個人が内発的動機で継続的に成長し続けるための実践手法
Yusuke Kojima
?
组织と个人が内発的动机により継続的に成长するための施策
组织と个人が内発的动机により継続的に成长するための施策组织と个人が内発的动机により継続的に成长するための施策
组织と个人が内発的动机により継続的に成长するための施策
Yusuke Kojima
?
彻底的にアウトプットを伴う育成をやってみた话
彻底的にアウトプットを伴う育成をやってみた话彻底的にアウトプットを伴う育成をやってみた话
彻底的にアウトプットを伴う育成をやってみた话
Yusuke Kojima
?
リモートワークで楽しく开発するためのチームビルディング
リモートワークで楽しく开発するためのチームビルディングリモートワークで楽しく开発するためのチームビルディング
リモートワークで楽しく开発するためのチームビルディング
Yusuke Kojima
?
生产性を倍にしたハピネスチームビルディング
生产性を倍にしたハピネスチームビルディング生产性を倍にしたハピネスチームビルディング
生产性を倍にしたハピネスチームビルディング
Yusuke Kojima
?
生产性を2倍にしたチームビルディング
生产性を2倍にしたチームビルディング生产性を2倍にしたチームビルディング
生产性を2倍にしたチームビルディング
Yusuke Kojima
?

本番用の顿叠に対してやってしまった话

  • 1. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 本番用のDBに対して やってしまった話 2020/8/24 ITエンジニア怪談 #3 小島 優介(8/27デブサミ関西登壇)
  • 2. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 業務の内容 2 10年以上前の話 数百人が利用している社内ツールの小改善 その社内ツールは SQL Server のデータを取得?更新する ※以降、赤字部分は、その後の悲劇に繋がるポイントです 社内ツール (デスクトップアプリ) SQL Server ユーザー
  • 3. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 社内ツールの改善内容 3 小さな機能(ロジックもシンプル)を追加すること ただし、その機能追加で、DBにアクセスする回数が増えるため DBサーバーの負荷状況に問題が起きないか 念の為にサーバー負荷テストを実施することに ←この時点では「余裕!余裕!」と思っていた私
  • 4. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. サーバー負荷テストの実施手順 4 当時(10年以上前)のさらに数年前に その社内用ツールでのサーバー負荷を確認するための テスト用ツールが作成されていた (自分以外の人が作成したテスト用ツール) そのテスト用ツールは、過去数年使われていないようだったが 幸いにも利用手順書が存在した テスト用ツール (デスクトップアプリ) SQL Server 開発者(私) 本番運用を想定した DBアクセスを行って負荷を与える テスト用ツールの概要
  • 5. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. テスト実施時の注意点 5 社内ツールでのテストは 本番環境のDBに間違ってアクセスすると 大変なことになるので ちゃんとテスト用のDBにアクセスするように DB設定ファイルを確認した上で、テストを実施する必要がある テスト用ツールも、利用手順書をしっかり読んで、 テスト用のDBにアクセスすることを確認する この時点で、テスト用DBが更新されることを確認していた テスト用ツール テスト用 DB 任意の1レコードが 更新されることを確認
  • 6. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. そしてテストを実行 6 テスト用ツールでサーバー負荷テストを実施し、 サーバー負荷状況に問題がないことを確認した テスト用ツール テスト用 DB 本番用 DB 開発者(私) サーバー負荷テスト合格 テスト用DBでテストしたので 本番用DBには影響がないはず
  • 7. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 翌日に異変が 7 ユーザーから以下の問い合わせが! 「なんかデータが勝手に書き換わっている気がするんだけど」 ←問い合わせ内容を見たときの私
  • 8. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. おそるおそる本番環境のDBを見ると??? 8 書き換わっている! なぜ!? ←絶望した私
  • 9. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 原因はテスト用ツール 9 テスト用ツールのソースコードをよく見ると 処理Aと処理Bの2つのDB更新処理が存在し、 処理Aと処理Bがそれぞれ、どのDBにアクセスするかの設定が存在 (なぜ1つにまとまっていないのかは不明) 処理Aはテスト用DBにアクセスしていたが、処理Bは本番用DBに テスト用ツール テスト用 DB 本番用 DB 処理A 処理B
  • 10. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. テスト用ツールのDBアクセスの設定漏れ 10 どのDBにアクセスするかの設定は デフォルトで本番環境のDBにアクセスする設定になっていた 利用手順書には、処理AのDBアクセス設定しか書いていなかったため 手順書通りに実施すると 処理Bは本番環境のDBを更新してしまう状態だった テスト用ツール テスト用 DB 本番用 DB 処理A 処理B 処理BのDBアクセスの 設定が漏れていた
  • 11. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 謝罪とデータ復旧 11 致命傷には至らなかったため、なんとか復旧できた ←関係者に謝罪する私
  • 12. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 教訓 12 何年も使われていないプログラム(テスト用ツールなど)に対しては 手順書を鵜呑みにするのでなく ソースコードを読んで、重大な問題が起きないことを 確認した上で利用すること
  • 13. /65 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima ? DENSO CORPORATION All RightsReserved. 自己紹介 13 名前:小島 優介 Twitter:@kojimadev https://twitter.com/kojimadev 「Serverless LT初心者向け」 というコミュニティを運営 9/7 LT初心者向け LT大会 #3 (発表者を募集中) https://serverlesslt.connpass.com/event/184417/ デブサミ2020関西で登壇予定(約500人が視聴予定) 8/27 14:10-14:55 事前登録すれば無料で視聴できまさす https://event.shoeisha.jp/devsumi/20200827/session/2586/ テーマ 組織と個人が内発的動機により 継続的に成長するための施策