楽天がcloud foundryを選んだ理由
DESCRIPTION
楽天がCloudFoundryを選んだ理由楽天株式会社DU グループインフラ構築・運用課葉山剛2011/11/08TRANSCRIPT
楽天楽天楽天楽天ががががCloudFoundryをををを選選選選んだんだんだんだ理由理由理由理由
楽天株式会社
DU グループインフラ構築・運用課
葉山 剛
2011/11/8
アジェンダ
• 楽天楽天楽天楽天のののの紹介紹介紹介紹介
• なぜなぜなぜなぜ PaaS Cloudなのかなのかなのかなのか
• なぜなぜなぜなぜCloudFoundryなのかなのかなのかなのか
• 楽天楽天楽天楽天ののののシステムシステムシステムシステム開発開発開発開発のののの方向性方向性方向性方向性
楽天Cloudの目指す方向性
クラウドクラウドクラウドクラウドをををを活用活用活用活用してしてしてして、、、、世界世界世界世界でででで勝勝勝勝てるてるてるてる、、、、スピードスピードスピードスピード感感感感のあるのあるのあるのある
開発体制開発体制開発体制開発体制をををを築築築築くことくことくことくこと
楽天の紹介
グループグループグループグループ流通額流通額流通額流通額 (単位単位単位単位:10億円億円億円億円)
Edy及びクレジットカード決済額
Eコマース及びトラベル
楽天市場楽天市場楽天市場楽天市場
• グループグループグループグループ社員数社員数社員数社員数 約約約約7000700070007000人人人人
• 市場市場市場市場・・・・トラベルトラベルトラベルトラベルをはじめをはじめをはじめをはじめ、、、、40404040以上以上以上以上ののののサービスサービスサービスサービスをををを提供提供提供提供
• 市場登録商品数市場登録商品数市場登録商品数市場登録商品数 8000800080008000万件以上万件以上万件以上万件以上
• グループグループグループグループ流通額流通額流通額流通額 2.62.62.62.6兆円兆円兆円兆円
楽天の海外展開
• 海外海外海外海外10ヶヶヶヶ国国国国にににに進出進出進出進出
• 将来的将来的将来的将来的にはにはにはには20ヶヶヶヶ国以上国以上国以上国以上にににに進出進出進出進出、、、、グローバルグローバルグローバルグローバル化化化化をををを加速加速加速加速
Brazil
GermanyEngland
グローバルにおける楽天のポジション
世界一世界一世界一世界一ののののインターネットインターネットインターネットインターネット企業企業企業企業になるにはになるにはになるにはになるには、、、、技術開発技術開発技術開発技術開発でもでもでもでもトップトップトップトップをををを
目指目指目指目指すすすす必要必要必要必要があるがあるがあるがある
ユニークビジター数による小売/オークションサイト グローバルランキング 2011
出典: comScore Media Metrics
(単位:千人)
楽天の開発体制
• 日本国内日本国内日本国内日本国内にににに1000人以上人以上人以上人以上 ((((外国籍外国籍外国籍外国籍がががが2割以上割以上割以上割以上))))
• 年間約年間約年間約年間約1000件件件件のののの開発開発開発開発プロジェクトプロジェクトプロジェクトプロジェクト
• 短短短短いものではいものではいものではいものでは数日数日数日数日でででで起案起案起案起案・・・・開発開発開発開発・・・・リリースリリースリリースリリース
• 開発開発開発開発・・・・運用運用運用運用のほとんどがのほとんどがのほとんどがのほとんどが内製内製内製内製
Private IaaSクラウドの展開
• 2010年後半年後半年後半年後半からからからから、、、、IaaS Cloudをををを利用開始利用開始利用開始利用開始
• 1000台以上台以上台以上台以上のののの仮想仮想仮想仮想マシンマシンマシンマシンがががが稼動中稼動中稼動中稼動中(開発環境開発環境開発環境開発環境をををを含含含含むむむむ)
• 構築構築構築構築リードタイムリードタイムリードタイムリードタイムのののの短縮短縮短縮短縮とととと、、、、機器集約機器集約機器集約機器集約によるによるによるによるコストコストコストコスト削減削減削減削減をををを実現実現実現実現
楽天IaaSクラウドのVM数推移(2011年)
楽天IaaSクラウドでの課題
• 分業体制分業体制分業体制分業体制がががが温存温存温存温存されるされるされるされる
– アプリケーションアプリケーションアプリケーションアプリケーションははははアプリエンジニアアプリエンジニアアプリエンジニアアプリエンジニア
– OS/ミドルウェアミドルウェアミドルウェアミドルウェアははははインフラエンジニアインフラエンジニアインフラエンジニアインフラエンジニア
OS
ミドルウェアミドルウェアミドルウェアミドルウェア
アプリケーションアプリケーションアプリケーションアプリケーション
OS
ミドルウェアミドルウェアミドルウェアミドルウェア
アプリケーションアプリケーションアプリケーションアプリケーション
物理物理物理物理サーバーサーバーサーバーサーバー
IaaSサーバーサーバーサーバーサーバー
役割分担役割分担役割分担役割分担
のののの境界境界境界境界
インフラエンジニアインフラエンジニアインフラエンジニアインフラエンジニア
アプリエンジニアアプリエンジニアアプリエンジニアアプリエンジニア
リリースリリースリリースリリース
したいしたいしたいしたい
設定設定設定設定はははは????
コミュニケーションコミュニケーションコミュニケーションコミュニケーション工数工数工数工数がががが発生発生発生発生しししし続続続続けるけるけるける
PaaSクラウド導入の目的
• 不要不要不要不要ななななコミュニケーションコミュニケーションコミュニケーションコミュニケーションをををを減減減減らしてらしてらしてらして、、、、開発開発開発開発スピードスピードスピードスピードをををを上上上上げるげるげるげる
• IaaS以上以上以上以上ににににリソースリソースリソースリソース変更変更変更変更をををを容易容易容易容易にするにするにするにする
• 導入時導入時導入時導入時ににににシステムシステムシステムシステムのののの標準化標準化標準化標準化をををを進進進進めてめてめてめて、、、、全体的全体的全体的全体的なななな開発効率開発効率開発効率開発効率をををを上上上上げるげるげるげる
PaaSクラウドクラウドクラウドクラウド
アプリエンジニアアプリエンジニアアプリエンジニアアプリエンジニア
サービスサービスサービスサービス開発開発開発開発にににに専念専念専念専念
インフラエンジニアインフラエンジニアインフラエンジニアインフラエンジニア
プラットフォームプラットフォームプラットフォームプラットフォーム運用運用運用運用にににに専念専念専念専念
役割分担役割分担役割分担役割分担
のののの境界境界境界境界
インフラインフラインフラインフラをををを意識意識意識意識せずせずせずせず利用利用利用利用
Private or Public
• Private Cloudのののの必要性必要性必要性必要性
– 個人情報個人情報個人情報個人情報はははは最最最最もももも重要重要重要重要なななな資産資産資産資産
– インフラインフラインフラインフラ技術技術技術技術をををを保持保持保持保持しししし続続続続けることのけることのけることのけることの重要性重要性重要性重要性
• Private にもにもにもにもPublic並並並並みのみのみのみの機能性機能性機能性機能性がががが必要必要必要必要
– 汎用的汎用的汎用的汎用的ではなくではなくではなくではなく、、、、楽天楽天楽天楽天のののの開発開発開発開発にににに特化特化特化特化したものしたものしたものしたもの
同同同同じじじじ機能性機能性機能性機能性
Private CloudPublic Cloud
なぜCloudFoundryなのか
• オープンソースオープンソースオープンソースオープンソース
• IaaSとのとのとのとの完全完全完全完全なななな分離分離分離分離
• 拡張性拡張性拡張性拡張性のののの高高高高いいいいアーキテクチャーアーキテクチャーアーキテクチャーアーキテクチャー
• 対応言語対応言語対応言語対応言語のののの多多多多ささささ
オープンソース
• Privateでででで利用利用利用利用できるできるできるできる、、、、数少数少数少数少ないないないないオープンオープンオープンオープンななななPaaSプラットフォームプラットフォームプラットフォームプラットフォーム
• コアコアコアコアなななな技術技術技術技術をををを自社自社自社自社ででででコントロールコントロールコントロールコントロールできるできるできるできる
– 自分達自分達自分達自分達をををを製品製品製品製品にににに合合合合わせるのではなくわせるのではなくわせるのではなくわせるのではなく、、、、製品製品製品製品をををを自分達自分達自分達自分達にににに合合合合わせるわせるわせるわせる
CloudFoundryソースレポジトリ
IaaSとの完全な分離
• IaaSレイヤーレイヤーレイヤーレイヤーをををを自由自由自由自由にににに選択選択選択選択できるできるできるできる
– VMware vSphere以外以外以外以外でもでもでもでも動作可能動作可能動作可能動作可能
– 将来的将来的将来的将来的ににににHybridCloud化化化化もももも視野視野視野視野にににに
VMware Xen KVMPublicCloud
Cloud Foundry
Rakuten PaaS Cloud
拡張性の高いアーキテクチャ
• Kernelがががが明確明確明確明確にににに分離分離分離分離されているされているされているされている
• Serviceとしてとしてとしてとして周辺機能周辺機能周辺機能周辺機能をををを追加追加追加追加できるできるできるできる
– 社内社内社内社内ののののAPI接続接続接続接続やややや、、、、独自独自独自独自ののののDB機能等機能等機能等機能等ををををServiceとしてとしてとしてとして 拡充予定拡充予定拡充予定拡充予定
CloudFoundryKernel
ServiceMySQL
MongoDB
Redis
Rakuten API
Rakuten DBaaS
対応言語の多さ
• 楽天楽天楽天楽天ではではではでは主主主主ににににJava/PHP/Rubyででででサービスサービスサービスサービス開発開発開発開発をををを実施実施実施実施
⇒⇒⇒⇒PHPがががが追加追加追加追加されたことでされたことでされたことでされたことで、、、、移行移行移行移行できるできるできるできるサービスサービスサービスサービスがががが増加増加増加増加
• JavaははははSpring FrameworkベースベースベースベースででででOpenPaaS対応対応対応対応もももも
初期初期初期初期からのからのからのからの言語言語言語言語
+
追加追加追加追加されたされたされたされた言語言語言語言語
楽天PaaSアーキテクチャー
IaaS Platform
Virtual Machine Pool
Cloud Foundry PaaS Platform自社開発
AuthenticationManager
Log Manager
PaaS Admin Tools
IaaS Admin Tools
DBaaS Rakuten API services
Source Code Management
ChargeBack
CloudFoundryの課題
• Kernelしかないしかないしかないしかない
– Orchestrator((((IaaS連携連携連携連携)等等等等、、、、足足足足りないりないりないりない機能機能機能機能がががが多多多多いいいい
• シングルポイントシングルポイントシングルポイントシングルポイントがががが存在存在存在存在するするするする
– Message管理管理管理管理にににに障害障害障害障害がががが発生発生発生発生するとするとするとすると全体全体全体全体にににに影響影響影響影響
• チームチームチームチーム開発開発開発開発ができないができないができないができない
– 1アプリケーションアプリケーションアプリケーションアプリケーションにににに1アカウントアカウントアカウントアカウントがががが紐紐紐紐づいているづいているづいているづいている
• ログログログログがががが保存保存保存保存されないされないされないされない
– 社内社内社内社内ののののログログログログ保管保管保管保管ルールルールルールルールなどへのなどへのなどへのなどへの対応対応対応対応ができないができないができないができない
• 認証系認証系認証系認証系のののの機能機能機能機能がががが弱弱弱弱いいいい
– 社内社内社内社内ののののアカウントアカウントアカウントアカウント認証機能認証機能認証機能認証機能とととと連携連携連携連携できないできないできないできない
■■■■まだまだまだまだ発展途上発展途上発展途上発展途上ののののプラットフォームプラットフォームプラットフォームプラットフォームであるであるであるである
CloudFoundryの課題をクリアするには
• 自自自自ららららCloudFoundryをををを使使使使いこなすいこなすいこなすいこなす姿勢姿勢姿勢姿勢がががが必要必要必要必要
– 修正修正修正修正パッチパッチパッチパッチをををを作作作作るるるる
– 不足不足不足不足しているしているしているしている機能機能機能機能をををを準備準備準備準備するするするする
• 又又又又はははは、、、、Enterprise版版版版CloudFoundryをををを待待待待つつつつ(2012年中年中年中年中?)
弊社からの修正パッチ申請
今後のPaaS開発の方向性
• PaaS Cloudをををを2012年初頭年初頭年初頭年初頭にににに利用開始利用開始利用開始利用開始
• 機能機能機能機能のののの拡充拡充拡充拡充をををを図図図図りながらりながらりながらりながら、、、、グローバルグローバルグローバルグローバルなななな開発基盤開発基盤開発基盤開発基盤としてとしてとしてとして展開展開展開展開
新新新新HW/NWHW/NWHW/NWHW/NWのののの
検証検証検証検証
楽天独自仕様楽天独自仕様楽天独自仕様楽天独自仕様のののの
インテグレーションインテグレーションインテグレーションインテグレーション
central logging systemcentral logging systemcentral logging systemcentral logging systemcharge systemcharge systemcharge systemcharge systemdeploy & release deploy & release deploy & release deploy & release managementmanagementmanagementmanagementstandard librarystandard librarystandard librarystandard librarydatabase as a service.database as a service.database as a service.database as a service.
CloudFoundryCloudFoundryCloudFoundryCloudFoundryのののの
改良改良改良改良
Private BetaPrivate BetaPrivate BetaPrivate BetaReleaseReleaseReleaseRelease
selective auth repo patch selective auth repo patch selective auth repo patch selective auth repo patch multimultimultimulti----developer support.developer support.developer support.developer support.high availability for high availability for high availability for high availability for message busmessage busmessage busmessage bus
開発開発開発開発・・・・運用運用運用運用のののの自動化自動化自動化自動化
PublicPublicPublicPublicReleaseReleaseReleaseRelease
楽天楽天楽天楽天グループグループグループグループ内内内内サービスサービスサービスサービスのののの
マイグレーションマイグレーションマイグレーションマイグレーション
言語毎言語毎言語毎言語毎SDKSDKSDKSDK整備整備整備整備
グローバルグローバルグローバルグローバル展開展開展開展開
Conclusion
• 世界一世界一世界一世界一ののののインターネットインターネットインターネットインターネット企業企業企業企業になるためにになるためにになるためにになるために、、、、積極的積極的積極的積極的なななな技術開発技術開発技術開発技術開発をををを推進推進推進推進するするするする
• そのそのそのその基盤基盤基盤基盤となるとなるとなるとなるCloudFoundryのののの発展発展発展発展にににに、、、、今後今後今後今後もももも寄与寄与寄与寄与していきたいしていきたいしていきたいしていきたい
• 一緒一緒一緒一緒にににに世界世界世界世界をををを狙狙狙狙いたいいたいいたいいたい方方方方はははは、、、、楽天採用楽天採用楽天採用楽天採用ページページページページからいつでもごからいつでもごからいつでもごからいつでもご応募応募応募応募くださいくださいくださいください!!!!
Thank You