システム運用を振り返り伝えたいこと

23
システム運用を振り返り 伝えたいこと 株式会社CyberZ 黒木亮太 2016/04/13

Upload: ryota-kuroki

Post on 09-Jan-2017

3.160 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: システム運用を振り返り伝えたいこと

システム運用を振り返り伝えたいこと

株式会社CyberZ 黒木亮太2016/04/13

Page 2: システム運用を振り返り伝えたいこと

自己紹介

•  名前:黒木 亮太•  2012年1月にサイバーエージェントに入社– Patriot– ニュースSNSサービス(BtoC)– 電子書籍サービス(BtoC)

•  三度の飯も、息子も好き

Page 3: システム運用を振り返り伝えたいこと

※注意事項※これから話す内容に、悪いという概念はありません。あくまで、伝えたい事を具体的にするための例としてあげています。

Page 4: システム運用を振り返り伝えたいこと

1.拡張性は大事!

Page 5: システム運用を振り返り伝えたいこと

例1) 内製化プロジェクト

Aさん: 「BtoCサービスをやってみたいです」偉い人: 「今、内製化を進めようとしているサービスが丁度あるから、youやっちゃいなよ」

Page 6: システム運用を振り返り伝えたいこと

例1) 内製化プロジェクト

■背景•  WordPressで作成されていて、DBが依存している•  HTMLファイルキャッシュを作成していて、更新があ

る度に再作成•  WebサーバとDBサーバがセット構成なので、Web

サーバが増えるともれなくDBサーバも増える

Page 7: システム運用を振り返り伝えたいこと

例1) 内製化プロジェクト

■背景•  WordPressで作成•  HTMLファイルキャッシュを作成していて、更新があ

る度に再作成•  WebサーバとDBサーバがセット構成なので、Web

サーバが増えるともれなくDBサーバも増えるシステム限界

が訪れる

Page 8: システム運用を振り返り伝えたいこと

例1) 内製化プロジェクト

■結果•  WordPressを剥がした上で、フルスクラッチでリプレ

イス•  すでに動作しているサービスを全く同じように構築

する必要があるため、新規開発よりも難易度が上がってしまう

■教訓サービスの目標数値(DAUなど)を視野に入れたシステム設計をする

Page 9: システム運用を振り返り伝えたいこと

例2) OpenStackSwiI

■背景•  数TBの画像データを格納する•  1コンテナあたりの容量上限はないので、1コ

ンテナにすべてぶち込む

Page 10: システム運用を振り返り伝えたいこと

例2) OpenStackSwiI

■背景•  数TBの画像データを格納する•  1コンテナあたりの容量上限はないので、1コ

ンテナにすべてぶち込む性能限界が訪れる

Page 11: システム運用を振り返り伝えたいこと

例2) OpenStackSwiI

■結果•  容量上限はないが、性能面で劣化が見られるように

なったため、複数コンテナに格納するように改修•  既存データは常にreadが発生するため、データ移行

の難易度が上がる

■教訓想定容量の場合での性能をきちんと把握する

Page 12: システム運用を振り返り伝えたいこと

2.技術選定は大事!

Page 13: システム運用を振り返り伝えたいこと

例3)ORマッパー

偉い人: 「ORマッパーは共通ライブラリがあるからそれを使ってね。あと、データストアはHbaseを使ってね。」Bさん: 「・・・はい」

Page 14: システム運用を振り返り伝えたいこと

例3)ORマッパー

■背景•  javaオブジェクトをjsonデータとして永続化す

るORマッパー•  特定のフレームワークやデータストア

(Hbase,MySQLなど)に依存せずに利用できる

Page 15: システム運用を振り返り伝えたいこと

例3)ORマッパー

■背景•  javaオブジェクトをjsonデータとして永続化す

るORマッパー•  特定のフレームワークやデータストア

(Hbase,MySQLなど)に依存せずに利用できるシステム開発工数が破綻

Page 16: システム運用を振り返り伝えたいこと

例3)ORマッパー

■結果•  データを保存しよう

–  auto_incrementなどないので、アプリ側で実装–  トランザクションもないので、アプリ側でロックを実装

•  データ構造を変えよう–  新たなindexを作成するには、データを入れなおさないといけない

•  データの確認をしよう–  Jsonなので用意にデータが見れない

■教訓共通化も大事な要素だが、運用がイメージ出来ないものを採用してはいけない

Page 17: システム運用を振り返り伝えたいこと

3.リカバリを考慮するのは大事!

Page 18: システム運用を振り返り伝えたいこと

例4) 購入処理

■背景購入処理をする際に、 plaSormシステム:課金処理 agencyシステム:購入通知処理で、2つのシステム間での連携が必要。

Page 19: システム運用を振り返り伝えたいこと

例4) 購入処理

Page 20: システム運用を振り返り伝えたいこと

例4) 購入処理

Page 21: システム運用を振り返り伝えたいこと

例4) 購入処理

あれ、、購入キャンセル

が出来ない(´・ω・`)

Page 22: システム運用を振り返り伝えたいこと

例4) 購入処理

■結果•  それぞれ違うシステムのため、トランザクションを

はれない•  状況が発生した場合は、運用で返金などを行う

必要が出てしまった

■教訓APIを提供する際は、処理が失敗した場合のリカバリも考えて設計をする

Page 23: システム運用を振り返り伝えたいこと

おわり