【17-e-2】ruby paas「mogok」 ~...

49
Ruby PaaSMOGOKため ウド ~ ソフトェアエンニアのためウドサース~ 株式会社インターネットイニシアティブ 1

Upload: developers-summit

Post on 01-Nov-2014

11 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

Ruby PaaS「MOGOK」ウ ジ ため ク ウド ビ~ ソフトウェアエンジニアのためのクラウドサービス~

株式会社インターネットイニシアティブ

1

Page 2: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

目次目次

はじめに

クラウドサ ビスの普及による変化クラウドサービスの普及による変化

ソフトウェアエンジニアの仕事は変化したかソ ウ ア ンジ ア 仕事 変化

処方箋は何か

S「 OGO による リ シRuby PaaS「MOGOK」によるソリューション

MOGOK β版のご紹介MOGOK β版のご紹介

MOGOKチュートリアル

MOGOKのこれから

終わりに

2

終わりに

2

Page 3: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

はじめに

33

Page 4: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

クラウドサービスの普及による変化

44

Page 5: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

クラウドサービスとは何かクラウドサ ビスとは何か

ネットワーク経由で様々な

ITリソースを利用するサービスの総称

クラウドサ ビ 事業者 利用者クラウドサービス事業者 利用者

ネットワーク

ITリソースとはサーバリソースト ジリ

55

ストレージリソースアプリケーションインスタンス ...

Page 6: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

クラウドサービスの提供形態

アセットレス物理的制約開発生産性特定業務の

クラウドサ ビスの提供形態お客様への提供価値

アセットレス化

物理的制約からの解放

開発生産性向上

特定業務の即時開始

SaaS 開発 実行環境

特定アプリケーション

PaaS

SaaS

仮想サ バ

開発・実行環境

IaaS

PaaS

物理サ バ

仮想サーバ

HaaS

IaaS 物理サーバ

66

HaaS

Page 7: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

クラウドサービス市場の傾向クラウドサ ビス市場の傾向

現在はIaaSが中心

IaaSとは?

サーバインスタンスを提供するサービスサ バインスタンスを提供するサ ビス=「素のOS」渡し

クラウドサ ビ 事業者はサ バイクラウドサービス事業者はサーバインスタンスの動作のみ保証タン の動作のみ保証

ミドルウェアやアプリケーションは利用者が導入

77

が導入

Page 8: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

IaaSの普及による変化IaaSの普及による変化

サーバエンジニアの仕事が激減

どう変わったか?

データセンタのラックを確保し サーデータセンタのラックを確保し、サーバをキッティングし、ラッキングし、

ブ グケーブリングし、OSインストールし... という仕事がまったく不要になったという仕事がまったく不要になった

サーバ構築を中心とするインテグレ シ ン市場は縮小の見通しレーション市場は縮小の見通し

代わって、クラウドコンサルティング

88

代わって、クラウドコンサルティングなるビジネスが勃興

Page 9: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ソフトウ ア ンジ アの仕事はソフトウェアエンジニアの仕事は変化したか変化したか

99

Page 10: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ソフトウェアエンジニアのお仕事ソフトウェア ンジ アのお仕事

会議、会議、会議 ... 社会人としてのお勤め

企画/要件定義/設計/実装/テスト装(いわゆる開発5工程/狭義の「ソフトウェア開発」)

環境構築 調査/検証対外発表/

勉強会

1010

Page 11: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

何かが変わったか?何かが変わったか?

ク ウドサ ビ が普及し もクラウドサービスが普及しても

ほとんど変化していないほとんど変化していない

狭義の「ソフトウェア開発」はまったく楽な なになっていない。

サーバエンジニアのやっていたことが、API等を使えばソフトウ アで制御できAPI等を使えばソフトウェアで制御でき

るようになっただけ。(むしろ、やるべき

1111

るようになっただけ。(むしろ、やる きことが増えている)

Page 12: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

何かが変わったか?(続き)何かが変わったか?(続き)

ソフトウェアエンジニアの仕事を広義でとらえても広義でとらえても

いまだクラウドの恩恵はないまだクラウドの恩恵はな

会議会議社会人としてのお勤め対外発表/勉強会

そもそも人間系でむずかしい

対外発表/勉強会むず

環境構築調査/検証

楽できる可能性あるかも?

1212

調査/検証 あるかも?

Page 13: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

楽をする?楽をする?

楽をする さぼる× 楽をする = さぼる

○ 楽をする○ 楽をする= 最小限の労力で目的達成= 開発生産性を上げる

1313

Page 14: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

処方箋は何か

1414

Page 15: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

開発生産性を上げるための方法開発生産性を上げるための方法

様々な方法があるが特効薬はない

古くて新しい方法(=ずっと未解決)

開発生産性が高いプログラミング言語やフレームワークの採用フレ ムワ クの採用ソフトウェア再利用標準 通標準化/共通化コードジェネレーションコ ドジェネレ ション静的解析ツールテスト自動化ツ ル

1515

テスト自動化ツール

Page 16: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

クラウドサービスによる処方箋クラウドサ ビスによる処方箋

ジ 多 事ソフトウェアエンジニアのより多くの仕事を

クラウド側に転嫁するクラウド側に転嫁するソフトウェア

クラウドサービスソフトウェアエンジニア

ネットワーク

狭義の「ソフトウェア開発」

言語実行環境/ミドルウェアフレームワーク/ライブラリ群フレ ムワ ク/ライブラリ群バージョン管理リポジトリバグトラッキング継続的インテグレーション

それ以外

転嫁それ以外

1616

継続的インテグレ ションデプロイツール

転嫁

Page 17: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

R b P S「MOGOK によるRuby PaaS「MOGOK」によるソリューションソリ ション

1717

Page 18: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

PaaSとは何かPaaSとは何か

お客様アプリケ ションのためのお客様アプリケーションのための

開発支援環境と開発支援環境と

実行環境を組み合わせたもの実行環境を組み合わせたもの

1818

Page 19: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

Ruby PaaS「MOGOK」とはRuby PaaS MOGOK」とは

Ruby on Railsアプリケ シ ンのRuby on Railsアプリケーションの

開発支援環境と開発支援環境と

実行環境を提供するクラウドサ ビス実行環境を提供するクラウドサービス

1919

Page 20: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOKのソリューションMOGOKのソリュ ション

Ruby on Railsの採用

オブジ クト指向言語 再利用性をオブジェクト指向言語Rubyで再利用性を向上向上少ないコード記述量で開発できるRuby

R il で開発生産性を向上on Railsで開発生産性を向上

オンラインサインア プオンラインサインアップ

オンラインサインアップすればすぐ使えるオンラインサインアップすればすぐ使える面倒な環境構築は不要

2020

Page 21: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOKのソリューション(続き)MOGOKのソリュ ション(続き)

自動デプロイ機能

G リポジトリから実行環境 自動デプGitリポジトリから実行環境への自動デプロイ機能

実行環境の提供

ロイ機能

実行環境の提供

自動デプロイされたRailsアプリケーショ自動デ され ア リケ シンをすぐ動かせる

開発環境として または そのまま本番開発環境として、または、そのまま本番環境としても使える

2121

Page 22: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOKの全体像MOGOKの全体像Ruby App開発者 エンドユーザ

MOGOKSDK

ローカルGitリポジトリ

インターネットgit push

リクエストル タ

サインアップSDKダウンロード

ユーザポータル

サーバプール

リクエストルータSDKダウンロ ドデプロイ実行

...

サーバプール

W b J b DBリモートP t lデプロイ

2222

Web Job DBリモ トGitリポジトリ

Portal

Page 23: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOK β版のご紹介

2323

Page 24: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOK β版のご提供内容MOGOK β版のご提供内容

開発支援環境

ザポ タユーザポータルクライアントパッケージクライアントパッケ ジGitリポジトリ

実行環境

WebプロセスDBプロセスJobプロセス(提供予定)

2424

Jobプロセス(提供予定)

Page 25: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ユーザポータルユ ザポ タル

• オンラインサインアップ後、MOGOKに対すオ ラ アッ 後、 対する様々な操作が可能

2525

Page 26: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

クライアントパッケージクライアントパッケ ジ

または

Ruby実行環境

CRuby 1.8.7 または 1.9.2Linux版RPMパッケージLinux版RPMパッケ ジWindows版インストーラ

コマンドラインツール(mogokコマンド)

ex.$ mogok craete アプリケ ション作成$ mogok craete アプリケーション作成$ mogok rake rakeタスク実行

2626

$ mogok deploy アプリケーションデプロイ

Page 27: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

GitリポジトリGitリポジトリ

プ ケ シ あたり

リモートGitリポジトリ提供

1アプリケーションあたり100MB一般的なGitクライアントで操作可能般的なGitクライアントで操作可能

実行環境への自動デプロイ

ユーザポータル/mogokコマンドで指示

2727

Page 28: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

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まで

Page 29: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

DBプロセスDBプロセス

M SQL 5 5RDBMS

MySQL 5.5InnoDBのみサポート対象準同期レプリケーション構成ノンストップ機能ノンストップ機能複数世代のバックアップ機能あり

データサイズの制限

メモリ100MBまでデ タ ま

2929

データファイル100MBまで

Page 30: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOKチュートリアル

3030

Page 31: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

オンラインサインアップオンラインサインアップ

ユーザポータルのWebUIでサインアップユ ザポ タルのWebUIでサインアップ(オープンβ版公開までは停止中...)

3131

Page 32: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

SDKダウンロード/インストールSDKダウンロ ド/インスト ル

3232

Page 33: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ローカル側の操作ロ カル側の操作Ruby App開発者 エンドユーザ

ローカルGitリポジトリSDK

インターネットgit push

リクエストル タ

サインアップSDKダウンロード

ユーザポータル

サーバプール

リクエストルータSDKダウンロ ドデプロイ実行

...

サーバプール

W b J b DBリモートP t lデプロイ

3333

Web Job DBリモ トGitリポジトリ

Portal

Page 34: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ローカル側の操作手順(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作成

Page 35: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ローカル側の操作手順(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

Page 36: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ローカル側の操作手順(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

Page 37: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOK側の操作MOGOK側の操作Ruby App開発者 エンドユーザ

ローカルGitリポジトリSDK

インターネットgit push

リクエストル タ

サインアップSDKダウンロード

ユーザポータル

サーバプール

リクエストルータSDKダウンロ ドデプロイ実行

...

サーバプール

W b J b DBリモートP t lデプロイ

3737

Web Job DBリモ トGitリポジトリ

Portal

Page 38: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

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

Page 39: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

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

Page 40: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

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

...

Page 41: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

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

Page 42: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

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

Page 43: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOKのこれから

4343

Page 44: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

MOGOKの将来像MOGOKの将来像

MOGOKMOGOK

MemREST API型 ⽇本語MemCache BTSREST API型

ストレージ CI テクニカルサポート

ソフトウェアエンジニアがソフトウェアエンジニアがプログラミングに集中できるサ ビスを目指します!

4444

サービスを目指します!

Page 45: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

終わりに

4545

Page 46: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

http://mogok.jp/http://mogok.jp/

4646

Page 47: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

一緒にMOGOKをつくりませんか?緒にMOGOKを くりませんか?

R b / R bRuby / Ruby on Railsの経験者募集中!募集中!

4747

Page 48: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

ご清聴ありがとうござ ま たご清聴ありがとうございました

お問い合わせ先 IIJインフォメーションセンターTEL:03-5205-4466 (9:30~17:30 土/日/祝日除く)[email protected]://www.iij.ad.jp/

48

Page 49: 【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏

インターネットの先にいます。

IIJはこれまで、日本のインターネットはどうあるべきかを考え、

つねに先駆者として インタ ネットの可能性を切り拓いてきましたつねに先駆者として、インターネットの可能性を切り拓いてきました。

インターネットの未来を想い、イノベーションに挑戦し続けることで、世界を塗り変えていく。

それは、これからも変わることのない姿勢です。

IIJの真ん中のIはイニシアティブ IIJはいつもはじまりであり、未来です。

お問い合わせ先 IIJインフォメーションセンターTEL:03-5205-4466 (9:30~17:30 土/日/祝日除く)

[email protected]://www.iij.ad.jp/p j jp

49