Upload
developers-summit
View
9
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
Ruby PaaS「MOGOK」ウ ジ ため ク ウド ビ~ ソフトウェアエンジニアのためのクラウドサービス~
株式会社インターネットイニシアティブ
1
目次目次
はじめに
クラウドサ ビスの普及による変化クラウドサービスの普及による変化
ソフトウェアエンジニアの仕事は変化したかソ ウ ア ンジ ア 仕事 変化
処方箋は何か
S「 OGO による リ シRuby PaaS「MOGOK」によるソリューション
MOGOK β版のご紹介MOGOK β版のご紹介
MOGOKチュートリアル
MOGOKのこれから
終わりに
2
終わりに
2
はじめに
33
クラウドサービスの普及による変化
44
クラウドサービスとは何かクラウドサ ビスとは何か
ネットワーク経由で様々な
ITリソースを利用するサービスの総称
クラウドサ ビ 事業者 利用者クラウドサービス事業者 利用者
ネットワーク
ITリソースとはサーバリソースト ジリ
55
ストレージリソースアプリケーションインスタンス ...
クラウドサービスの提供形態
アセットレス物理的制約開発生産性特定業務の
クラウドサ ビスの提供形態お客様への提供価値
アセットレス化
物理的制約からの解放
開発生産性向上
特定業務の即時開始
SaaS 開発 実行環境
特定アプリケーション
PaaS
SaaS
仮想サ バ
開発・実行環境
IaaS
PaaS
物理サ バ
仮想サーバ
HaaS
IaaS 物理サーバ
66
HaaS
クラウドサービス市場の傾向クラウドサ ビス市場の傾向
現在はIaaSが中心
IaaSとは?
サーバインスタンスを提供するサービスサ バインスタンスを提供するサ ビス=「素のOS」渡し
クラウドサ ビ 事業者はサ バイクラウドサービス事業者はサーバインスタンスの動作のみ保証タン の動作のみ保証
ミドルウェアやアプリケーションは利用者が導入
77
が導入
IaaSの普及による変化IaaSの普及による変化
サーバエンジニアの仕事が激減
どう変わったか?
データセンタのラックを確保し サーデータセンタのラックを確保し、サーバをキッティングし、ラッキングし、
ブ グケーブリングし、OSインストールし... という仕事がまったく不要になったという仕事がまったく不要になった
サーバ構築を中心とするインテグレ シ ン市場は縮小の見通しレーション市場は縮小の見通し
代わって、クラウドコンサルティング
88
代わって、クラウドコンサルティングなるビジネスが勃興
ソフトウ ア ンジ アの仕事はソフトウェアエンジニアの仕事は変化したか変化したか
99
ソフトウェアエンジニアのお仕事ソフトウェア ンジ アのお仕事
会議、会議、会議 ... 社会人としてのお勤め
企画/要件定義/設計/実装/テスト装(いわゆる開発5工程/狭義の「ソフトウェア開発」)
環境構築 調査/検証対外発表/
勉強会
1010
何かが変わったか?何かが変わったか?
ク ウドサ ビ が普及し もクラウドサービスが普及しても
ほとんど変化していないほとんど変化していない
狭義の「ソフトウェア開発」はまったく楽な なになっていない。
サーバエンジニアのやっていたことが、API等を使えばソフトウ アで制御できAPI等を使えばソフトウェアで制御でき
るようになっただけ。(むしろ、やるべき
1111
るようになっただけ。(むしろ、やる きことが増えている)
何かが変わったか?(続き)何かが変わったか?(続き)
ソフトウェアエンジニアの仕事を広義でとらえても広義でとらえても
いまだクラウドの恩恵はないまだクラウドの恩恵はな
会議会議社会人としてのお勤め対外発表/勉強会
そもそも人間系でむずかしい
対外発表/勉強会むず
環境構築調査/検証
楽できる可能性あるかも?
1212
調査/検証 あるかも?
楽をする?楽をする?
楽をする さぼる× 楽をする = さぼる
○ 楽をする○ 楽をする= 最小限の労力で目的達成= 開発生産性を上げる
1313
処方箋は何か
1414
開発生産性を上げるための方法開発生産性を上げるための方法
様々な方法があるが特効薬はない
古くて新しい方法(=ずっと未解決)
開発生産性が高いプログラミング言語やフレームワークの採用フレ ムワ クの採用ソフトウェア再利用標準 通標準化/共通化コードジェネレーションコ ドジェネレ ション静的解析ツールテスト自動化ツ ル
1515
テスト自動化ツール
クラウドサービスによる処方箋クラウドサ ビスによる処方箋
ジ 多 事ソフトウェアエンジニアのより多くの仕事を
クラウド側に転嫁するクラウド側に転嫁するソフトウェア
クラウドサービスソフトウェアエンジニア
ネットワーク
狭義の「ソフトウェア開発」
言語実行環境/ミドルウェアフレームワーク/ライブラリ群フレ ムワ ク/ライブラリ群バージョン管理リポジトリバグトラッキング継続的インテグレーション
それ以外
転嫁それ以外
1616
継続的インテグレ ションデプロイツール
転嫁
R b P S「MOGOK によるRuby PaaS「MOGOK」によるソリューションソリ ション
1717
PaaSとは何かPaaSとは何か
お客様アプリケ ションのためのお客様アプリケーションのための
開発支援環境と開発支援環境と
実行環境を組み合わせたもの実行環境を組み合わせたもの
1818
Ruby PaaS「MOGOK」とはRuby PaaS MOGOK」とは
Ruby on Railsアプリケ シ ンのRuby on Railsアプリケーションの
開発支援環境と開発支援環境と
実行環境を提供するクラウドサ ビス実行環境を提供するクラウドサービス
1919
MOGOKのソリューションMOGOKのソリュ ション
Ruby on Railsの採用
オブジ クト指向言語 再利用性をオブジェクト指向言語Rubyで再利用性を向上向上少ないコード記述量で開発できるRuby
R il で開発生産性を向上on Railsで開発生産性を向上
オンラインサインア プオンラインサインアップ
オンラインサインアップすればすぐ使えるオンラインサインアップすればすぐ使える面倒な環境構築は不要
2020
MOGOKのソリューション(続き)MOGOKのソリュ ション(続き)
自動デプロイ機能
G リポジトリから実行環境 自動デプGitリポジトリから実行環境への自動デプロイ機能
実行環境の提供
ロイ機能
実行環境の提供
自動デプロイされたRailsアプリケーショ自動デ され ア リケ シンをすぐ動かせる
開発環境として または そのまま本番開発環境として、または、そのまま本番環境としても使える
2121
MOGOKの全体像MOGOKの全体像Ruby App開発者 エンドユーザ
MOGOKSDK
ローカルGitリポジトリ
インターネットgit push
リクエストル タ
サインアップSDKダウンロード
ユーザポータル
サーバプール
リクエストルータSDKダウンロ ドデプロイ実行
...
サーバプール
W b J b DBリモートP t lデプロイ
2222
Web Job DBリモ トGitリポジトリ
Portal
MOGOK β版のご紹介
2323
MOGOK β版のご提供内容MOGOK β版のご提供内容
開発支援環境
ザポ タユーザポータルクライアントパッケージクライアントパッケ ジGitリポジトリ
実行環境
WebプロセスDBプロセスJobプロセス(提供予定)
2424
Jobプロセス(提供予定)
ユーザポータルユ ザポ タル
• オンラインサインアップ後、MOGOKに対すオ ラ アッ 後、 対する様々な操作が可能
2525
クライアントパッケージクライアントパッケ ジ
または
Ruby実行環境
CRuby 1.8.7 または 1.9.2Linux版RPMパッケージLinux版RPMパッケ ジWindows版インストーラ
コマンドラインツール(mogokコマンド)
ex.$ mogok craete アプリケ ション作成$ mogok craete アプリケーション作成$ mogok rake rakeタスク実行
2626
$ mogok deploy アプリケーションデプロイ
GitリポジトリGitリポジトリ
プ ケ シ あたり
リモートGitリポジトリ提供
1アプリケーションあたり100MB一般的なGitクライアントで操作可能般的なGitクライアントで操作可能
実行環境への自動デプロイ
ユーザポータル/mogokコマンドで指示
2727
WebプロセスWebプロセス
CR b 1 8 7 または 1 9 2Ruby/Gems
CRuby 1.8.7 または 1.9.2bundlerでrubygems.orgから任意のgemyg g gをインストール
プ バ
Thin 1 2 11アプリケーションサーバ
アプリケーションサイズの制限
Thin 1.2.11
アプリケーションサイズの制限
ファイルサイズ100MBまで(gem含む)
2828
ファイルサイズ100MBまで(gem含む)メモリ200MBまで
DBプロセスDBプロセス
M SQL 5 5RDBMS
MySQL 5.5InnoDBのみサポート対象準同期レプリケーション構成ノンストップ機能ノンストップ機能複数世代のバックアップ機能あり
データサイズの制限
メモリ100MBまでデ タ ま
2929
データファイル100MBまで
MOGOKチュートリアル
3030
オンラインサインアップオンラインサインアップ
ユーザポータルのWebUIでサインアップユ ザポ タルのWebUIでサインアップ(オープンβ版公開までは停止中...)
3131
SDKダウンロード/インストールSDKダウンロ ド/インスト ル
3232
ローカル側の操作ロ カル側の操作Ruby App開発者 エンドユーザ
ローカルGitリポジトリSDK
インターネットgit push
リクエストル タ
サインアップSDKダウンロード
ユーザポータル
サーバプール
リクエストルータSDKダウンロ ドデプロイ実行
...
サーバプール
W b J b DBリモートP t lデプロイ
3333
Web Job DBリモ トGitリポジトリ
Portal
ローカル側の操作手順(1)ロ カル側の操作手順(1)> mkdir ¥rails_app ワーキング
> cd ¥rails_app> rails ne mogok sample d m sql
ディレクトリ作成
> rails new mogok-sample -d mysqlcreate ...create ...create ... Railsアプリケーション
作成
create ...
> cd .¥mogok-sampleg p> rake db:create:all
ローカルDB作成
3434
ロ カルDB作成
ローカル側の操作手順(2)ロ カル側の操作手順(2)> rails generate scaffold Bookmarktitle:string url:string> rake db migrate
ローカルDBにテ ブル作成> rake db:migrate テーブル作成
ローカルのWEBrick> rails server
ロ カルのWEBrickで確認
http://localhost:3000/bookmarks
3535
ローカル側の操作手順(3)ロ カル側の操作手順(3)> git init> git add .> git commit m "first commit"> git commit -m "first commit"
create mode ...create mode ...create mode ... ローカルリポジトリの
作成
create mode ...
> git status 確認g# On branch master
thi t it ( ki di t l3636
nothing to commit (working directory cl
MOGOK側の操作MOGOK側の操作Ruby App開発者 エンドユーザ
ローカルGitリポジトリSDK
インターネットgit push
リクエストル タ
サインアップSDKダウンロード
ユーザポータル
サーバプール
リクエストルータSDKダウンロ ドデプロイ実行
...
サーバプール
W b J b DBリモートP t lデプロイ
3737
Web Job DBリモ トGitリポジトリ
Portal
MOGOK側の操作手順(1)MOGOK側の操作手順(1)
SSH公開鍵・
> ssh-keygen -t rsaGenerating p blic/pri ate rsa ke pair
秘密鍵作成
Generating public/private rsa key pair... MOGOKに... MOGOKに
公開鍵登録
> mogok key add ./.ssh/id_rsa.pub> mogok key> mogok key1: ssh-rsa AAAB3NzaC1yc2EAABIwAy... 確認
3838
MOGOK側の操作手順(2)MOGOK側の操作手順(2)
MOGOKに
> mogok create mogok sample
MOGOKにアプリケーション作成
> mogok create mogok-sampleCreating App: mogok-sampleCreating App: mogok sampleDone!Git remote mogok added
ポジ もリモートリポジトリも同時に作成される
3939
MOGOK側の操作手順(3)MOGOK側の操作手順(3)> git remote -vmogok [email protected]:mogok-sample git (fetch)sample.git (fetch)mogok [email protected]:mogok-mogok [email protected]:mogoksample.git (push) ローカルリポジトリから
リモートリポジトリに
> git push mogok master
リモートリポジトリにソースコードをpush
> git push mogok masterCompressing object 100%. done.p g jWriting object 100%. done.
4040
...
MOGOK側の操作手順(4)MOGOK側の操作手順(4)
リモートリポジトリから
> mogok deployInfo checking
リモ トリポジトリから実行環境にデプロイ
Info checking..Git pulling..Git pulling..Bundler installing..App deploying..Gem deployingGem deploying..Done! このホストで実行
http://mogok-sample.ruby.iijgio.com/
4141
MOGOK側の操作手順(5)MOGOK側の操作手順(5)
MOGOKに
> mogok rake db migrate
MOGOKにDBテーブル作成
> mogok rake db:migrate
ロ カルWEB i kとローカルWEBrickと同じ表示が出たら成功!
http://mogok-sample.ruby.iijgio.com/bookmarks/
4242
MOGOKのこれから
4343
MOGOKの将来像MOGOKの将来像
MOGOKMOGOK
MemREST API型 ⽇本語MemCache BTSREST API型
ストレージ CI テクニカルサポート
ソフトウェアエンジニアがソフトウェアエンジニアがプログラミングに集中できるサ ビスを目指します!
4444
サービスを目指します!
終わりに
4545
http://mogok.jp/http://mogok.jp/
4646
一緒にMOGOKをつくりませんか?緒にMOGOKを くりませんか?
R b / R bRuby / Ruby on Railsの経験者募集中!募集中!
4747
ご清聴ありがとうござ ま たご清聴ありがとうございました
お問い合わせ先 IIJインフォメーションセンターTEL:03-5205-4466 (9:30~17:30 土/日/祝日除く)[email protected]://www.iij.ad.jp/
48
インターネットの先にいます。
IIJはこれまで、日本のインターネットはどうあるべきかを考え、
つねに先駆者として インタ ネットの可能性を切り拓いてきましたつねに先駆者として、インターネットの可能性を切り拓いてきました。
インターネットの未来を想い、イノベーションに挑戦し続けることで、世界を塗り変えていく。
それは、これからも変わることのない姿勢です。
IIJの真ん中のIはイニシアティブ IIJはいつもはじまりであり、未来です。
お問い合わせ先 IIJインフォメーションセンターTEL:03-5205-4466 (9:30~17:30 土/日/祝日除く)
[email protected]://www.iij.ad.jp/p j jp
49