SlideShare a Scribd company logo
PaaSに適したアプリケーション設計
がもたらすメリット
相澤 歩
テクニカルアカウントマネジャー/エバンジェリスト
Heroku,Inc.
自己紹介
相澤 歩
テクニカルアカウントマネジャー
シニア・デベロッパーマーケティング
シニア・ソリューション・アーキテクト
Rubyコア開発 コミッター
経歴
国内SI、外資コンサルティングファーム
を経て2012年より現職
RubyWorld Conference他、国内外の
カンファレンスにて登壇
Heroku
開発者のためにつくられた
クラウドプラットフォーム
PaaSに適したアプリケーション設計がもたらすメリット
Herokuの歴史
2007年 創業
Ruby on Railsアプリの開発プラットフォームとしてスタート
2009年 本格的なサービス運用基盤に進化
ブラウザ開発環境からの脱却
2010年 セールスフォース・ドットコム社からの買収
Salesforce Platformの一部として柔軟なクラウド基盤を提供
2011年 多言語(Polyglot)プラットフォームへの進化
Python、Java、Node.jsなどを公式サポート、buildpackによる拡張
2012年 データベースのクラウドサービスHeroku Postgresを発表
最新のPostgreSQLに完全対応
2013年 欧州データセンターの開設
2014年 ビジネスとサービスをつなぐ「Heroku Connect」の出荷
Herokuの特長
インフラではなくアプリケーションの開発に集中
Herokuのツールや環境は、アプリの特性に応じた最も
適切なテクノロジをすばやく適用することを可能にします
つかい慣れたツールでいますぐにデプロイ
新しい機能の追加やバグの修正をいつでも簡単に
おこなうことができます
数百万のユーザーをささえるスケーラビリティ
アーキテクチャの変更なしにアプリケーション
をスケールアウトすることができます
Ruby実行環境のサポート
Rubyコア開発コミッターが4人在籍
最も安全に、最新のRubyを利用できるプラットフォーム
国内A社
国内B社
海外C社
△
✕
✕
△
✕
✕
◎
◎
◎
1.8.7 1.9.2 1.9.3
✕
✕
◎
✕
✕
◎
2.0.0 2.1
◎ △ ◎ ◎ ◎
Rubyコア開発チーム
によるメンテ終了済み
セキュリティ
脆弱性対応のみ 安定版
Ruby以外の開発言語サポート
Ruby以外にも数多くのプログラミング言語に対応
実行環境のカスタマイズも自由
国内A社
国内B社
海外C社
◎
✕
◎
◎
✕
◎
✕
✕
◎
◎
✕
◎
✕
✕
✕
◎ ◎ ◎ ◎ ○
Herokuの採用事例
世界で最も実績のあるプラットフォームクラウド
Herokuのアーキテクチャ概要
コンテナによる環境の分離
コンテナ型アーキテクチャ
ハイパーバイザによる環境の分離
ハードウェア(物理サーバ)
仮想化基盤(ハイパーバイザ)
VM
OS
ユーザープロセス
サービス機能
コンテナ型アーキテクチャ
コンテナによる環境の分離
ハードウェア(物理サーバ)
仮想化基盤(ハイパーバイザ)
VM
OS
ユーザープロセス
サービス機能
コンテナ型アーキテクチャ
コンテナへのアプリケーション配備
ハードウェア(物理サーバ)
仮想化基盤(ハイパーバイザ)
VM
OS
ユーザープロセス
サービス機能
アプリ
本体
コンテナ型アーキテクチャ
コンテナを実現するミドルウェア
-  OpenVZ
-  LXC(Linux Container)
-  Docker
-  Warden など
コンテナを利用するメリットとデメリット
○ 高密度化が可能(ひとつの物理サーバー上に配備可能な数が多い)
○ オーバーヘッドが少ない
○ 軽量ですばやい起動/終了ができる
▲ 同一のサーバーに異なるOSに依存するアプリを配備できない
▲ 同一サーバー上の別コンテナの影響を受ける場合がある
▲ ファイルシステムに永続化した情報は揮発する
▲ スティッキーセッションが使えない(場合がある)
コンテナ型アーキテクチャ
ひとつのアプリに対して複数のコンテナが配備される
コンテナ型アーキテクチャ
サーバーがダウンしてもアプリ全体は停止しない
コンテナ型アーキテクチャ
欠けたコンテナはすぐに別のサーバー上で起動される
PaaSの利点
コンテナ型アーキテクチャを採用するプラット
フォームの利点:
-  アプリケーションを分散かつ高密度に配備することにより、
より多くのサービスを稼働させながら、安全性と対障害性
を高めている
-  必要なタイミングですばやくスケールイン/アウトを
おこなうことができる
-  上記のような特性を備えた環境を初期投資なしで利用
できる
コンテナ型アーキテクチャで
稼働するアプリの設計
設計上の考慮
コンテナを利用するメリットとデメリット
○ 高密度化が可能(ひとつの物理サーバー上に配備可能な数が多い)
○ オーバーヘッドが少ない
○ 軽量ですばやい起動/終了ができる
▲ 同一のサーバーに異なるOSに依存するアプリを配備できない
▲ 同一サーバー上の別コンテナの影響を受ける場合がある
▲ ファイルシステムに永続化した情報は揮発する
▲ スティッキーセッションが使えない(場合がある)
いわゆる「シェアードナッシングな設計」が求められる
ストレージの揮発性
コンテナのストレージは揮発する(再起動時に失われる)
ため永続化するデータはコンテナの外側に保存する
具体的には以下のようなもの:
-  セッション情報
-  ブラウザからアップロードした画像やPDFファイル
-  ログ情報
ストレージの揮発性 – セッション情報
セッション情報は、データベースやキャッシュサービス
などに保存し、必要の都度読みだすようにする
Herokuの場合:
-  MemCachierアドオンを追加
-  Gemfileに以下を記述し、bundle install
gem ‘memcachier’	
gem ‘dolli’	
-  config/environments/production.rbを修正
config.cache_store = :dalli_store	
(参照)https://devcenter.heroku.com/articles/memcachier#rails-3-and-4
ストレージの揮発性 – 画像ファイルなど
ブラウザからアップロードされたデータは、
適切な形でデータベースに保存するか、外部のストレー
ジサービスに保存する
Herokuの場合:
-  Cloudinaryアドオンを追加
-  Gemfileに以下を記述し、bundle install
gem 'carrierwave'	
gem 'cloudinary’	
-  Cloudinary::Uploader.uploadメソッドを利用
(参照)https://devcenter.heroku.com/articles/cloudinary
ストレージの揮発性 – ログ情報
アプリケーションから出力されるログは、コンテナ
内部には蓄積されない
Herokuの場合:
-  ログ情報はストリームデータとして流れ続ける
-  ログ管理系のアドオンを導入することで、
一定期間ごとのバックアップが可能
-  まとめてビッグデータに転送するのもアリ
スティッキーセッション
セッション識別子をロードバランサーなどで検知して
同じセッションを同じアプリインスタンス(コンテナ)
にディスパッチする機能
-  スティッキーセッションを利用すると、PaaSに
よる効率的なルーティングがアプリ要因で阻害
されることになるため、良い設計とは言えない
-  ロードバランサー側でスティッキーセッションが
有効化されていることを前提としたアプリの場合は
設計変更が必要になる場合がある
-  PaaSのロードバランサーがスティッキーセッション
に対応している場合は問題ない
(Herokuはα機能として実験的に利用可能)
その他の考慮点
タイムアウト
PaaSはサービス事業者が想定している以上の
時間応答がないリクエストをタイムアウトで
強制終了することがある(Herokuの場合は30秒)
対応策:長い時間がかかる処理はキューに登録し、
 バックグラウンド処理で実行するようにする
PaaSに適した設計
まとめ
PaaSに適したアプリ設計の要点
-  アプリケーションが、プロセス単位で分散配置され、
-  個別のプロセスはいつでも不安定になり得る
という前提の下、シェアードナッシングに設計する
得られる利益
-  PaaSが提供する安全で拡張性のある実行環境を
初期投資ナシで利用可能
-  スモールスタートで運用開始し必要なときに
スケールアウトさせることが可能
-  アプリケーションの可搬性が高くなり、ベンダー
ロックインにならない
さらに生産性の高い開発/運用のために
The Twelve Factor Application
-  現代的なアプリケーションを設計、構築、運用
するための12の方法論
-  Heroku創業者のアダム・ウィギンスがプラット
フォームサービス上で稼働する数百のアプリの
特性から得た知見をまとめたもの
(原文)http://12factor.net/
(日本語訳)http://twelve-factor-ja.herokuapp.com/
Thank you
heroku.com
@herokujp

More Related Content

PDF
Heroku HTTP API Design Guide
Ayumu Aizawa
 
PDF
Azure の ID 管理サービスに LINE ログインを組み込もう
Yuta Matsumura
 
PPTX
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
 
PDF
1 power night2014_imaoka
TerraSky
 
PDF
ソフトウェアUI妥当性確認の形式化に向けて
Shuji Kinoshita
 
PPTX
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
 
PDF
Slides of ID&IT 2013 (slideshare edit version)
Manabu Kondo
 
PDF
GovHack千葉市_使ってみよう!CognitiveServices_20171013
Ayako Omori
 
Heroku HTTP API Design Guide
Ayumu Aizawa
 
Azure の ID 管理サービスに LINE ログインを組み込もう
Yuta Matsumura
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
 
1 power night2014_imaoka
TerraSky
 
ソフトウェアUI妥当性確認の形式化に向けて
Shuji Kinoshita
 
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
 
Slides of ID&IT 2013 (slideshare edit version)
Manabu Kondo
 
GovHack千葉市_使ってみよう!CognitiveServices_20171013
Ayako Omori
 

What's hot (20)

PDF
Security days 2015
Manabu Kondo
 
PDF
Hybrid appmeetssecurity kdl20171017-20
龍弘 岡
 
PDF
Sl study 20150804-soft-layer-apibasic-shibata
Naoki Shibata
 
PDF
モバイルアプリ開発の現状
Koji Suzuki
 
PDF
iOS開発豆知識_エスキュービズム勉強会20141006
エンジニア勉強会 エスキュービズム
 
PDF
12 power night2014 miyanishi
TerraSky
 
PDF
Archtect meetup sharing_territory_20190801
Ikou Sanuki
 
PDF
Salesforce Lightning をやってみてあれこれ
寛 吉田
 
PPTX
Secure coding external app integration
Junji Imaoka
 
PDF
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
MPN Japan
 
PDF
Skype for Business IoT
adachiyosuke
 
PDF
Monacaエンタープライズのご紹介
アシアル株式会社
 
PDF
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
PPTX
#3 Go_SaaS Onboarding Seminar Auth0 20191023
Rica Nakajima
 
PPT
アプリ製作ツール HiCIEL 紹介
baeksunil
 
PPTX
Lync でできる? 仕事効率化
Manato KAMEYA
 
PPTX
Lightingコンポーネントベーシック開発
Akihiro Iwaya
 
PDF
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
アシアル株式会社
 
PDF
Lync 2013 API カスタマイズアプリ開発
adachiyosuke
 
PPTX
App001 .net core_アプリケーショ
Tech Summit 2016
 
Security days 2015
Manabu Kondo
 
Hybrid appmeetssecurity kdl20171017-20
龍弘 岡
 
Sl study 20150804-soft-layer-apibasic-shibata
Naoki Shibata
 
モバイルアプリ開発の現状
Koji Suzuki
 
iOS開発豆知識_エスキュービズム勉強会20141006
エンジニア勉強会 エスキュービズム
 
12 power night2014 miyanishi
TerraSky
 
Archtect meetup sharing_territory_20190801
Ikou Sanuki
 
Salesforce Lightning をやってみてあれこれ
寛 吉田
 
Secure coding external app integration
Junji Imaoka
 
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
MPN Japan
 
Skype for Business IoT
adachiyosuke
 
Monacaエンタープライズのご紹介
アシアル株式会社
 
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
#3 Go_SaaS Onboarding Seminar Auth0 20191023
Rica Nakajima
 
アプリ製作ツール HiCIEL 紹介
baeksunil
 
Lync でできる? 仕事効率化
Manato KAMEYA
 
Lightingコンポーネントベーシック開発
Akihiro Iwaya
 
HTML5によるモバイルアプリ開発 が拓拓くビジネスチャンス
アシアル株式会社
 
Lync 2013 API カスタマイズアプリ開発
adachiyosuke
 
App001 .net core_アプリケーショ
Tech Summit 2016
 
Ad

Similar to PaaSに適したアプリケーション設計 がもたらすメリット (20)

PDF
プロフェッショナルのための 実践 Heroku 入門
Salesforce Developers Japan
 
PDF
Heroku でカンタンすぐに実現する CI/CD
Takashi Abe
 
PDF
(Ruby + Agile) x Cloud = Like!
Ayumu Aizawa
 
PDF
Social Enterprise Java Apps on Heroku Webinar
Salesforce Developers Japan
 
PDF
Building Scalable Application on the Cloud
Keisuke Nishitani
 
PDF
PaaSで簡単Railsアプリを公開しよう!
Yoshitake Takata
 
PDF
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
schoowebcampus
 
PDF
楽天がCloud foundryを選んだ理由
Rakuten Group, Inc.
 
PDF
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Yoshihito Kuranuki
 
PDF
Heroku Getting Started
Ayumu Aizawa
 
PDF
Issues of Rubyists
Ayumu Aizawa
 
PPTX
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
VirtualTech Japan Inc.
 
PPTX
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
Nobuyuki Tamaoki
 
PDF
Heroku Inside
Ayumu Aizawa
 
PDF
Open棟梁 v2 ソリューション化検討資料
Daisuke Nishino
 
PDF
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ayumu Aizawa
 
PDF
PaaS / Cloud Foundry makes you happy
Katsunori Kawaguchi
 
PPTX
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
JUNICHI YOSHISE
 
PDF
herokuもおもしろそうだよ(よこはまクラウド勉強会LT資料)
Kentaro Takasaki
 
プロフェッショナルのための 実践 Heroku 入門
Salesforce Developers Japan
 
Heroku でカンタンすぐに実現する CI/CD
Takashi Abe
 
(Ruby + Agile) x Cloud = Like!
Ayumu Aizawa
 
Social Enterprise Java Apps on Heroku Webinar
Salesforce Developers Japan
 
Building Scalable Application on the Cloud
Keisuke Nishitani
 
PaaSで簡単Railsアプリを公開しよう!
Yoshitake Takata
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎
schoowebcampus
 
楽天がCloud foundryを選んだ理由
Rakuten Group, Inc.
 
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Yoshihito Kuranuki
 
Heroku Getting Started
Ayumu Aizawa
 
Issues of Rubyists
Ayumu Aizawa
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
VirtualTech Japan Inc.
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
Nobuyuki Tamaoki
 
Heroku Inside
Ayumu Aizawa
 
Open棟梁 v2 ソリューション化検討資料
Daisuke Nishino
 
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ayumu Aizawa
 
PaaS / Cloud Foundry makes you happy
Katsunori Kawaguchi
 
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
JUNICHI YOSHISE
 
herokuもおもしろそうだよ(よこはまクラウド勉強会LT資料)
Kentaro Takasaki
 
Ad

More from Ayumu Aizawa (19)

PDF
Introducing Fn Project
Ayumu Aizawa
 
PDF
Heroku
Ayumu Aizawa
 
PDF
Heroku Changelog in 2013
Ayumu Aizawa
 
PDF
Connected Products
Ayumu Aizawa
 
PDF
Heroku Update Jul, 2013
Ayumu Aizawa
 
PDF
Heroku Update
Ayumu Aizawa
 
PDF
Heroku - Forget Servers!!
Ayumu Aizawa
 
PDF
Heroku Postgres
Ayumu Aizawa
 
PDF
Using Ruby2.0 on Heroku
Ayumu Aizawa
 
PDF
Enterprise Heroku for Java
Ayumu Aizawa
 
PDF
Heroku
Ayumu Aizawa
 
PDF
カスタムアプリケーションプラットフォーム Salesforce Heroku ~ ソーシャルアプリケーションを支える技術 ~
Ayumu Aizawa
 
PDF
Herokuのご紹介
Ayumu Aizawa
 
PDF
Heroku Introduction
Ayumu Aizawa
 
PDF
Herokuのご紹介
Ayumu Aizawa
 
PDF
Building scalablewebapps
Ayumu Aizawa
 
PDF
Heroku in Japan
Ayumu Aizawa
 
PDF
SIerのなかのRubyistが書くべき成果物の具体例
Ayumu Aizawa
 
PDF
もしRubyistがドラッガーの『マネジメント』を読んだら
Ayumu Aizawa
 
Introducing Fn Project
Ayumu Aizawa
 
Heroku
Ayumu Aizawa
 
Heroku Changelog in 2013
Ayumu Aizawa
 
Connected Products
Ayumu Aizawa
 
Heroku Update Jul, 2013
Ayumu Aizawa
 
Heroku Update
Ayumu Aizawa
 
Heroku - Forget Servers!!
Ayumu Aizawa
 
Heroku Postgres
Ayumu Aizawa
 
Using Ruby2.0 on Heroku
Ayumu Aizawa
 
Enterprise Heroku for Java
Ayumu Aizawa
 
Heroku
Ayumu Aizawa
 
カスタムアプリケーションプラットフォーム Salesforce Heroku ~ ソーシャルアプリケーションを支える技術 ~
Ayumu Aizawa
 
Herokuのご紹介
Ayumu Aizawa
 
Heroku Introduction
Ayumu Aizawa
 
Herokuのご紹介
Ayumu Aizawa
 
Building scalablewebapps
Ayumu Aizawa
 
Heroku in Japan
Ayumu Aizawa
 
SIerのなかのRubyistが書くべき成果物の具体例
Ayumu Aizawa
 
もしRubyistがドラッガーの『マネジメント』を読んだら
Ayumu Aizawa
 

PaaSに適したアプリケーション設計 がもたらすメリット