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

1,955 views
1,867 views

Published on

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,955
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
57
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

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

  1. 1. Ruby PaaS「MOGOK」~ ソフトウェアエンジニアのためのクラウドサービス~ ウ ジ ため ク ウド ビ株式会社インターネットイニシアティブ 1
  2. 2. 目次はじめにクラウドサービスの普及による変化クラウドサ ビスの普及による変化ソ ウ ア ンジ ア 仕事 変化ソフトウェアエンジニアの仕事は変化したか処方箋は何かRuby PaaS「MOGOK」によるソリューション S「 OGO による リ シMOGOK β版のご紹介MOGOKチュートリアルMOGOKのこれから終わりに 2
  3. 3. はじめに 3
  4. 4. クラウドサービスの普及による変化 4
  5. 5. クラウドサ ビスとは何かクラウドサービスとは何か ネットワーク経由で様々な ITリソースを利用するサービスの総称クラウドサービス事業者クラウドサ ビ 事業者 利用者 ネットワークITリソースとは サーバリソース ストレージリソース ト ジリ アプリケーションインスタンス ... 5
  6. 6. クラウドサ ビスの提供形態クラウドサービスの提供形態 お客様への提供価値 特定業務の 開発生産性 物理的制約 アセットレス 即時開始 向上 からの解放 化特定アプリケーション SaaS 開発・実行環境 開発 実行環境 PaaS 仮想サーバ 仮想サ バ IaaS 物理サーバ 物理サ バ HaaS 6
  7. 7. クラウドサ ビス市場の傾向クラウドサービス市場の傾向 現在はIaaSが中心IaaSとは? サ バインスタンスを提供するサ ビス サーバインスタンスを提供するサービス =「素のOS」渡し クラウドサービス事業者はサーバインス クラウドサ ビ 事業者はサ バイ タン の動作のみ保証 タンスの動作のみ保証 ミドルウェアやアプリケーションは利用者 が導入 7
  8. 8. IaaSの普及による変化 サーバエンジニアの仕事が激減 どう変わったか? データセンタのラックを確保し、サー データセンタのラックを確保し サー バをキッティングし、ラッキングし、 ケーブリングし、OSインストールし... ブ グ という仕事がまったく不要になった サーバ構築を中心とするインテグ レーション市場は縮小の見通し レ シ ン市場は縮小の見通し 代わって、クラウドコンサルティング なるビジネスが勃興 8
  9. 9. ソフトウェアエンジニアの仕事はソフトウ ア ンジ アの仕事は 変化したか 9
  10. 10. ソフトウェア ンジ アのお仕事ソフトウェアエンジニアのお仕事 会議、会議、会議 ... 社会人としてのお勤め 企画/要件定義/設計/実装/テスト 装 (いわゆる開発5工程/狭義の「ソフトウェア開発」) 対外発表/ 環境構築 調査/検証 勉強会 10
  11. 11. 何かが変わったか? クラウドサービスが普及しても ク ウドサ ビ が普及し も ほとんど変化していない 狭義の「ソフトウェア開発」はまったく楽 になっていない。 な な サーバエンジニアのやっていたことが、 API等を使えばソフトウェアで制御でき API等を使えばソフトウ アで制御でき るようになっただけ。(むしろ、やる き るようになっただけ。(むしろ、やるべき ことが増えている) 11
  12. 12. 何かが変わったか?(続き) ソフトウェアエンジニアの仕事を 広義でとらえてもいまだクラウドの恩恵はない まだクラウドの恩恵はな 会議 そもそも人間系で 社会人としてのお勤め むず むずかしい 対外発表/勉強会 環境構築 楽できる可能性 調査/検証 あるかも? 12
  13. 13. 楽をする? × 楽をする = さぼる ○ 楽をする = 最小限の労力で目的達成 = 開発生産性を上げる 13
  14. 14. 処方箋は何か 14
  15. 15. 開発生産性を上げるための方法 様々な方法があるが特効薬はない古くて新しい方法(=ずっと未解決) 開発生産性が高いプログラミング言語や フレ ムワ クの採用 フレームワークの採用 ソフトウェア再利用 標準化/共通化 標準 通 コ ドジェネレ ション コードジェネレーション 静的解析ツール テスト自動化ツール テスト自動化ツ ル 15
  16. 16. クラウドサ ビスによる処方箋クラウドサービスによる処方箋 ソフトウェアエンジニアのより多くの仕事を ジ 多 事 クラウド側に転嫁する ソフトウェア クラウドサービス エンジニア ネットワーク 狭義の言語実行環境/ミドルウェア 「ソフトウェア開発」フレ ムワ ク/ライブラリ群フレームワーク/ライブラリ群バージョン管理リポジトリバグトラッキング それ以外 それ以外継続的インテグレ ション継続的インテグレーション 転嫁デプロイツール 16
  17. 17. Ruby PaaS「MOGOK」によるR b P S「MOGOK による ソリ ソリューション ション 17
  18. 18. PaaSとは何かお客様アプリケーションお客様アプリケ ションのための 開発支援環境と 実行環境を組み合わせたもの 18
  19. 19. Ruby PaaS MOGOK」とは PaaS「MOGOK」とは Ruby on Railsアプリケ シ ンの アプリケーションの 開発支援環境と 実行環境を提供するクラウドサ ビス を提供するクラウドサービス 19
  20. 20. MOGOKのソリュ ションMOGOKのソリューション Ruby on Railsの採用 オブジェクト指向言語Rubyで再利用性を オブジ クト指向言語 再利用性を 向上 少ないコード記述量で開発できるRuby on R il で開発生産性を向上 Railsで開発生産性を向上 オンラインサインアップ オンラインサインア プ オンラインサインアップすればすぐ使える 面倒な環境構築は不要 20
  21. 21. MOGOKのソリュ ション(続き)MOGOKのソリューション(続き) 自動デプロイ機能 Gitリポジトリから実行環境への自動デプ G リポジトリから実行環境 自動デプ ロイ機能 実行環境の提供 自動デ 自動デプロイされたRailsアプリケーショ され ア リケ シ ンをすぐ動かせる 開発環境として、または、そのまま本番 開発環境として または そのまま本番 環境としても使える 21
  22. 22. MOGOKの全体像Ruby App開発者 エンドユーザ MOGOK ローカル SDK Gitリポジトリ git push インターネットユーザポータル サインアップ SDKダウンロ ド SDKダウンロード デプロイ実行 リクエストルータ リクエストル タ... サーバプール デプロイ Portal P t l リモ ト リモート Gitリポジトリ Web Job W b J b DB 22
  23. 23. MOGOK β版のご紹介 23
  24. 24. MOGOK β版のご提供内容 開発支援環境 ユーザポータル ザポ タ クライアントパッケ ジ クライアントパッケージ Gitリポジトリ 実行環境 Webプロセス DBプロセス Jobプロセス(提供予定) 24
  25. 25. ユ ザポ タルユーザポータル• オンラインサインアップ後、MOGOKに対す オ ラ アッ 後、 対す る様々な操作が可能 25
  26. 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. 27. Gitリポジトリ リモートGitリポジトリ提供 1アプリケーションあたり100MB プ ケ シ あたり 一般的なGitクライアントで操作可能 般的なGitクライアントで操作可能 実行環境への自動デプロイ ユーザポータル/mogokコマンドで指示 27
  28. 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. 29. DBプロセス RDBMS MySQL 5 5 M SQL 5.5 InnoDBのみサポート対象 準同期レプリケーション構成 ノンストップ機能 複数世代のバックアップ機能あり データサイズの制限 メモリ100MBまで データファイル100MBまで デ タ ま 29
  30. 30. MOGOKチュートリアル 30
  31. 31. オンラインサインアップ ユ ザポ タルのWebUIでサインアップ ユーザポータルのWebUIでサインアップ (オープンβ版公開までは停止中...) 31
  32. 32. SDKダウンロ ド/インスト ルSDKダウンロード/インストール 32
  33. 33. ロ カル側の操作ローカル側の操作Ruby App開発者 エンドユーザ ローカル SDK Gitリポジトリ git push インターネットユーザポータル サインアップ SDKダウンロ ド SDKダウンロード デプロイ実行 リクエストルータ リクエストル タ... サーバプール デプロイ Portal P t l リモ ト リモート Gitリポジトリ Web Job W b J b DB 33
  34. 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. 35. ロ カル側の操作手順(2)ローカル側の操作手順(2)> rails generate scaffold Bookmarktitle:string url:string ローカルDBに> rake db:migrate db migrate テーブル作成 テ ブル作成 ロ カルのWEBrick ローカルのWEBrick> rails server で確認 http://localhost:3000/bookmarks 35
  36. 36. ロ カル側の操作手順(3)ローカル側の操作手順(3)> git init> git add .> git commit -m "first commit" m create mode ... ローカルリポジトリの create mode ... 作成 create mode ...> git status g 確認# On branch masternothing t commit ( thi to it (working di t ki directory cl l 36
  37. 37. MOGOK側の操作Ruby App開発者 エンドユーザ ローカル SDK Gitリポジトリ git push インターネットユーザポータル サインアップ SDKダウンロ ド SDKダウンロード デプロイ実行 リクエストルータ リクエストル タ... サーバプール デプロイ Portal P t l リモ ト リモート Gitリポジトリ Web Job W b J b DB 37
  38. 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 key1: ssh-rsa AAAB3NzaC1yc2EAABIwA y... 確認 38
  39. 39. MOGOK側の操作手順(2) MOGOKに アプリケーション作成> mogok create mogok-sample mogok sampleCreating App: mogok-sample mogok sampleDone!Git remote mogok added リモートリポジトリも ポジ も 同時に作成される 39
  40. 40. MOGOK側の操作手順(3)> git remote -vmogok git@git.mogok.jp:mogok-sample.gitsample git (fetch)mogok git@git.mogok.jp:mogok- git@git.mogok.jp:mogoksample.git (push) ローカルリポジトリから リモートリポジトリに ソースコードをpush> git push mogok masterCompressing object 100%. done. p g jWriting object 100%. done.... 40
  41. 41. MOGOK側の操作手順(4) リモ トリポジトリから リモートリポジトリから> mogok deploy 実行環境にデプロイInfo checking.. checkingGit pulling..Bundler installing..App deploying..Gem deploying.. deployingDone! このホストで実行http://mogok-sample.ruby.iijgio.com/ 41
  42. 42. MOGOK側の操作手順(5) MOGOKに DBテーブル作成> mogok rake db migrate db:migrate ロ カルWEB i kと ローカルWEBrickと 同じ表示が出たら成功! http://mogok-sample.ruby.iijgio.com/bookmarks/ 42
  43. 43. MOGOKのこれから 43
  44. 44. MOGOKの将来像 MOGOK ⽇本語REST API型 Mem BTS CI テクニカル ストレージ Cache サポート ソフトウェアエンジニアが プログラミングに集中できる サービスを目指します! サ ビスを目指します! 44
  45. 45. 終わりに 45
  46. 46. http://mogok.jp/ 46
  47. 47. 一緒にMOGOKをつくりませんか? 緒にMOGOKを くりませんか?Ruby R bR b / Ruby onRailsの経験者募集中! 47
  48. 48. ご清聴ありがとうございました ご清聴ありがとうござ ま たお問い合わせ先 IIJインフォメーションセンターTEL:03-5205-4466 (9:30~17:30 土/日/祝日除く)info@iij.ad.jphttp://www.iij.ad.jp/ 48
  49. 49. インターネットの先にいます。IIJはこれまで、日本のインターネットはどうあるべきかを考え、つねに先駆者として、インターネットの可能性を切り拓いてきました。つねに先駆者として インタ ネットの可能性を切り拓いてきましたインターネットの未来を想い、イノベーションに挑戦し続けることで、世界を塗り変えていく。それは、これからも変わることのない姿勢です。IIJの真ん中のIはイニシアティブ IIJはいつもはじまりであり、未来です。 お問い合わせ先 IIJインフォメーションセンター TEL:03-5205-4466 (9:30~17:30 土/日/祝日除く) info@iij.ad.jp p j jp http://www.iij.ad.jp/ 49

×