qpstudy 2014.04
ミドルウェア設計の勘所
qpstudy 2014-04-19
@nekoruri
Who are you, @nekoruri ?
秋葉原生まれ大手町育ちの歌って踊れる
江戸っ子インフラエンジニア。
0と1が紡ぐ「ゆるやかなつながり」に魅せられ早20年、
SNSとCGMの力で世界を幸福にするのがライフワーク。
市民、幸福は義...
IaaSシステム構築/管理ガイド
第4章 クラウド環境の運用における監視と可視化
・安定運用のための運用監視
・運用監視の方法
・ニフティクラウドとOSの標準機能で
サーバー監視
・Muninでかんたんリソース監視
・統合監視ツールZabbix...
なかやま まさひろ
アメーバ事業本部
クロスイノベーション室
Ameba全体の「横軸」改善チーム
・ゲーム共通のランキング
・サービス間の回遊
「ミドルウェア」
?
「ミドルウェア」
コンピュータの基本的な制御を
行うオペレーティングシステム
(OS)と、各業務処理を行う
アプリケーションソフトウェア
との中間に入るソフトウェア
http://ja.wikipedia.org/wiki/ミドルウェア
「ミドルウェア」
コンピュータの基本的な制御を
行うオペレーティングシステム
(OS)と、各業務処理を行う
アプリケーションソフトウェア
との中間に入るソフトウェア
http://ja.wikipedia.org/wiki/ミドルウェア
おさらい:Web三層モデル
Web AP DB
おさらい:Web三層モデル
Web AP DB
• クライアント
との接続を捌
く
• 静的なデータ
配信
• 業務ロジック
処理
• 動的データの
生成
• データの保存
と管理
• データの整合
性の保証
ミドルウェアの範囲
Web AP DB
ハード
ウェア
ハード
ウェア
ハード
ウェア
OS OS OS
Web
サーバ
AP
サーバ
DB
サーバ
アプリ
ケーション
ミドルウェアの範囲
Web AP DB
ハード
ウェア
ハード
ウェア
ハード
ウェア
OS OS OS
アプリ
ケーション
Web
サーバ
AP
サーバ
DB
サーバ
ミドルウェアの範囲
Web AP DB
ハード
ウェア
ハード
ウェア
ハード
ウェア
OS OS OS
アプリ
ケーション
Web
サーバ
AP
サーバ
DB
サーバ
ハードウェア、OS、アプリケーション以外の
すべて
アプリケーション
Web AP DB
ハード
ウェア
ハード
ウェア
ハード
ウェア
OS OS OS
アプリ
ケーション
Web
サーバ
AP
サーバ
DB
サーバ
ビジネスの価値そのもの
アプリケーション
Web AP DB
ハード
ウェア
ハード
ウェア
ハード
ウェア
OS OS OS
アプリ
ケーション
Web
サーバ
AP
サーバ
DB
サーバ
ビジネスの価値そのもの
機能要件 ⇒ アプリの機能
ミドルウェアの範囲
Web AP DB
ハード
ウェア
ハード
ウェア
ハード
ウェア
OS OS OS
アプリ
ケーション
Web
サーバ
AP
サーバ
DB
サーバ
ハードウェア、OS、アプリケーション以外の
すべて
ミドルウェア
=
OSの上で
アプリケーションを動かすために
必要なすべてのソフトウェア
ミドルウェアの設計
=
アプリケーションを動かすために
必要なすべてのソフトウェアを
「どのように」
組み合わせるか決める
ミドルウェアの設計
=アプリケーションを動かすために
必要なすべてのソフトウェアを
「どのように」
組み合わせるか決める
要件を満たすシステムを作る
ミドルウェアの選択
ミドルウェアの選択
1. 機能要件によるもの
1. 非機能要件によるもの
○○がしたい
⇒ その実現に□□が最適
障害復旧は××時間以内にしたい
⇒ その実現に△△が最適
今回の採用アーキテクチャ
Load
Balancer
Web AP
Web AP
Web AP
DB
DB
監視
サーバ
スケールアウト
HAクラス
タ
今回の採用アーキテクチャ
Load
Balancer
Web AP
Web AP
Web AP
DB
DB
監視
サーバ
スケールアウト
HAクラス
タ
①
②
③
今回の採用アーキテクチャ
Load
Balancer
Web AP
Web AP
Web AP
DB
DB
監視
サーバ
スケールアウト
HAクラス
タ
①
②
③
Web+AP層のインフラ設計
• 保持データ
– Web: 静的データ、一時データ
– AP: アプリケーションコード、一時データ
• 基本特性
– データロストしても再構築可能
– スケールアウト容易
– 負荷分散と冗長化が一体
APサーバの役割
• アプリケーションを動かす
– 業務ロジック処理
– 動的データの生成
• 何らかの言語によるプログラムを動かす
– Webからのリクエストに応える
– 必要に応じてDBにアクセスする
APサーバの選択
• 言語環境による縛り(機能要件)
⇒ 言語ごとのAPサーバ
– Java: Tomcat, Glassfish, Jetty
– Ruby: Unicorn, Puma, Phusion Passenger
– PHP: m...
APサーバの選択?
• 言語環境による縛り(機能要件)
⇒ 言語ごとのAPサーバ
– Java: Tomcat, Glassfish, Jetty
– Ruby: Unicorn, Puma, Phusion Passenger
– PHP: ...
Webサーバの役割
• クライアントとの接続を捌く
– 時間の掛かる処理のAPサーバ応答待ち
• 静的なデータ配信
– 3G回線のスマホがちんたら長時間接続
⇒ 豊富な同時接続数
– LAN接続のPCが大量の画像を取得
⇒ 高速なスループット
C10K(同時接続数の爆発)問題
• 大量のクライアントからの同時接続
– 何も考えないApache(prefork設定)では無理
– nginxやApache event_mpmの検討
• node.jsでAPサーバを直に公開
– 非同期モデ...
HTTP KeepAlive
• ブラウザーWeb間は有効が望ましい
– TCPやSSLのハンドシェークにかかる時間
– TCP接続中のパケット落ちのリカバリ時間
(1秒〜3秒)
⇒ スループットに影響
• WebーAP間は無効が望ましい
– ...
Web+AP層のインフラ設計
• 保持データ
– Web: 静的データ、一時データ
– AP: アプリケーションコード、一時データ
• 基本特性
– データロストしても再構築可能
– スケールアウト容易
– 負荷分散と冗長化が一体
Web+AP層はStatelessに保つ
• データを持たない
– データは全てDBに保存
– ログも全てDB等に送信
• データの同期なくサーバを追加できる
– 非機能要件:性能・拡張性
同時接続数増加に無停止で対応できること
• いつサーバ...
今回の採用アーキテクチャ
Load
Balancer
Web AP
Web AP
Web AP
DB
DB
監視
サーバ
スケールアウト
HAクラス
タ
①
②
③
DB層のインフラ設計
• 保持データ
– 永続データ
– トランザクションデータ
• 基本特性
– データロストするとシステム崩壊
– データ整合性確保のため分散困難
– HAクラスタで冗長化
DB層のインフラ設計
• 保持データ
– 永続データ
– トランザクションデータ
• 基本特性
– データロストするとシステム崩壊
– データ整合性確保のため分散困難
– HAクラスタで冗長化
死ぬ気でデータを守れ
HAクラスタ
• DBサーバの冗長化手法の一つ
– 複数台(通常は2台)でペアを組む
– 通常はその片方(サーバA)が仕事をする
– もう片方(サーバB)は仕事をしない代わり
に、サーバAが動いているか延々とチェック
– サーバAが突然の死
–...
データの同期
• Shared disk model
– ハードウェアレベルで高度に冗長化された
頑丈な共有ディスクにA/Bともに接続
– サーバAが死んだらサーバBが読みに行く
サーバA サーバB
データの同期
• Shared nothing model
– サーバAは、処理の結果変更された内容を
ずっとサーバBに送り続ける
– 十分に速ければ、サーバAと同じデータを
サーバB上でも持っていることになる
サーバA サーバB
ボトルネックとの闘い
• CAP定理:以下の3つは両立しない
1. 一貫性
2. 可用性
3. 分断耐性
• 一般的なDBでざっくりいうと
1. 一貫性と
2. 可用性を求めると、
3. 複数台に分散させることができない
CAP定理の抜け道
• どうしても1台じゃ厳しいヽ(;´Д`)ノ
– キャッシュ、レプリケーション
⇒ 一貫性への影響
– 機能分割(機能分割)、水平分割
⇒ 開発効率や一貫性への影響
– 一貫性を捨て、結果整合性で妥協
⇒ 分散DBの活用
分散DB(NoSQL)の活用
• 「サーバを増やすほど速くなる」
– そんな銀の弾丸があったらOracleが買収し(略
• 分散DBの「性質」を深く理解
– どんなアクセスに向いているのか
– どんなデータに向いているのか
– 合わないものを使...
今回の採用アーキテクチャ
Load
Balancer
Web AP
Web AP
Web AP
DB
DB
監視
サーバ
スケールアウト
HAクラス
タ
①
②
③
監視サーバの役割
1. 障害の発見、通知
– サービスの「生存」を監視、通知
– 冗長化サーバの一部だけの故障も検知
2. メトリクス(リソース状況等)の取得
– CPUやメモリの利用率
– ディスク空き容量
– レスポンスを返し終わるまでの応...
ボトルネックの把握
• 様々なメトリクスの取得
– リクエスト数、ネットワークトラフィック
– DBの内部パラメータ
⇒ ボトルネックの把握、解消
ボトルネックの把握
• 様々なメトリクスの取得
– リクエスト数、ネットワークトラフィック
– DBの内部パラメータ
⇒ ボトルネックの把握、解消
推測するな
計測せよ
監視ツールの選択
• 生存監視
– Nagios、Mon、Sensu
• メトリクス取得
– Munin、GrowthForecast、Cacti
• 統合監視
– Zabbix
監視ツールの選択
• 生存監視
– Nagios、Mon、Sensu
• メトリクス取得
– Munin、GrowthForecast、Cacti
• 統合監視
– Zabbix
とにかく手軽
必要な機能が揃っている
ミドルウェアと生きる
インフラエンジニアの主戦場
• 下の層は手を動かすことが減った
– ハードウェアの仮想化
– OSはRHEL/CentOS、Ubuntuに集約
• 最もエキサイティングな分野
– 新しいミドルウェアが毎年いくつも登場
– 性質を見抜き、最適な場...
どうすればこの先生きのこれるか
どうすればこの先生きのこれるか
• 人は考えることに注力しよう!
– 利用できることは利用しよう
• IaaS、PaaS、BaaS
• AWS等クラウド事業者の提供するコンポーネント
– 自動化できることは自動化しよう
• Puppet、Che...
どうすればこの先生きのこれるか
• ミドルウェアの「性質」をつかもう!
– データベースとか分散DBとかMQとか
• 得意とするデータの形式
• 更新の方法・頻度、取得の方法・頻度
• ボトルネックはどこか
– WebサーバとかAPサーバとか
...
どうすればこの先生きのこれるか
• コンピュータサイエンスを学ぼう!
– 基礎を知っている人は強い
– 新しいものが出てもすぐに順応できる
– むしろ余計なことを覚えずに済む
– 経験に理詰めを加えることで最強に見える
「推測するな、計測せよ」...
どうすればこの先生きのこれるか
• セキュリティの知識をつけよう
– 情報セキュリティと、暗号化技術
– 脆弱性のリスク分析ができる
– 私たちは、
何を
何から
どのように
守りたいのか?
The Heartbleed Bug
CVE-2014-0160
TLS heartbeat read overrun
2014-04-07(現地時刻) 脆弱性公表
2014-04-08 JPCERT/CC等から注意喚起
2014-04-13 ...
The Heartbleed Bug
CVE-2014-0160
TLS heartbeat read overrun
2014-04-07(現地時刻) 脆弱性公表
2014-04-08 JPCERT/CC等から注意喚起
2014-04-13 ...
どうすればこの先生きのこれるか
• セキュリティの知識をつけよう
– 情報セキュリティと、暗号化技術
– 脆弱性のリスク分析ができる
– 私たちは、セキュリティ技術を使って
何を
何から
どのように
守りたいのか?
どうすればこの先生きのこれるか
• 新しい情報へのアンテナを張り続けよう
– 新しい脆弱性
• 極めて緊急性の高い脆弱性にもすぐ対応できる
• 読み解くためにはセキュリティの知識が必須
• Heartbleedでも詳細解説出るには数日
– 新し...
!?
どうすればこの先生きのこれるか
• 新しい情報へのアンテナを張り続けよう
– 新しい脆弱性
• 極めて緊急性の高い脆弱性にもすぐ対応できる
• 読み解くためにはセキュリティの知識が必須
• Heartbleedでも詳細解説出るには数日
– 新し...
どうすればこの先生きのこれるか
• 情報交換をしよう
– ブログを書こう
• 突っ込まれる──だがそれが良い。
• リファラー見てニヤニヤできる。
– 技術の話ができる相手を見つけよう
• Twitter、Facebook
• エンジニア勉強会...
まとめ
• 「ミドルウェア」ってなによ?
– OSとアプリケーションの間のすべて
• Web3層モデルで何考えればいいの?
– Web+APの中にデータを持たない
– DBのデータを気合いで守る
– 推測するな、計測せよ
• ミドルウェアと付き...
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Upcoming SlideShare
Loading in...5
×

qpstudy 2014.04 ミドルウェア設計の勘所

14,090

Published on

qpstudy 2014.04 ミドルウェア設計の勘所

Published in: Technology
1 Comment
46 Likes
Statistics
Notes
  • hello, my name is miss lynda i am a single girl i like to make new friends please contact me by my Email address > weahlynda@hotmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
14,090
On Slideshare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
104
Comments
1
Likes
46
Embeds 0
No embeds

No notes for slide

qpstudy 2014.04 ミドルウェア設計の勘所

  1. 1. qpstudy 2014.04 ミドルウェア設計の勘所 qpstudy 2014-04-19 @nekoruri
  2. 2. Who are you, @nekoruri ? 秋葉原生まれ大手町育ちの歌って踊れる 江戸っ子インフラエンジニア。 0と1が紡ぐ「ゆるやかなつながり」に魅せられ早20年、 SNSとCGMの力で世界を幸福にするのがライフワーク。 市民、幸福は義務です。あなたは幸福ですか? http://twitter.com/nekoruri http://facebook.com/masapon http://d.hatena.ne.jp/nekoruri/
  3. 3. IaaSシステム構築/管理ガイド 第4章 クラウド環境の運用における監視と可視化 ・安定運用のための運用監視 ・運用監視の方法 ・ニフティクラウドとOSの標準機能で サーバー監視 ・Muninでかんたんリソース監視 ・統合監視ツールZabbixによる監視基盤 の構築 ・その他の監視ツール ・メトリクス収集・解析サービス ・クラウドと監視とDevOps
  4. 4. なかやま まさひろ アメーバ事業本部 クロスイノベーション室 Ameba全体の「横軸」改善チーム ・ゲーム共通のランキング ・サービス間の回遊
  5. 5. 「ミドルウェア」 ?
  6. 6. 「ミドルウェア」 コンピュータの基本的な制御を 行うオペレーティングシステム (OS)と、各業務処理を行う アプリケーションソフトウェア との中間に入るソフトウェア http://ja.wikipedia.org/wiki/ミドルウェア
  7. 7. 「ミドルウェア」 コンピュータの基本的な制御を 行うオペレーティングシステム (OS)と、各業務処理を行う アプリケーションソフトウェア との中間に入るソフトウェア http://ja.wikipedia.org/wiki/ミドルウェア
  8. 8. おさらい:Web三層モデル Web AP DB
  9. 9. おさらい:Web三層モデル Web AP DB • クライアント との接続を捌 く • 静的なデータ 配信 • 業務ロジック 処理 • 動的データの 生成 • データの保存 と管理 • データの整合 性の保証
  10. 10. ミドルウェアの範囲 Web AP DB ハード ウェア ハード ウェア ハード ウェア OS OS OS Web サーバ AP サーバ DB サーバ アプリ ケーション
  11. 11. ミドルウェアの範囲 Web AP DB ハード ウェア ハード ウェア ハード ウェア OS OS OS アプリ ケーション Web サーバ AP サーバ DB サーバ
  12. 12. ミドルウェアの範囲 Web AP DB ハード ウェア ハード ウェア ハード ウェア OS OS OS アプリ ケーション Web サーバ AP サーバ DB サーバ ハードウェア、OS、アプリケーション以外の すべて
  13. 13. アプリケーション Web AP DB ハード ウェア ハード ウェア ハード ウェア OS OS OS アプリ ケーション Web サーバ AP サーバ DB サーバ ビジネスの価値そのもの
  14. 14. アプリケーション Web AP DB ハード ウェア ハード ウェア ハード ウェア OS OS OS アプリ ケーション Web サーバ AP サーバ DB サーバ ビジネスの価値そのもの 機能要件 ⇒ アプリの機能
  15. 15. ミドルウェアの範囲 Web AP DB ハード ウェア ハード ウェア ハード ウェア OS OS OS アプリ ケーション Web サーバ AP サーバ DB サーバ ハードウェア、OS、アプリケーション以外の すべて
  16. 16. ミドルウェア = OSの上で アプリケーションを動かすために 必要なすべてのソフトウェア
  17. 17. ミドルウェアの設計 = アプリケーションを動かすために 必要なすべてのソフトウェアを 「どのように」 組み合わせるか決める
  18. 18. ミドルウェアの設計 =アプリケーションを動かすために 必要なすべてのソフトウェアを 「どのように」 組み合わせるか決める 要件を満たすシステムを作る
  19. 19. ミドルウェアの選択
  20. 20. ミドルウェアの選択 1. 機能要件によるもの 1. 非機能要件によるもの ○○がしたい ⇒ その実現に□□が最適 障害復旧は××時間以内にしたい ⇒ その実現に△△が最適
  21. 21. 今回の採用アーキテクチャ Load Balancer Web AP Web AP Web AP DB DB 監視 サーバ スケールアウト HAクラス タ
  22. 22. 今回の採用アーキテクチャ Load Balancer Web AP Web AP Web AP DB DB 監視 サーバ スケールアウト HAクラス タ ① ② ③
  23. 23. 今回の採用アーキテクチャ Load Balancer Web AP Web AP Web AP DB DB 監視 サーバ スケールアウト HAクラス タ ① ② ③
  24. 24. Web+AP層のインフラ設計 • 保持データ – Web: 静的データ、一時データ – AP: アプリケーションコード、一時データ • 基本特性 – データロストしても再構築可能 – スケールアウト容易 – 負荷分散と冗長化が一体
  25. 25. APサーバの役割 • アプリケーションを動かす – 業務ロジック処理 – 動的データの生成 • 何らかの言語によるプログラムを動かす – Webからのリクエストに応える – 必要に応じてDBにアクセスする
  26. 26. APサーバの選択 • 言語環境による縛り(機能要件) ⇒ 言語ごとのAPサーバ – Java: Tomcat, Glassfish, Jetty – Ruby: Unicorn, Puma, Phusion Passenger – PHP: mod_php5, php-fpm – Perl: Starman, Twiggy, mod_perl
  27. 27. APサーバの選択? • 言語環境による縛り(機能要件) ⇒ 言語ごとのAPサーバ – Java: Tomcat, Glassfish, Jetty – Ruby: Unicorn, Puma, Phusion Passenger – PHP: mod_php5, php-fpm – Perl: Starman, Twiggy, mod_perl • Webサーバ(Apache, nginx) の一部となっ て動くAPサーバがある ⇒ 実質的にWebサーバの選択も縛る
  28. 28. Webサーバの役割 • クライアントとの接続を捌く – 時間の掛かる処理のAPサーバ応答待ち • 静的なデータ配信 – 3G回線のスマホがちんたら長時間接続 ⇒ 豊富な同時接続数 – LAN接続のPCが大量の画像を取得 ⇒ 高速なスループット
  29. 29. C10K(同時接続数の爆発)問題 • 大量のクライアントからの同時接続 – 何も考えないApache(prefork設定)では無理 – nginxやApache event_mpmの検討 • node.jsでAPサーバを直に公開 – 非同期モデルならば直接C10Kが扱える – 静的データは別ドメインのWebサーバ
  30. 30. HTTP KeepAlive • ブラウザーWeb間は有効が望ましい – TCPやSSLのハンドシェークにかかる時間 – TCP接続中のパケット落ちのリカバリ時間 (1秒〜3秒) ⇒ スループットに影響 • WebーAP間は無効が望ましい – KeepAlive = 処理が終わった後も接続を残す – APサーバの同時接続数を無駄に消費
  31. 31. Web+AP層のインフラ設計 • 保持データ – Web: 静的データ、一時データ – AP: アプリケーションコード、一時データ • 基本特性 – データロストしても再構築可能 – スケールアウト容易 – 負荷分散と冗長化が一体
  32. 32. Web+AP層はStatelessに保つ • データを持たない – データは全てDBに保存 – ログも全てDB等に送信 • データの同期なくサーバを追加できる – 非機能要件:性能・拡張性 同時接続数増加に無停止で対応できること • いつサーバが壊れてもなにも失わない
  33. 33. 今回の採用アーキテクチャ Load Balancer Web AP Web AP Web AP DB DB 監視 サーバ スケールアウト HAクラス タ ① ② ③
  34. 34. DB層のインフラ設計 • 保持データ – 永続データ – トランザクションデータ • 基本特性 – データロストするとシステム崩壊 – データ整合性確保のため分散困難 – HAクラスタで冗長化
  35. 35. DB層のインフラ設計 • 保持データ – 永続データ – トランザクションデータ • 基本特性 – データロストするとシステム崩壊 – データ整合性確保のため分散困難 – HAクラスタで冗長化 死ぬ気でデータを守れ
  36. 36. HAクラスタ • DBサーバの冗長化手法の一つ – 複数台(通常は2台)でペアを組む – 通常はその片方(サーバA)が仕事をする – もう片方(サーバB)は仕事をしない代わり に、サーバAが動いているか延々とチェック – サーバAが突然の死 – サーバBがAの死に気付く – サーバBが仕事を始める 10分程度
  37. 37. データの同期 • Shared disk model – ハードウェアレベルで高度に冗長化された 頑丈な共有ディスクにA/Bともに接続 – サーバAが死んだらサーバBが読みに行く サーバA サーバB
  38. 38. データの同期 • Shared nothing model – サーバAは、処理の結果変更された内容を ずっとサーバBに送り続ける – 十分に速ければ、サーバAと同じデータを サーバB上でも持っていることになる サーバA サーバB
  39. 39. ボトルネックとの闘い • CAP定理:以下の3つは両立しない 1. 一貫性 2. 可用性 3. 分断耐性 • 一般的なDBでざっくりいうと 1. 一貫性と 2. 可用性を求めると、 3. 複数台に分散させることができない
  40. 40. CAP定理の抜け道 • どうしても1台じゃ厳しいヽ(;´Д`)ノ – キャッシュ、レプリケーション ⇒ 一貫性への影響 – 機能分割(機能分割)、水平分割 ⇒ 開発効率や一貫性への影響 – 一貫性を捨て、結果整合性で妥協 ⇒ 分散DBの活用
  41. 41. 分散DB(NoSQL)の活用 • 「サーバを増やすほど速くなる」 – そんな銀の弾丸があったらOracleが買収し(略 • 分散DBの「性質」を深く理解 – どんなアクセスに向いているのか – どんなデータに向いているのか – 合わないものを使うと不幸になります(断言)
  42. 42. 今回の採用アーキテクチャ Load Balancer Web AP Web AP Web AP DB DB 監視 サーバ スケールアウト HAクラス タ ① ② ③
  43. 43. 監視サーバの役割 1. 障害の発見、通知 – サービスの「生存」を監視、通知 – 冗長化サーバの一部だけの故障も検知 2. メトリクス(リソース状況等)の取得 – CPUやメモリの利用率 – ディスク空き容量 – レスポンスを返し終わるまでの応答時間 – どうもおかしい=閾値を超えたら通知
  44. 44. ボトルネックの把握 • 様々なメトリクスの取得 – リクエスト数、ネットワークトラフィック – DBの内部パラメータ ⇒ ボトルネックの把握、解消
  45. 45. ボトルネックの把握 • 様々なメトリクスの取得 – リクエスト数、ネットワークトラフィック – DBの内部パラメータ ⇒ ボトルネックの把握、解消 推測するな 計測せよ
  46. 46. 監視ツールの選択 • 生存監視 – Nagios、Mon、Sensu • メトリクス取得 – Munin、GrowthForecast、Cacti • 統合監視 – Zabbix
  47. 47. 監視ツールの選択 • 生存監視 – Nagios、Mon、Sensu • メトリクス取得 – Munin、GrowthForecast、Cacti • 統合監視 – Zabbix とにかく手軽 必要な機能が揃っている
  48. 48. ミドルウェアと生きる
  49. 49. インフラエンジニアの主戦場 • 下の層は手を動かすことが減った – ハードウェアの仮想化 – OSはRHEL/CentOS、Ubuntuに集約 • 最もエキサイティングな分野 – 新しいミドルウェアが毎年いくつも登場 – 性質を見抜き、最適な場所に投入 – ソフトウェア単位では数年で陳腐化
  50. 50. どうすればこの先生きのこれるか
  51. 51. どうすればこの先生きのこれるか • 人は考えることに注力しよう! – 利用できることは利用しよう • IaaS、PaaS、BaaS • AWS等クラウド事業者の提供するコンポーネント – 自動化できることは自動化しよう • Puppet、Chef • Vagrant • 継続的デリバリー – 抽象化できることは抽象化しよう • IaaS • Docker
  52. 52. どうすればこの先生きのこれるか • ミドルウェアの「性質」をつかもう! – データベースとか分散DBとかMQとか • 得意とするデータの形式 • 更新の方法・頻度、取得の方法・頻度 • ボトルネックはどこか – WebサーバとかAPサーバとか • キャッシュ • 接続の管理方法 • SSLアクセラレーション – 最適な場所に最適なものを!パズル!
  53. 53. どうすればこの先生きのこれるか • コンピュータサイエンスを学ぼう! – 基礎を知っている人は強い – 新しいものが出てもすぐに順応できる – むしろ余計なことを覚えずに済む – 経験に理詰めを加えることで最強に見える 「推測するな、計測せよ」 1.経験から仮説をたてる 2.計測する 3.結果をもとに理詰めで対策する
  54. 54. どうすればこの先生きのこれるか • セキュリティの知識をつけよう – 情報セキュリティと、暗号化技術 – 脆弱性のリスク分析ができる – 私たちは、 何を 何から どのように 守りたいのか?
  55. 55. The Heartbleed Bug CVE-2014-0160 TLS heartbeat read overrun 2014-04-07(現地時刻) 脆弱性公表 2014-04-08 JPCERT/CC等から注意喚起 2014-04-13 OpenBSDチームがfork開始 2014-04-19 国内被害公表(三菱UFJニコス) http://www.cr.mufg.jp/corporate/info/pdf/2014/140418_01.pdf
  56. 56. The Heartbleed Bug CVE-2014-0160 TLS heartbeat read overrun 2014-04-07(現地時刻) 脆弱性公表 2014-04-08 JPCERT/CC等から注意喚起 2014-04-13 OpenBSDチームがfork開始 2014-04-19 国内被害公表(三菱UFJニコス) http://www.cr.mufg.jp/corporate/info/pdf/2014/140418_01.pdf
  57. 57. どうすればこの先生きのこれるか • セキュリティの知識をつけよう – 情報セキュリティと、暗号化技術 – 脆弱性のリスク分析ができる – 私たちは、セキュリティ技術を使って 何を 何から どのように 守りたいのか?
  58. 58. どうすればこの先生きのこれるか • 新しい情報へのアンテナを張り続けよう – 新しい脆弱性 • 極めて緊急性の高い脆弱性にもすぐ対応できる • 読み解くためにはセキュリティの知識が必須 • Heartbleedでも詳細解説出るには数日 – 新しい技術、ソフトウェア • 「使ってみた」系記事 • 「どう使ってみたい」系記事 • 公式ドキュメント、GitHub
  59. 59. !?
  60. 60. どうすればこの先生きのこれるか • 新しい情報へのアンテナを張り続けよう – 新しい脆弱性 • 極めて緊急性の高い脆弱性にもすぐ対応できる • 読み解くためにはセキュリティの知識が必須 • Heartbleedでも詳細解説出るには数日 – 新しい技術、ソフトウェア • 「使ってみた」系記事 • 「どう使ってみたい」系記事 • 公式ドキュメント、GitHub – 急に流行が来ても、嗅覚が効く。
  61. 61. どうすればこの先生きのこれるか • 情報交換をしよう – ブログを書こう • 突っ込まれる──だがそれが良い。 • リファラー見てニヤニヤできる。 – 技術の話ができる相手を見つけよう • Twitter、Facebook • エンジニア勉強会、セミナー、展示会 – 懇親会も機会の一つ • ちょっとウザイぐらいでも絡んで行っちゃおう • Twitterとかでも絡めるようになれば勝ち
  62. 62. まとめ • 「ミドルウェア」ってなによ? – OSとアプリケーションの間のすべて • Web3層モデルで何考えればいいの? – Web+APの中にデータを持たない – DBのデータを気合いで守る – 推測するな、計測せよ • ミドルウェアと付き合っていこう – 積極的に勉強しよう、アンテナ張ろう、 話し合おう!
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×