Qpstudy201404 インフラ設計の勘所

55
インフラアーキテクチャ 設計の勘所 qpstudy 2014.04 @ ドワンゴセミナールーム @sechiro

description

 

Transcript of Qpstudy201404 インフラ設計の勘所

Page 1: Qpstudy201404 インフラ設計の勘所

インフラアーキテクチャ 設計の勘所

qpstudy 2014.04 @ ドワンゴセミナールーム

@sechiro

Page 2: Qpstudy201404 インフラ設計の勘所

せちろー (@sechiro)

• qpstudyスタッフ(2010~)

• サーバ擬人化エヴァンジェリスト(2011/02~)

• 双六工場長(2011/12~)

• シャッツキステポイントカード 45枚目

• ベターホームのお料理教室 4年目

• 呉鎮守府→大湊警備府 司令部Level 76

• 昼の仕事はコンサル、SI。昨年9月に転職しました • ニコニコ動画プレミアム会員

時代の斜め先ゆく、サーバ擬人化エヴァンジェリスト

Illustration by @ayakomuro

Page 3: Qpstudy201404 インフラ設計の勘所

今日話すこと

• ごく普通の話 • インフラ全体設計の考え方 • なんとなくやっていることを言語化 • あくまで考え方の一例

Page 4: Qpstudy201404 インフラ設計の勘所

今日話さないこと

• 新しい話 • 流行しているアーキテクチャ • アプリ設計 • 具体的な製品の選定方法 • 今期のおすすめのアニメ

Page 5: Qpstudy201404 インフラ設計の勘所

オープニングポエム

Page 6: Qpstudy201404 インフラ設計の勘所

「守破離」

まずは師匠に言われたこと、型を「守る」ところから修行が始まる。その後、その型を自分と照らし合わせて研究することにより、自分に合った、より良いと思われる型をつくることにより既存の型を「破る」。最終的には師匠の型、そして自分自身が造り出した型の上に立脚した個人は、自分自身と技についてよく理解しているため、型から自由になり、型から「離れ」て自在になることができる。

–Wikipedia「守破離」

Page 7: Qpstudy201404 インフラ設計の勘所

今日は「型」を考えてみます

Page 8: Qpstudy201404 インフラ設計の勘所

インフラ全体設計の基本的なアプローチ

Page 9: Qpstudy201404 インフラ設計の勘所

どこから設計を考えますか?

Page 10: Qpstudy201404 インフラ設計の勘所

インフラ設計のインプット

機能要件 非機能要件

アプリ機能 インフラ要件

インフラ要件は、機能要件から導き出されたアプリ機能と 非機能要件から決まる

Page 11: Qpstudy201404 インフラ設計の勘所

機能要件

• システムによって実現されるべき機能 • 業務システムであれば、業務要件 • 自社サービスであれば、提供サービス内容

Page 12: Qpstudy201404 インフラ設計の勘所

たとえばこんな要望

• パ◯ドラみたいなゲームつくってよ! • Excelでやっていることを業務アプリにしたい

• Amaz◯nみたいなECサイトをつくりたい

Page 13: Qpstudy201404 インフラ設計の勘所

アプリ機能ーECサイトの場合 

商品一覧画面

顧客情報管理商品詳細画面

ユーザログイン 商品マスタ管理

購入履歴管理ショッピング カート

商品注文処理

管理機能

Amaz◯nみたいなECサイトをつくりたい

こういった機能を実装可能なインフラを検討する

Page 14: Qpstudy201404 インフラ設計の勘所

非機能要件

• 機能要件以外の要件、、、 • 対象システムがサービスを提供するためにシステム基盤側に要求される要件 • 可用性、性能、拡張性、運用性など、表に出ている機能以外の要件

• 検討項目の洗い出しは後半で触れます

Page 15: Qpstudy201404 インフラ設計の勘所

非機能要件の例• 24時間365日無停止

• 障害復旧は2時間以内とすること • 同時接続数増加に無停止で対応できること • 3秒以内にユーザにレスポンスを返すこと • システムリソース使用量を監視し、リソース枯渇前にアラートを上げること などなど…

Page 16: Qpstudy201404 インフラ設計の勘所

前半お疲れさまです

「厄除け! インフラエンジニアかるた」は、「Crystal Dew World」とのコラボによるすべてのエンジニアのためのかるた。   水晶雫のイラストは、ライトノベルの挿絵等で活躍されている桐野霞さんの描きおろし。超人気声優、五十嵐裕美さんによる読み札CDも大好評販売中!

CM

https://sites.google.com/site/sgijinka/itkarutahttp://suishoshizuku.com/

CrystalDiskInfo Shizuku Editionは こちらから

Page 17: Qpstudy201404 インフラ設計の勘所

要件をインフラ設計に落とす

Page 18: Qpstudy201404 インフラ設計の勘所

ベースは「Web三層モデル」

DBAPWeb

ベースは先人の知恵に乗っかりましょう

Page 19: Qpstudy201404 インフラ設計の勘所

三つの層の基本的な役割分担

DB

AP

Web• クライアントとの接続を捌く • 静的なデータ配信

• 業務ロジック処理 • 動的データの生成

• データの保存と管理 • データの整合性の保証

Page 20: Qpstudy201404 インフラ設計の勘所

なぜこの三層に分けるのか

• 層ごとの目的に特化したSWの組み合わせ • 共通モデルを採用し、各層ごとに入替え可能に

• Web: Apache ⇔ Nginx

• AP: Ruby on Rail/unicorn ⇔ Django/gunicorn

• DB: MySQL ⇔ PostgreSQL

Page 21: Qpstudy201404 インフラ設計の勘所

データ管理の観点からの三層モデル

DB

AP

Web

保持データ 基本特性

静的データ 一時データ

アプリケーションコード 一時データ

データロストしても再構築可能 スケールアウト容易 負荷分散と冗長化が一体

データロストするとシステム崩壊 データ整合性確保のため分散困難 HAクラスタで冗長化

データロストしても再構築可能 スケールアウト容易 負荷分散と冗長化が一体

永続データ トランザクションデータ

可用性確保戦略の違い

永続データをDB層に集中し、データ管理を容易に

Page 22: Qpstudy201404 インフラ設計の勘所

アプリ機能とインフラ設計

Page 23: Qpstudy201404 インフラ設計の勘所

アプリ機能ーECサイトの場合 

商品一覧画面

顧客情報管理商品詳細画面

ユーザログイン 商品マスタ管理

購入履歴管理ショッピング カート

商品注文処理

管理機能

Amaz◯nみたいなECサイトをつくりたい

Page 24: Qpstudy201404 インフラ設計の勘所

アプリ機能ーECサイトの場合 

商品一覧画面

顧客情報管理商品詳細画面

ユーザログイン 商品マスタ管理

購入履歴管理ショッピング カート

商品注文処理

管理機能

Amaz◯nみたいなECサイトをつくりたい

Page 25: Qpstudy201404 インフラ設計の勘所

「商品詳細画面」機能検討

DBAPWebブラウザ

商品詳細画面要求(商品ID)

商品ページ要求(商品ID)商品検索(商品ID)

商品情報商品詳細ページ

商品詳細ページ表示

商品画像取得

商品画像

Page 26: Qpstudy201404 インフラ設計の勘所

「商品注文処理」機能検討

DBAPWebブラウザ

商品注文依頼(ユーザID, 商品ID)

商品注文(ユーザID, 商品ID)

商品在庫減(商品ID)商品購入(ユーザID)

商品注文完了ページ表示

処理成功商品注文完了

DB書き込み

トランザクション処理が必要

Page 27: Qpstudy201404 インフラ設計の勘所

もうひと頑張りです。

エンジニア版人狼ゲーム、『汝はエンジニアのような名状しがたい何かなりや?』 !舞台は、デスマーチ末期を舞台にした猜疑心うず巻くプロジェクトルーム、あなたは果たして生き延びることができるか!?

CM

https://sites.google.com/site/sgijinka/nanikanariya

Page 28: Qpstudy201404 インフラ設計の勘所

非機能要件のチェック

Page 29: Qpstudy201404 インフラ設計の勘所

非機能要件の検討

• 対象システムがサービスを提供するためにシステム基盤側に要求される要件

• 非機能要件は、業務要件ややりたいサービス自体から導かれるものではないため、過去設計資料などと比較して抜け漏れがないかチェックが必要

Page 30: Qpstudy201404 インフラ設計の勘所

「非機能要求グレード」の利用

• 「非機能要求グレード」は、IPAが公開している非機能要件とそれを満たすモデルシステムをまとめた資料

• 非機能要件の項目が網羅されており、抜け漏れチェックのベースにできる

• SI業界の標準なので、これを網羅していれば、SI的には十分に検討したと説明できる

Page 31: Qpstudy201404 インフラ設計の勘所

「非機能要求グレード」の概観こんな感じの資料

http://www.ipa.go.jp/sec/softwareengineering/reports/20100416.html

Copyright (c) 2010-2014 IPA

Page 32: Qpstudy201404 インフラ設計の勘所

「非機能要求グレード」の大項目

• 可用性 • 性能・拡張性 • 運用・保守性 • 移行性 • セキュリティ • システム環境・エコロジー

Page 33: Qpstudy201404 インフラ設計の勘所

可用性

• 24時間365日無停止

• 障害復旧は2時間以内とすること

• サーバを冗長化し、SPOFを作らないこと• どのぐらいの停止は許容範囲か、トラブった時にどのぐらいのリードタイムで対応すべきかなどを検討

• 「冗長化されたサーバ群の片系だけが落ちただけなら翌営業日対応OK」といった形で、運用コスト見合いで具体化

Page 34: Qpstudy201404 インフラ設計の勘所

性能・拡張性

• 3秒以内にユーザにレスポンスを返すこと • サービス開始当初の想定ユーザ数は◯◯人 • 同時接続数増加に無停止で対応できること

• サーバ負荷増大時に、スケールアップ、スケールアウトのどちらで対応するかシステムアーキテクチャに応じて選択

• 個々のパーツの性能の積み上げと負荷試験から、システムの性能とボトルネックを見積もる

Page 35: Qpstudy201404 インフラ設計の勘所

運用・保守性

• システムリソース使用量を監視し、リソース枯渇前にアラートを上げること

• 24時間365日の保守体制を構築すること

• 月に1時間の計画停止時間を設定する• サービス開始、運用体制、引き継ぎ、サービス終了のことまで考えてシステムを設計する。教育への考慮も必要

• 構築と運用のコストはトレードオフの関係。構築コストの削減は、運用コストに跳ね返り「運用でカバー」が必要になる

Page 36: Qpstudy201404 インフラ設計の勘所

DB

今回の採用アーキテクチャ

APWeb

APWeb

APWeb

DB RDBMS

Load Balancer

HAクラスタ

スケールアウト

監視 サーバ

Page 37: Qpstudy201404 インフラ設計の勘所

Web三層モデルを崩す時 ー『破』の例

Page 38: Qpstudy201404 インフラ設計の勘所

たとえば、Hadoop

• 大量データ処理高速化のため、AP(MapReduce/YARN) + DB(HDFS)を密結合したアーキテクチャをとっている

Page 39: Qpstudy201404 インフラ設計の勘所

基本を押さえれば応用も自由

• 用途によって、三層モデルの利点を捨ててもよい

• ただし、なぜ、そのアーキテクチャを選んだか説明できるように

• 基本を押さえてこその「破」

Page 40: Qpstudy201404 インフラ設計の勘所

なぜ、その設計なのか 説明できることが重要

Page 41: Qpstudy201404 インフラ設計の勘所

–室見立華

“私言ったわよね、一からコンフィグを作れって”

夏海公司『なれる! SE』第1巻より

Page 42: Qpstudy201404 インフラ設計の勘所

インフラエンジニアの 説明責任

Page 43: Qpstudy201404 インフラ設計の勘所

「型」の引き出しを増やす

Page 44: Qpstudy201404 インフラ設計の勘所

インフラのデザインパターン

AWSクラウドデザインパターンとか

!

http://aws.clouddesignpattern.org/

Page 45: Qpstudy201404 インフラ設計の勘所

まとめ

Page 46: Qpstudy201404 インフラ設計の勘所

インフラ設計のインプット

機能要件 非機能要件

アプリ機能 インフラ要件

インフラ要件は、機能要件から導き出されたアプリ機能と 非機能要件から決まる

Page 47: Qpstudy201404 インフラ設計の勘所

基本は「Web三層モデル」

DBAPWeb

Page 48: Qpstudy201404 インフラ設計の勘所

DB

今回の採用アーキテクチャ

APWeb

APWeb

APWeb

DB RDBMS

Load Balancer

HAクラスタ

スケールアウト

監視 サーバ

Page 49: Qpstudy201404 インフラ設計の勘所

『離』

Page 50: Qpstudy201404 インフラ設計の勘所

「守破離」

まずは師匠に言われたこと、型を「守る」ところから修行が始まる。その後、その型を自分と照らし合わせて研究することにより、自分に合った、より良いと思われる型をつくることにより既存の型を「破る」。最終的には師匠の型、そして自分自身が造り出した型の上に立脚した個人は、自分自身と技についてよく理解しているため、型から自由になり、型から「離れ」て自在になることができる。

–Wikipedia「守破離」

Page 51: Qpstudy201404 インフラ設計の勘所

–菊川仁義

“オレはようやくのぼりはじめたばかりだからな

このはてしなく遠い男坂をよ…”

車田正美『男坂』最終話より

Page 52: Qpstudy201404 インフラ設計の勘所

(未完)

Page 53: Qpstudy201404 インフラ設計の勘所

ありがとうございました。

Page 54: Qpstudy201404 インフラ設計の勘所

Q&A

Twitterでなんの前触れもなく始まった『インフラエンジニア双六』を基にしたボードゲーム。 !遊びながら、楽しくインフラエンジニアの生き様を体験することができます。職場の新人教育にいかがでしょうか。

CM

https://sites.google.com/site/sgijinka/sugoroku

Page 55: Qpstudy201404 インフラ設計の勘所

Special Thanks

今回は、Keynote のだいたいいい感じになるテンプレート「Azusa」を使用させていただきました。ありがとうございました。 !「Azusa」紹介URL

http://memo.sanographix.net/post/82160791768