Contenu connexe Similaire à 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏 Similaire à 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏 (20) Plus de Developers Summit Plus de Developers Summit (20) 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏5. クラウドサ ビスとは何か
クラウドサービスとは何か
ネットワーク経由で様々な
ITリソースを利用するサービスの総称
クラウドサービス事業者
クラウドサ ビ 事業者 利用者
ネットワーク
ITリソースとは
サーバリソース
ストレージリソース
ト ジリ
アプリケーションインスタンス ...
5
6. クラウドサ ビスの提供形態
クラウドサービスの提供形態
お客様への提供価値
特定業務の 開発生産性 物理的制約 アセットレス
即時開始 向上 からの解放 化
特定アプリケーション
SaaS 開発・実行環境
開発 実行環境
PaaS 仮想サーバ
仮想サ バ
IaaS 物理サーバ
物理サ バ
HaaS
6
7. クラウドサ ビス市場の傾向
クラウドサービス市場の傾向
現在はIaaSが中心
IaaSとは?
サ バインスタンスを提供するサ ビス
サーバインスタンスを提供するサービス
=「素のOS」渡し
クラウドサービス事業者はサーバインス
クラウドサ ビ 事業者はサ バイ
タン の動作のみ保証
タンスの動作のみ保証
ミドルウェアやアプリケーションは利用者
が導入
7
8. IaaSの普及による変化
サーバエンジニアの仕事が激減
どう変わったか?
データセンタのラックを確保し、サー
データセンタのラックを確保し サー
バをキッティングし、ラッキングし、
ケーブリングし、OSインストールし...
ブ グ
という仕事がまったく不要になった
サーバ構築を中心とするインテグ
レーション市場は縮小の見通し
レ シ ン市場は縮小の見通し
代わって、クラウドコンサルティング
なるビジネスが勃興
8
11. 何かが変わったか?
クラウドサービスが普及しても
ク ウドサ ビ が普及し も
ほとんど変化していない
狭義の「ソフトウェア開発」はまったく楽
になっていない。
な な
サーバエンジニアのやっていたことが、
API等を使えばソフトウェアで制御でき
API等を使えばソフトウ アで制御でき
るようになっただけ。(むしろ、やる き
るようになっただけ。(むしろ、やるべき
ことが増えている)
11
13. 楽をする?
× 楽をする = さぼる
○ 楽をする
= 最小限の労力で目的達成
= 開発生産性を上げる
13
16. クラウドサ ビスによる処方箋
クラウドサービスによる処方箋
ソフトウェアエンジニアのより多くの仕事を
ジ 多 事
クラウド側に転嫁する
ソフトウェア
クラウドサービス
エンジニア
ネットワーク
狭義の
言語実行環境/ミドルウェア
「ソフトウェア開発」
フレ ムワ ク/ライブラリ群
フレームワーク/ライブラリ群
バージョン管理リポジトリ
バグトラッキング
それ以外 それ以外
継続的インテグレ ション
継続的インテグレーション 転嫁
デプロイツール
16
19. Ruby PaaS MOGOK」とは
PaaS「MOGOK」とは
Ruby on Railsアプリケ シ ンの
アプリケーションの
開発支援環境と
実行環境を提供するクラウドサ ビス
を提供するクラウドサービス
19
20. MOGOKのソリュ ション
MOGOKのソリューション
Ruby on Railsの採用
オブジェクト指向言語Rubyで再利用性を
オブジ クト指向言語 再利用性を
向上
少ないコード記述量で開発できるRuby
on R il で開発生産性を向上
Railsで開発生産性を向上
オンラインサインアップ
オンラインサインア プ
オンラインサインアップすればすぐ使える
面倒な環境構築は不要
20
21. MOGOKのソリュ ション(続き)
MOGOKのソリューション(続き)
自動デプロイ機能
Gitリポジトリから実行環境への自動デプ
G リポジトリから実行環境 自動デプ
ロイ機能
実行環境の提供
自動デ
自動デプロイされたRailsアプリケーショ
され ア リケ シ
ンをすぐ動かせる
開発環境として、または、そのまま本番
開発環境として または そのまま本番
環境としても使える
21
22. MOGOKの全体像
Ruby App開発者 エンドユーザ
MOGOK ローカル
SDK Gitリポジトリ
git push
インターネット
ユーザポータル
サインアップ
SDKダウンロ ド
SDKダウンロード
デプロイ実行 リクエストルータ
リクエストル タ
...
サーバプール
デプロイ
Portal
P t l リモ ト
リモート
Gitリポジトリ
Web Job
W b J b DB
22
24. MOGOK β版のご提供内容
開発支援環境
ユーザポータル
ザポ タ
クライアントパッケ ジ
クライアントパッケージ
Gitリポジトリ
実行環境
Webプロセス
DBプロセス
Jobプロセス(提供予定)
24
26. クライアントパッケ ジ
クライアントパッケージ
Ruby実行環境
CRuby 1.8.7 または 1.9.2
Linux版RPMパッケ ジ
Linux版RPMパッケージ
Windows版インストーラ
コマンドラインツール(mogokコマンド)
ex.
$ mogok craete アプリケ ション作成
アプリケーション作成
$ mogok rake rakeタスク実行
$ mogok deploy アプリケーションデプロイ
26
27. Gitリポジトリ
リモートGitリポジトリ提供
1アプリケーションあたり100MB
プ ケ シ あたり
一般的なGitクライアントで操作可能
般的なGitクライアントで操作可能
実行環境への自動デプロイ
ユーザポータル/mogokコマンドで指示
27
28. Webプロセス
Ruby/Gems
CRuby 1.8.7
CR b 1 8 7 または 1 9 2
1.9.2
bundlerでrubygems.orgから任意のgem
yg g g
をインストール
アプリケーションサーバ
プ バ
Thin 1 2 11
1.2.11
アプリケーションサイズの制限
ファイルサイズ100MBまで(gem含む)
メモリ200MBまで
28
29. DBプロセス
RDBMS
MySQL 5 5
M SQL 5.5
InnoDBのみサポート対象
準同期レプリケーション構成
ノンストップ機能
複数世代のバックアップ機能あり
データサイズの制限
メモリ100MBまで
データファイル100MBまで
デ タ ま
29
31. オンラインサインアップ
ユ ザポ タルのWebUIでサインアップ
ユーザポータルのWebUIでサインアップ
(オープンβ版公開までは停止中...)
31
33. ロ カル側の操作
ローカル側の操作
Ruby App開発者 エンドユーザ
ローカル
SDK Gitリポジトリ
git push
インターネット
ユーザポータル
サインアップ
SDKダウンロ ド
SDKダウンロード
デプロイ実行 リクエストルータ
リクエストル タ
...
サーバプール
デプロイ
Portal
P t l リモ ト
リモート
Gitリポジトリ
Web Job
W b J b DB
33
34. ロ カル側の操作手順(1)
ローカル側の操作手順(1)
> mkdir ¥rails_app ワーキング
> cd ¥rails_app ディレクトリ作成
> rails ne mogok sample -d m sql
new mogok-sample d mysql
create ...
Railsアプリケーション
create ... 作成
create ...
> cd .¥mogok-sample
g p
> rake db:create:all
ロ カルDB作成
ローカルDB作成
34
35. ロ カル側の操作手順(2)
ローカル側の操作手順(2)
> rails generate scaffold Bookmark
title:string url:string ローカルDBに
> rake db:migrate
db migrate テーブル作成
テ ブル作成
ロ カルのWEBrick
ローカルのWEBrick
> rails server で確認
http://localhost:3000/bookmarks
35
36. ロ カル側の操作手順(3)
ローカル側の操作手順(3)
> git init
> git add .
> git commit -m "first commit"
m
create mode ...
ローカルリポジトリの
create mode ... 作成
create mode ...
> git status
g 確認
# On branch master
nothing t commit (
thi to it (working di t
ki directory cl
l
36
37. MOGOK側の操作
Ruby App開発者 エンドユーザ
ローカル
SDK Gitリポジトリ
git push
インターネット
ユーザポータル
サインアップ
SDKダウンロ ド
SDKダウンロード
デプロイ実行 リクエストルータ
リクエストル タ
...
サーバプール
デプロイ
Portal
P t l リモ ト
リモート
Gitリポジトリ
Web Job
W b J b DB
37
38. MOGOK側の操作手順(1)
SSH公開鍵・
> ssh-keygen -t rsa 秘密鍵作成
Generating p blic/pri ate rsa key pair
public/private ke
... MOGOKに
公開鍵登録
> mogok key add ./.ssh/id_rsa.pub
> mogok key
1: ssh-rsa AAAB3NzaC1yc2EAABIwA
y
... 確認
38
39. MOGOK側の操作手順(2)
MOGOKに
アプリケーション作成
> mogok create mogok-sample
mogok sample
Creating App: mogok-sample
mogok sample
Done!
Git remote mogok added
リモートリポジトリも
ポジ も
同時に作成される
39
40. MOGOK側の操作手順(3)
> git remote -v
mogok git@git.mogok.jp:mogok-
sample.git
sample git (fetch)
mogok git@git.mogok.jp:mogok-
git@git.mogok.jp:mogok
sample.git (push) ローカルリポジトリから
リモートリポジトリに
ソースコードをpush
> git push mogok master
Compressing object 100%. done.
p g j
Writing object 100%. done.
...
40
41. MOGOK側の操作手順(4)
リモ トリポジトリから
リモートリポジトリから
> mogok deploy 実行環境にデプロイ
Info checking..
checking
Git pulling..
Bundler installing..
App deploying..
Gem deploying..
deploying
Done! このホストで実行
http://mogok-sample.ruby.iijgio.com/
41
42. MOGOK側の操作手順(5)
MOGOKに
DBテーブル作成
> mogok rake db migrate
db:migrate
ロ カルWEB i kと
ローカルWEBrickと
同じ表示が出たら成功!
http://mogok-sample.ruby.iijgio.com/bookmarks/
42
44. MOGOKの将来像
MOGOK
⽇本語
REST API型 Mem
BTS CI テクニカル
ストレージ Cache
サポート
ソフトウェアエンジニアが
プログラミングに集中できる
サービスを目指します!
サ ビスを目指します!
44
48. ご清聴ありがとうございました
ご清聴ありがとうござ ま た
お問い合わせ先 IIJインフォメーションセンター
TEL:03-5205-4466 (9:30~17:30 土/日/祝日除く)
info@iij.ad.jp
http://www.iij.ad.jp/
48