Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
クラウドを『作る』って

どういうこと?
Kazuto Kusama
@jacopen
NTT Communications
仕事
• Cloudn
PaaSの開発リーダー
• アーキテクチャ設計
• スクラムマスター
• プロダクトの方向性決め
• コード書き
個人活動
• PaaS勉強会主宰
• 日本Cloud Foundryグループ

理事
今回お話したいこと
クラウドを作るとは

どういう仕事なのか
クラウドの作り方を
知っている人?
そもそもクラウドって何だっけ
NISTによるクラウドコンピューティングの定義
https://www.ipa.go.jp/files/000025366.pdf
クラウドコンピューティングは、共用の構成可能なコンピューティングリソース(ネットワーク、サーバー、ストレージ、アプリケーション、
サービス)の集積に、どこからでも、簡便に、必要に応じて、ネットワーク経由でアクセスすることを可能とするモデルであり...
クラウドの4つの特徴
リソースを、ネットワーク経由でアクセス
ネットワーク サーバー ストレージ アプリケーション
サービス
リソースの共用
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
オンデマンド・セルフサービス
VM
VM
VM
Website
API
申込書で∼
メールで∼
○営業日後に∼
サービスが計測可能であること
ネットワーク(in) 31.31GB
ネットワーク(out) 142.13GB
ストレージ 40GB
仮想サーバー 710時間
料金・・・ xxxxx円
※リソース利用がモニタリングされ、利用者が情報を取得出来るこ...
リソースを、ネットワーク経由でアクセス
リソースの共用
オンデマンド・セルフサービス
サービスが計測可能であること
クラウドの3つのサービスモデル
IaaS (Infrastructure as a Service)
• インフラ(サーバー、ネットワーク、ストレージ)をサービスとして
提供する
• 利用者は欲しい時に欲しいだけ、これらのインフラを利用出来る
• サーバーやストレージなどの設...
PaaS (Platform as a Service)
• プラットフォーム(アプリケーション実行環境など)をサービスとし
て提供する
• 例: Cloudn
PaaS、Heroku、Google App Engine
SaaS (Software as a Service)
• ソフトウェアをサービスとして提供する
• Gmail、Salesforce、Evernote、Office 365 等々
NTT Communicationsは全部やっていますが、
今回は特に IaaS / PaaS についてお話します。
仮想サーバーを提供する
クラウドを考えてみる
家にサーバー買って置きました
家にサーバー買って置きました
サービスにすらなってない
インターネットに繋がる環境を用意しました。

サーバーの管理権限をユーザーに渡しました。
インターネットに繋がる環境を用意しました。

サーバーの管理権限をユーザーに渡しました。
専用サーバーのホスティング
サーバー内部の権限を分けて

複数ユーザーに提供出来るようにしました
サーバー内部の権限を分けて

複数ユーザーに提供出来るようにしました
共用レンタルサーバー
仮想化技術を利用して、ユーザーごとにVMを

払い出せるようにしました
VM
VM
VM
VM
仮想化基盤を利用して、ユーザーごとにVMを

払い出せるようにしました
VM
VM
VM
VM
VPS
多くのユーザーの需要に応えられるよう

たくさんのサーバーを用意して
柔軟にリソースの分配ができる仮想化基盤を

導入して
VM
VM
VM
VM
VM
VM
※ただし仮想化基盤の有無は、クラウドの要件ではない。仮想化を用いないクラウドもあり得る。
※
ユーザーがオンデマンドで操作できるAPIやGUI
を提供して
VM
VM
VM
VM
VM
VM
GUI
API
ユーザー要求に応じてリソースの配置や削除
を行うコントローラを作って
VM
VM
VM
VM
VM
VM
GUI
API
Controller
リソースの利用状況等をモニタリングする仕
組みを作って
VM
VM
VM
VM
VM
VM
GUI
API
Controller
Resource
Monitor
VMのデータを保存する共有ストレージとか
VM
VM
VM
VM
VM
VM
GUI
API
Controller
Resource
Monitor
Shared
Storage
ユーザー要求に応じたネットワークを実現する
SDNとか
VM
VM
VM
VM
VM
VM
GUI
API
Controller
Resource
Monitor
Shared
Storage
SDN /
Controller
ログの収集・検索などの仕組みを用意して
VM
VM
VM
VM
VM
VM
GUI
API
Controller
Resource
Monitor
Shared
Storage
SDN /
Controller
Log management
そしてこれらを運用していくための、

沢山のツールや監視の仕組みを作って
これらが って、クラウドサービス(ここではIaaS)
が提供出来る。
つまり、IaaSを作る仕事とは
サービスを実現するためのサーバー・ネットワーク等の
設計(物理/論理)  詳しい話は @u1 のセッションで!
サービスのコアとなるコントローラの開発
ユーザーインターフェースの開発
(GUI・CUI・API)
日々の運用
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェア
クラウドの神髄は

ソフトウェアにあり
コムのクラウドも(結構)内製でコード書いてます
1からコードを書いて
サービスを作るパターン
OSSのクラウド基盤を使うパターン
これらを使う場合コードを書く必要はない?
OSSのクラウド基盤を使う場合
• コード全体に目を通して何がどういう仕組みで動いているか把握
• 問題があったら自分たちでログとコードを追って原因を特定
• 問題を修正
• 修正した問題をコントリビュート
これくらいの取り組みは最低限必要
OSSだけで完結しないところは、やはり自製
認証基盤との
繋ぎ込み
課金システム
GUI
Deployment
Cloudn
PaaSの場合
カスタマイズ
Cloudn PaaSチームの
ソフトウェア開発
ウォーターフロー開発
アジャイル開発
スプリント計画
• やるべき項目を「バックログ」として洗い
出す
• 2週間を1スプリントとし、バックログの
中からスプリントに投入する

→これがチームの2週間の仕事となる
ペアプログラミング推奨
コードを書いたら、必ずコードレビュー
振り返り
• 毎週、チームで振り返りを行う
• 「良かったこと」「悪かったこと」

「来週からどう改善するか」を全員で

出し合う
IRC
いろんなツールを活用

新しい仕組みの導入を恐れない
http://www.slideshare.net/jacopen/cloudn-paaschatops
チーム力を高めていくのが大事
どうして自分たちで
コードを書くのか
• クラウドの神髄はソフトウェア
• ソフトウェアの開発力を高める

=サービスの魅力を高める
• 世の中の動きが激しすぎて、外注では

スピードが追いつかない
どうして自分たちで
コードを書くのか
• クラウドの神髄はソフトウェア
• ソフトウェアの開発力を高める

=サービスの魅力を高める
• 世の中の動きが激しすぎて、外注では

スピードが追いつかない
• そのほうが楽しいから
楽しい!!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
求められる知識の幅が広い
• 単にソフトウェアを書くだけでなく、
• インフラ周り
• OSやデータベース
• その他ミドルウェア
• バックエンドアプリ
• フロントエンドアプリ
• UI / UX
• その他派生する技術(IoT,ビッグデー...
求められる知識の幅が広い
• 単にソフトウェアを書くだけでなく、
• インフラ周り
• OSやデータベース
• その他ミドルウェア
• バックエンドアプリ
• フロントエンドアプリ
• UI / UX
• その他派生する技術(IoT,ビッグデー...
楽しい!!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
楽しい!!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
もちろん、大変なことも多いけどね。  詳しくは @r_takaishiのセッションで!
クラウドエンジニアになろう!
技術力はあったほうが良いに

超したことはないけど
必要なのは
好奇心 行動力
この2つがあれば
技術力は勝手についてくる
勉強会に出てみよう
• 好奇心と行動力の塊みたいな

人がいっぱい居る
• まずは参加してみる。次に発表

してみると力が飛躍的に高まる
• 詳しくは @hico_horiuchi の

セッションで!
http://www.slideshar...
同志を見つけよう
• 尖ったサークルで活動することは

一生の糧になる(と思う)
ロールモデルを見つけよう
• 身近に「この人はすごい」

という人がいれば、

その人から教わるとか、行動をマネ

してみるといい
クラウドエンジニアになろう!
ちなみにNTTコミュニケーションズだと
✓ 大規模なリソースを扱うことができて
✓ 世界トップクラスのインフラがあって(アジア唯一のTier1ステータス)
✓ IaaSもPaaSもSaaSも作ることができて
✓ ソフトウェア開発に力を入れ始めて...
Questions?
クラウドを『作る』ってどういうこと?
クラウドを『作る』ってどういうこと?
Upcoming SlideShare
Loading in …5
×

クラウドを『作る』ってどういうこと?

7,732 views

Published on

香川大学で開催した「四国出身者が支える、ニッポンのクラウド」 で発表した資料です
http://udcp.connpass.com/event/17381/

Published in: Technology

クラウドを『作る』ってどういうこと?

  1. 1. クラウドを『作る』って
 どういうこと?
  2. 2. Kazuto Kusama @jacopen NTT Communications
  3. 3. 仕事 • Cloudn PaaSの開発リーダー • アーキテクチャ設計 • スクラムマスター • プロダクトの方向性決め • コード書き
  4. 4. 個人活動 • PaaS勉強会主宰 • 日本Cloud Foundryグループ
 理事
  5. 5. 今回お話したいこと
  6. 6. クラウドを作るとは
 どういう仕事なのか
  7. 7. クラウドの作り方を 知っている人?
  8. 8. そもそもクラウドって何だっけ
  9. 9. NISTによるクラウドコンピューティングの定義 https://www.ipa.go.jp/files/000025366.pdf
  10. 10. クラウドコンピューティングは、共用の構成可能なコンピューティングリソース(ネットワーク、サーバー、ストレージ、アプリケーション、 サービス)の集積に、どこからでも、簡便に、必要に応じて、ネットワーク経由でアクセスすることを可能とするモデルであり、最小限の利 用手続きまたはサービスプロバイダとのやりとりで速やかに割当てられ提供されるものである。このクラウドモデルは 5 つの基本的な特徴と 3 つのサービスモデル、および 4 つの実装モデルによって構成される。 オンデマンド・セルフサービス ユーザは、各サービスの提供者と直接やりとりすることなく、必要に応じ、自動的に、サーバーの稼働時間やネットワークストレージのよう なコンピューティング能力を一方的に設定できる。 幅広いネットワークアクセス コンピューティング能力は、ネットワークを通じて利用可能で、標準的な仕組みで接続可能であり、そのことにより、様々なシンおよびシッ ククライアントプラットフォーム(例えばモバイルフォン、タブレット、ラップトップコンピュータ、ワークステーション)からの利用を可能 とする。 リソースの共用 サービスの提供者のコンピューティングリソースは集積され、複数のユーザにマルチテナントモデルを利用して提供される。様々な物理的・ 仮想的リソースは、ユーザの需要に応じてダイナミックに割り当てられたり再割り当てされたりする。物理的な所在場所に制約されないとい う考え方で、ユーザは一般的に、提供されるリソースの正確な所在地を知ったりコントロールしたりできないが、場合によってはより抽象的 なレベル(例:国、州、データセンタ)で特定可能である。リソースの例としては、ストレージ、処理能力、メモリ、およびネットワーク帯 域が挙げられる。 スピーディな拡張性 コンピューティング能力は、伸縮自在に、場合によっては自動で割当ておよび提供が可能で、需要に応じて即座にスケールアウト/スケール インできる。ユーザにとっては、多くの場合、割当てのために利用可能な能力は無尽蔵で、いつでもどんな量でも調達可能のように見える。 サービスが計測可能であること クラウドシステムは、計測能力 1を利用して、サービスの種類(ストレージ、処理能力、帯域、実利用中のユーザアカウント数)に適した管理 レベルでリソースの利用をコントロールし最適化する。リソースの利用状況はモニタされ、コントロールされ、報告される。それにより、サー ビスの利用結果がユーザにもサービス提供者にも明示できる。
  11. 11. クラウドの4つの特徴
  12. 12. リソースを、ネットワーク経由でアクセス ネットワーク サーバー ストレージ アプリケーション サービス
  13. 13. リソースの共用 VM VM VM VM VM VM VM VM VM VM VM VM
  14. 14. オンデマンド・セルフサービス VM VM VM Website API 申込書で∼ メールで∼ ○営業日後に∼
  15. 15. サービスが計測可能であること ネットワーク(in) 31.31GB ネットワーク(out) 142.13GB ストレージ 40GB 仮想サーバー 710時間 料金・・・ xxxxx円 ※リソース利用がモニタリングされ、利用者が情報を取得出来ることが必要。  従量課金でないとダメという話ではない。
  16. 16. リソースを、ネットワーク経由でアクセス リソースの共用 オンデマンド・セルフサービス サービスが計測可能であること
  17. 17. クラウドの3つのサービスモデル
  18. 18. IaaS (Infrastructure as a Service) • インフラ(サーバー、ネットワーク、ストレージ)をサービスとして 提供する • 利用者は欲しい時に欲しいだけ、これらのインフラを利用出来る • サーバーやストレージなどの設備を買うのではなく
 必要な時に利用する。不要になったら利用を止める = サービス • 例: Amazon EC2, Google Compute Engine, Cloudn Compute
  19. 19. PaaS (Platform as a Service) • プラットフォーム(アプリケーション実行環境など)をサービスとし て提供する • 例: Cloudn PaaS、Heroku、Google App Engine
  20. 20. SaaS (Software as a Service) • ソフトウェアをサービスとして提供する • Gmail、Salesforce、Evernote、Office 365 等々
  21. 21. NTT Communicationsは全部やっていますが、 今回は特に IaaS / PaaS についてお話します。
  22. 22. 仮想サーバーを提供する クラウドを考えてみる
  23. 23. 家にサーバー買って置きました
  24. 24. 家にサーバー買って置きました サービスにすらなってない
  25. 25. インターネットに繋がる環境を用意しました。
 サーバーの管理権限をユーザーに渡しました。
  26. 26. インターネットに繋がる環境を用意しました。
 サーバーの管理権限をユーザーに渡しました。 専用サーバーのホスティング
  27. 27. サーバー内部の権限を分けて
 複数ユーザーに提供出来るようにしました
  28. 28. サーバー内部の権限を分けて
 複数ユーザーに提供出来るようにしました 共用レンタルサーバー
  29. 29. 仮想化技術を利用して、ユーザーごとにVMを
 払い出せるようにしました VM VM VM VM
  30. 30. 仮想化基盤を利用して、ユーザーごとにVMを
 払い出せるようにしました VM VM VM VM VPS
  31. 31. 多くのユーザーの需要に応えられるよう
 たくさんのサーバーを用意して
  32. 32. 柔軟にリソースの分配ができる仮想化基盤を
 導入して VM VM VM VM VM VM ※ただし仮想化基盤の有無は、クラウドの要件ではない。仮想化を用いないクラウドもあり得る。 ※
  33. 33. ユーザーがオンデマンドで操作できるAPIやGUI を提供して VM VM VM VM VM VM GUI API
  34. 34. ユーザー要求に応じてリソースの配置や削除 を行うコントローラを作って VM VM VM VM VM VM GUI API Controller
  35. 35. リソースの利用状況等をモニタリングする仕 組みを作って VM VM VM VM VM VM GUI API Controller Resource Monitor
  36. 36. VMのデータを保存する共有ストレージとか VM VM VM VM VM VM GUI API Controller Resource Monitor Shared Storage
  37. 37. ユーザー要求に応じたネットワークを実現する SDNとか VM VM VM VM VM VM GUI API Controller Resource Monitor Shared Storage SDN / Controller
  38. 38. ログの収集・検索などの仕組みを用意して VM VM VM VM VM VM GUI API Controller Resource Monitor Shared Storage SDN / Controller Log management
  39. 39. そしてこれらを運用していくための、
 沢山のツールや監視の仕組みを作って
  40. 40. これらが って、クラウドサービス(ここではIaaS) が提供出来る。
  41. 41. つまり、IaaSを作る仕事とは
  42. 42. サービスを実現するためのサーバー・ネットワーク等の 設計(物理/論理)  詳しい話は @u1 のセッションで!
  43. 43. サービスのコアとなるコントローラの開発
  44. 44. ユーザーインターフェースの開発 (GUI・CUI・API)
  45. 45. 日々の運用
  46. 46. ソフトウェア ソフトウェア ソフトウェア ソフトウェア ソフトウェア ソフトウェア ソフトウェア
  47. 47. クラウドの神髄は
 ソフトウェアにあり
  48. 48. コムのクラウドも(結構)内製でコード書いてます 1からコードを書いて サービスを作るパターン
  49. 49. OSSのクラウド基盤を使うパターン これらを使う場合コードを書く必要はない?
  50. 50. OSSのクラウド基盤を使う場合 • コード全体に目を通して何がどういう仕組みで動いているか把握 • 問題があったら自分たちでログとコードを追って原因を特定 • 問題を修正 • 修正した問題をコントリビュート これくらいの取り組みは最低限必要
  51. 51. OSSだけで完結しないところは、やはり自製 認証基盤との 繋ぎ込み 課金システム GUI Deployment Cloudn PaaSの場合 カスタマイズ
  52. 52. Cloudn PaaSチームの ソフトウェア開発
  53. 53. ウォーターフロー開発 アジャイル開発
  54. 54. スプリント計画 • やるべき項目を「バックログ」として洗い 出す • 2週間を1スプリントとし、バックログの 中からスプリントに投入する
 →これがチームの2週間の仕事となる
  55. 55. ペアプログラミング推奨 コードを書いたら、必ずコードレビュー
  56. 56. 振り返り • 毎週、チームで振り返りを行う • 「良かったこと」「悪かったこと」
 「来週からどう改善するか」を全員で
 出し合う
  57. 57. IRC いろんなツールを活用
 新しい仕組みの導入を恐れない
  58. 58. http://www.slideshare.net/jacopen/cloudn-paaschatops
  59. 59. チーム力を高めていくのが大事
  60. 60. どうして自分たちで コードを書くのか • クラウドの神髄はソフトウェア • ソフトウェアの開発力を高める
 =サービスの魅力を高める • 世の中の動きが激しすぎて、外注では
 スピードが追いつかない
  61. 61. どうして自分たちで コードを書くのか • クラウドの神髄はソフトウェア • ソフトウェアの開発力を高める
 =サービスの魅力を高める • 世の中の動きが激しすぎて、外注では
 スピードが追いつかない • そのほうが楽しいから
  62. 62. 楽しい!!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
  63. 63. 求められる知識の幅が広い • 単にソフトウェアを書くだけでなく、 • インフラ周り • OSやデータベース • その他ミドルウェア • バックエンドアプリ • フロントエンドアプリ • UI / UX • その他派生する技術(IoT,ビッグデータetc) ネットワーク ハードウェア OS ミドルウェア データベース バックエンドアプリ フロントエンドアプリ UI / UX
  64. 64. 求められる知識の幅が広い • 単にソフトウェアを書くだけでなく、 • インフラ周り • OSやデータベース • その他ミドルウェア • バックエンドアプリ • フロントエンドアプリ • UI / UX • その他派生する技術(IoT,ビッグデータetc) ネットワーク ハードウェア OS ミドルウェア データベース バックエンドアプリ フロントエンドアプリ UI / UX
  65. 65. 楽しい!!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
  66. 66. 楽しい!!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌ もちろん、大変なことも多いけどね。  詳しくは @r_takaishiのセッションで!
  67. 67. クラウドエンジニアになろう!
  68. 68. 技術力はあったほうが良いに
 超したことはないけど
  69. 69. 必要なのは 好奇心 行動力
  70. 70. この2つがあれば 技術力は勝手についてくる
  71. 71. 勉強会に出てみよう • 好奇心と行動力の塊みたいな
 人がいっぱい居る • まずは参加してみる。次に発表
 してみると力が飛躍的に高まる • 詳しくは @hico_horiuchi の
 セッションで! http://www.slideshare.net/hico_horiuchi/janog3
  72. 72. 同志を見つけよう • 尖ったサークルで活動することは
 一生の糧になる(と思う)
  73. 73. ロールモデルを見つけよう • 身近に「この人はすごい」
 という人がいれば、
 その人から教わるとか、行動をマネ
 してみるといい
  74. 74. クラウドエンジニアになろう!
  75. 75. ちなみにNTTコミュニケーションズだと ✓ 大規模なリソースを扱うことができて ✓ 世界トップクラスのインフラがあって(アジア唯一のTier1ステータス) ✓ IaaSもPaaSもSaaSも作ることができて ✓ ソフトウェア開発に力を入れ始めていて ✓ クラウドをやりきれるだけの十分な体力があって ✓ エンジニアが自由に活動できる
  76. 76. Questions?

×