Download - システム運用を振り返り伝えたいこと
![Page 1: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/1.jpg)
システム運用を振り返り伝えたいこと
株式会社CyberZ 黒木亮太2016/04/13
![Page 2: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/2.jpg)
自己紹介
• 名前:黒木 亮太• 2012年1月にサイバーエージェントに入社– Patriot– ニュースSNSサービス(BtoC)– 電子書籍サービス(BtoC)
• 三度の飯も、息子も好き
![Page 3: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/3.jpg)
※注意事項※これから話す内容に、悪いという概念はありません。あくまで、伝えたい事を具体的にするための例としてあげています。
![Page 4: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/4.jpg)
1.拡張性は大事!
![Page 5: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/5.jpg)
例1) 内製化プロジェクト
Aさん: 「BtoCサービスをやってみたいです」偉い人: 「今、内製化を進めようとしているサービスが丁度あるから、youやっちゃいなよ」
![Page 6: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/6.jpg)
例1) 内製化プロジェクト
■背景• WordPressで作成されていて、DBが依存している• HTMLファイルキャッシュを作成していて、更新があ
る度に再作成• WebサーバとDBサーバがセット構成なので、Web
サーバが増えるともれなくDBサーバも増える
![Page 7: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/7.jpg)
例1) 内製化プロジェクト
■背景• WordPressで作成• HTMLファイルキャッシュを作成していて、更新があ
る度に再作成• WebサーバとDBサーバがセット構成なので、Web
サーバが増えるともれなくDBサーバも増えるシステム限界
が訪れる
![Page 8: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/8.jpg)
例1) 内製化プロジェクト
■結果• WordPressを剥がした上で、フルスクラッチでリプレ
イス• すでに動作しているサービスを全く同じように構築
する必要があるため、新規開発よりも難易度が上がってしまう
■教訓サービスの目標数値(DAUなど)を視野に入れたシステム設計をする
![Page 9: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/9.jpg)
例2) OpenStackSwiI
■背景• 数TBの画像データを格納する• 1コンテナあたりの容量上限はないので、1コ
ンテナにすべてぶち込む
![Page 10: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/10.jpg)
例2) OpenStackSwiI
■背景• 数TBの画像データを格納する• 1コンテナあたりの容量上限はないので、1コ
ンテナにすべてぶち込む性能限界が訪れる
![Page 11: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/11.jpg)
例2) OpenStackSwiI
■結果• 容量上限はないが、性能面で劣化が見られるように
なったため、複数コンテナに格納するように改修• 既存データは常にreadが発生するため、データ移行
の難易度が上がる
■教訓想定容量の場合での性能をきちんと把握する
![Page 12: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/12.jpg)
2.技術選定は大事!
![Page 13: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/13.jpg)
例3)ORマッパー
偉い人: 「ORマッパーは共通ライブラリがあるからそれを使ってね。あと、データストアはHbaseを使ってね。」Bさん: 「・・・はい」
![Page 14: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/14.jpg)
例3)ORマッパー
■背景• javaオブジェクトをjsonデータとして永続化す
るORマッパー• 特定のフレームワークやデータストア
(Hbase,MySQLなど)に依存せずに利用できる
![Page 15: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/15.jpg)
例3)ORマッパー
■背景• javaオブジェクトをjsonデータとして永続化す
るORマッパー• 特定のフレームワークやデータストア
(Hbase,MySQLなど)に依存せずに利用できるシステム開発工数が破綻
![Page 16: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/16.jpg)
例3)ORマッパー
■結果• データを保存しよう
– auto_incrementなどないので、アプリ側で実装– トランザクションもないので、アプリ側でロックを実装
• データ構造を変えよう– 新たなindexを作成するには、データを入れなおさないといけない
• データの確認をしよう– Jsonなので用意にデータが見れない
■教訓共通化も大事な要素だが、運用がイメージ出来ないものを採用してはいけない
![Page 17: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/17.jpg)
3.リカバリを考慮するのは大事!
![Page 18: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/18.jpg)
例4) 購入処理
■背景購入処理をする際に、 plaSormシステム:課金処理 agencyシステム:購入通知処理で、2つのシステム間での連携が必要。
![Page 19: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/19.jpg)
例4) 購入処理
![Page 20: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/20.jpg)
例4) 購入処理
![Page 21: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/21.jpg)
例4) 購入処理
あれ、、購入キャンセル
が出来ない(´・ω・`)
![Page 22: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/22.jpg)
例4) 購入処理
■結果• それぞれ違うシステムのため、トランザクションを
はれない• 状況が発生した場合は、運用で返金などを行う
必要が出てしまった
■教訓APIを提供する際は、処理が失敗した場合のリカバリも考えて設計をする
![Page 23: システム運用を振り返り伝えたいこと](https://reader030.vdocuments.pub/reader030/viewer/2022020203/5872db501a28ab74188b71c9/html5/thumbnails/23.jpg)
おわり