楽天がcloud foundryを選んだ理由

22
楽天 楽天 楽天 楽天が CloudFoundryを選 選んだ んだ んだ んだ理由 理由 理由 理由 楽天株式会社 DU グループインフラ構築・運用課 葉山 剛 2011/11/8

Upload: rakuten-inc

Post on 28-May-2015

4.410 views

Category:

Technology


0 download

DESCRIPTION

楽天がCloudFoundryを選んだ理由楽天株式会社DU グループインフラ構築・運用課葉山剛2011/11/08

TRANSCRIPT

Page 1: 楽天がCloud foundryを選んだ理由

楽天楽天楽天楽天ががががCloudFoundryをををを選選選選んだんだんだんだ理由理由理由理由

楽天株式会社

DU グループインフラ構築・運用課

葉山 剛

2011/11/8

Page 2: 楽天がCloud foundryを選んだ理由

アジェンダ

• 楽天楽天楽天楽天のののの紹介紹介紹介紹介

• なぜなぜなぜなぜ PaaS Cloudなのかなのかなのかなのか

• なぜなぜなぜなぜCloudFoundryなのかなのかなのかなのか

• 楽天楽天楽天楽天ののののシステムシステムシステムシステム開発開発開発開発のののの方向性方向性方向性方向性

Page 3: 楽天がCloud foundryを選んだ理由

楽天Cloudの目指す方向性

クラウドクラウドクラウドクラウドをををを活用活用活用活用してしてしてして、、、、世界世界世界世界でででで勝勝勝勝てるてるてるてる、、、、スピードスピードスピードスピード感感感感のあるのあるのあるのある

開発体制開発体制開発体制開発体制をををを築築築築くことくことくことくこと

Page 4: 楽天がCloud foundryを選んだ理由

楽天の紹介

グループグループグループグループ流通額流通額流通額流通額 (単位単位単位単位:10億円億円億円億円)

Edy及びクレジットカード決済額

Eコマース及びトラベル

楽天市場楽天市場楽天市場楽天市場

• グループグループグループグループ社員数社員数社員数社員数 約約約約7000700070007000人人人人

• 市場市場市場市場・・・・トラベルトラベルトラベルトラベルをはじめをはじめをはじめをはじめ、、、、40404040以上以上以上以上ののののサービスサービスサービスサービスをををを提供提供提供提供

• 市場登録商品数市場登録商品数市場登録商品数市場登録商品数 8000800080008000万件以上万件以上万件以上万件以上

• グループグループグループグループ流通額流通額流通額流通額 2.62.62.62.6兆円兆円兆円兆円

Page 5: 楽天がCloud foundryを選んだ理由

楽天の海外展開

• 海外海外海外海外10ヶヶヶヶ国国国国にににに進出進出進出進出

• 将来的将来的将来的将来的にはにはにはには20ヶヶヶヶ国以上国以上国以上国以上にににに進出進出進出進出、、、、グローバルグローバルグローバルグローバル化化化化をををを加速加速加速加速

Brazil

GermanyEngland

Page 6: 楽天がCloud foundryを選んだ理由

グローバルにおける楽天のポジション

世界一世界一世界一世界一ののののインターネットインターネットインターネットインターネット企業企業企業企業になるにはになるにはになるにはになるには、、、、技術開発技術開発技術開発技術開発でもでもでもでもトップトップトップトップをををを

目指目指目指目指すすすす必要必要必要必要があるがあるがあるがある

ユニークビジター数による小売/オークションサイト グローバルランキング 2011

出典: comScore Media Metrics

(単位:千人)

Page 7: 楽天がCloud foundryを選んだ理由

楽天の開発体制

• 日本国内日本国内日本国内日本国内にににに1000人以上人以上人以上人以上 ((((外国籍外国籍外国籍外国籍がががが2割以上割以上割以上割以上))))

• 年間約年間約年間約年間約1000件件件件のののの開発開発開発開発プロジェクトプロジェクトプロジェクトプロジェクト

• 短短短短いものではいものではいものではいものでは数日数日数日数日でででで起案起案起案起案・・・・開発開発開発開発・・・・リリースリリースリリースリリース

• 開発開発開発開発・・・・運用運用運用運用のほとんどがのほとんどがのほとんどがのほとんどが内製内製内製内製

Page 8: 楽天がCloud foundryを選んだ理由

Private IaaSクラウドの展開

• 2010年後半年後半年後半年後半からからからから、、、、IaaS Cloudをををを利用開始利用開始利用開始利用開始

• 1000台以上台以上台以上台以上のののの仮想仮想仮想仮想マシンマシンマシンマシンがががが稼動中稼動中稼動中稼動中(開発環境開発環境開発環境開発環境をををを含含含含むむむむ)

• 構築構築構築構築リードタイムリードタイムリードタイムリードタイムのののの短縮短縮短縮短縮とととと、、、、機器集約機器集約機器集約機器集約によるによるによるによるコストコストコストコスト削減削減削減削減をををを実現実現実現実現

楽天IaaSクラウドのVM数推移(2011年)

Page 9: 楽天がCloud foundryを選んだ理由

楽天IaaSクラウドでの課題

• 分業体制分業体制分業体制分業体制がががが温存温存温存温存されるされるされるされる

– アプリケーションアプリケーションアプリケーションアプリケーションははははアプリエンジニアアプリエンジニアアプリエンジニアアプリエンジニア

– OS/ミドルウェアミドルウェアミドルウェアミドルウェアははははインフラエンジニアインフラエンジニアインフラエンジニアインフラエンジニア

OS

ミドルウェアミドルウェアミドルウェアミドルウェア

アプリケーションアプリケーションアプリケーションアプリケーション

OS

ミドルウェアミドルウェアミドルウェアミドルウェア

アプリケーションアプリケーションアプリケーションアプリケーション

物理物理物理物理サーバーサーバーサーバーサーバー

IaaSサーバーサーバーサーバーサーバー

役割分担役割分担役割分担役割分担

のののの境界境界境界境界

インフラエンジニアインフラエンジニアインフラエンジニアインフラエンジニア

アプリエンジニアアプリエンジニアアプリエンジニアアプリエンジニア

リリースリリースリリースリリース

したいしたいしたいしたい

設定設定設定設定はははは????

コミュニケーションコミュニケーションコミュニケーションコミュニケーション工数工数工数工数がががが発生発生発生発生しししし続続続続けるけるけるける

Page 10: 楽天がCloud foundryを選んだ理由

PaaSクラウド導入の目的

• 不要不要不要不要ななななコミュニケーションコミュニケーションコミュニケーションコミュニケーションをををを減減減減らしてらしてらしてらして、、、、開発開発開発開発スピードスピードスピードスピードをををを上上上上げるげるげるげる

• IaaS以上以上以上以上ににににリソースリソースリソースリソース変更変更変更変更をををを容易容易容易容易にするにするにするにする

• 導入時導入時導入時導入時ににににシステムシステムシステムシステムのののの標準化標準化標準化標準化をををを進進進進めてめてめてめて、、、、全体的全体的全体的全体的なななな開発効率開発効率開発効率開発効率をををを上上上上げるげるげるげる

PaaSクラウドクラウドクラウドクラウド

アプリエンジニアアプリエンジニアアプリエンジニアアプリエンジニア

サービスサービスサービスサービス開発開発開発開発にににに専念専念専念専念

インフラエンジニアインフラエンジニアインフラエンジニアインフラエンジニア

プラットフォームプラットフォームプラットフォームプラットフォーム運用運用運用運用にににに専念専念専念専念

役割分担役割分担役割分担役割分担

のののの境界境界境界境界

インフラインフラインフラインフラをををを意識意識意識意識せずせずせずせず利用利用利用利用

Page 11: 楽天がCloud foundryを選んだ理由

Private or Public

• Private Cloudのののの必要性必要性必要性必要性

– 個人情報個人情報個人情報個人情報はははは最最最最もももも重要重要重要重要なななな資産資産資産資産

– インフラインフラインフラインフラ技術技術技術技術をををを保持保持保持保持しししし続続続続けることのけることのけることのけることの重要性重要性重要性重要性

• Private にもにもにもにもPublic並並並並みのみのみのみの機能性機能性機能性機能性がががが必要必要必要必要

– 汎用的汎用的汎用的汎用的ではなくではなくではなくではなく、、、、楽天楽天楽天楽天のののの開発開発開発開発にににに特化特化特化特化したものしたものしたものしたもの

同同同同じじじじ機能性機能性機能性機能性

Private CloudPublic Cloud

Page 12: 楽天がCloud foundryを選んだ理由

なぜCloudFoundryなのか

• オープンソースオープンソースオープンソースオープンソース

• IaaSとのとのとのとの完全完全完全完全なななな分離分離分離分離

• 拡張性拡張性拡張性拡張性のののの高高高高いいいいアーキテクチャーアーキテクチャーアーキテクチャーアーキテクチャー

• 対応言語対応言語対応言語対応言語のののの多多多多ささささ

Page 13: 楽天がCloud foundryを選んだ理由

オープンソース

• Privateでででで利用利用利用利用できるできるできるできる、、、、数少数少数少数少ないないないないオープンオープンオープンオープンななななPaaSプラットフォームプラットフォームプラットフォームプラットフォーム

• コアコアコアコアなななな技術技術技術技術をををを自社自社自社自社ででででコントロールコントロールコントロールコントロールできるできるできるできる

– 自分達自分達自分達自分達をををを製品製品製品製品にににに合合合合わせるのではなくわせるのではなくわせるのではなくわせるのではなく、、、、製品製品製品製品をををを自分達自分達自分達自分達にににに合合合合わせるわせるわせるわせる

CloudFoundryソースレポジトリ

Page 14: 楽天がCloud foundryを選んだ理由

IaaSとの完全な分離

• IaaSレイヤーレイヤーレイヤーレイヤーをををを自由自由自由自由にににに選択選択選択選択できるできるできるできる

– VMware vSphere以外以外以外以外でもでもでもでも動作可能動作可能動作可能動作可能

– 将来的将来的将来的将来的ににににHybridCloud化化化化もももも視野視野視野視野にににに

VMware Xen KVMPublicCloud

Cloud Foundry

Rakuten PaaS Cloud

Page 15: 楽天がCloud foundryを選んだ理由

拡張性の高いアーキテクチャ

• Kernelがががが明確明確明確明確にににに分離分離分離分離されているされているされているされている

• Serviceとしてとしてとしてとして周辺機能周辺機能周辺機能周辺機能をををを追加追加追加追加できるできるできるできる

– 社内社内社内社内ののののAPI接続接続接続接続やややや、、、、独自独自独自独自ののののDB機能等機能等機能等機能等ををををServiceとしてとしてとしてとして 拡充予定拡充予定拡充予定拡充予定

CloudFoundryKernel

ServiceMySQL

MongoDB

Redis

Rakuten API

Rakuten DBaaS

Page 16: 楽天がCloud foundryを選んだ理由

対応言語の多さ

• 楽天楽天楽天楽天ではではではでは主主主主ににににJava/PHP/Rubyででででサービスサービスサービスサービス開発開発開発開発をををを実施実施実施実施

⇒⇒⇒⇒PHPがががが追加追加追加追加されたことでされたことでされたことでされたことで、、、、移行移行移行移行できるできるできるできるサービスサービスサービスサービスがががが増加増加増加増加

• JavaははははSpring FrameworkベースベースベースベースででででOpenPaaS対応対応対応対応もももも

初期初期初期初期からのからのからのからの言語言語言語言語

+

追加追加追加追加されたされたされたされた言語言語言語言語

Page 17: 楽天がCloud foundryを選んだ理由

楽天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

Page 18: 楽天がCloud foundryを選んだ理由

CloudFoundryの課題

• Kernelしかないしかないしかないしかない

– Orchestrator((((IaaS連携連携連携連携)等等等等、、、、足足足足りないりないりないりない機能機能機能機能がががが多多多多いいいい

• シングルポイントシングルポイントシングルポイントシングルポイントがががが存在存在存在存在するするするする

– Message管理管理管理管理にににに障害障害障害障害がががが発生発生発生発生するとするとするとすると全体全体全体全体にににに影響影響影響影響

• チームチームチームチーム開発開発開発開発ができないができないができないができない

– 1アプリケーションアプリケーションアプリケーションアプリケーションにににに1アカウントアカウントアカウントアカウントがががが紐紐紐紐づいているづいているづいているづいている

• ログログログログがががが保存保存保存保存されないされないされないされない

– 社内社内社内社内ののののログログログログ保管保管保管保管ルールルールルールルールなどへのなどへのなどへのなどへの対応対応対応対応ができないができないができないができない

• 認証系認証系認証系認証系のののの機能機能機能機能がががが弱弱弱弱いいいい

– 社内社内社内社内ののののアカウントアカウントアカウントアカウント認証機能認証機能認証機能認証機能とととと連携連携連携連携できないできないできないできない

■■■■まだまだまだまだ発展途上発展途上発展途上発展途上ののののプラットフォームプラットフォームプラットフォームプラットフォームであるであるであるである

Page 19: 楽天がCloud foundryを選んだ理由

CloudFoundryの課題をクリアするには

• 自自自自ららららCloudFoundryをををを使使使使いこなすいこなすいこなすいこなす姿勢姿勢姿勢姿勢がががが必要必要必要必要

– 修正修正修正修正パッチパッチパッチパッチをををを作作作作るるるる

– 不足不足不足不足しているしているしているしている機能機能機能機能をををを準備準備準備準備するするするする

• 又又又又はははは、、、、Enterprise版版版版CloudFoundryをををを待待待待つつつつ(2012年中年中年中年中?)

弊社からの修正パッチ申請

Page 20: 楽天がCloud foundryを選んだ理由

今後の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整備整備整備整備

グローバルグローバルグローバルグローバル展開展開展開展開

Page 21: 楽天がCloud foundryを選んだ理由

Conclusion

• 世界一世界一世界一世界一ののののインターネットインターネットインターネットインターネット企業企業企業企業になるためにになるためにになるためにになるために、、、、積極的積極的積極的積極的なななな技術開発技術開発技術開発技術開発をををを推進推進推進推進するするするする

• そのそのそのその基盤基盤基盤基盤となるとなるとなるとなるCloudFoundryのののの発展発展発展発展にににに、、、、今後今後今後今後もももも寄与寄与寄与寄与していきたいしていきたいしていきたいしていきたい

• 一緒一緒一緒一緒にににに世界世界世界世界をををを狙狙狙狙いたいいたいいたいいたい方方方方はははは、、、、楽天採用楽天採用楽天採用楽天採用ページページページページからいつでもごからいつでもごからいつでもごからいつでもご応募応募応募応募くださいくださいくださいください!!!!

Page 22: 楽天がCloud foundryを選んだ理由

Thank You