IIJ Technical WEEK 2013 1日目 #iij_tw2013
-
IIJ_doumae
- 4934
- 0
- 2
- 10
![](https://s.togetter.com/static/web/img/placeholder.gif)
遅くなりました&お役に立つかわかりませんが、会場受付近辺のiPadのうちの一つにランチ情報リンク集を仕込んでもらいました。#iij_tw2013 @matsumotory (略)さっと1人で入れてうまくて安い店を数店知っておきたいけど、そんな都合のよいリストないかな…
2013-11-19 15:35:09アプリ開発を楽にするRuby PaaS「MOGOK」について
IIJプラットフォーム本部 プラットフォームサービス部 プラットフォーム開発課 阿部 博
IIJではRuby on Rails対応のPaaSであるMOGOKを提供しています。面倒なWebサーバやDBサーバのセットアップを行わず、簡単にRuby on Railsのアプリを世界へと公開することができるPaaS基盤についてご紹介します。また、PaaSを導入する事により、何がどのように楽に/便利になるのかを解説します。
![](https://s.togetter.com/static/web/img/placeholder.gif)
【IIJ Technical WEEK 2013】アプリ開発を楽にするRuby PaaS「MOGOK」について / IIJ プラットフォームサービス部 阿部 博 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:05:06![](https://s.togetter.com/static/web/img/placeholder.gif)
IIJのイメージ。インターネットの会社、太いバックボーンを持っている、データセンターを持っている。自社クラウド(IIJ GIO)。セキュリティサービス。最近はモバイルサービスも。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:08:17![](https://s.togetter.com/static/web/img/placeholder.gif)
IIJ GIOブランドのIaaS、SaaSを提供中。ある程度ご利用いただいている。PaaSはそもそも日本に市場がありそうで、ない。言葉は知られているが、使われていない。IIJとしてトライすることに。市場を作る。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:09:26![](https://s.togetter.com/static/web/img/placeholder.gif)
PaaSの特徴。運用が楽、開発に注力できる。デプロイが楽。スケールアップ/アウトが容易。市場規模は?調査によると2016年で1070億円。IaaSは1035臆念。IaaSの市場規模を越えるという予測。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:10:55![](https://s.togetter.com/static/web/img/placeholder.gif)
IIJのPaaS http://t.co/nYXeTJDaja 「今すぐサインアップ」無料でPaaS環境が使えます。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:11:41![](https://s.togetter.com/static/web/img/placeholder.gif)
MOGOKの名前の由来。ミャンマーの地名。宝石のルビーの名前。(プログラミング言語)RubyのPaaSなので、それを引っかけた。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:12:35![](https://s.togetter.com/static/web/img/placeholder.gif)
Ruby on Railsが動作するインスタンスとDBを提供。共用型サービスとして提供している。操作はポータルサイト、mogokコマンドから行う。コマンドは20個ほど。アプリの管理やサーバの設定など。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:14:14![](https://s.togetter.com/static/web/img/placeholder.gif)
アプリケーションを起動するまでの手順。コードを書いて、gitレポジトリにcommit。pushしてmogokコマンドで指示すると、アプリが動作する。アカウント作成は5分で。ぽちぽちだけでアプリを動かせる。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:15:40![](https://s.togetter.com/static/web/img/placeholder.gif)
PaaSの本質とは何だろうか?あまり議論されていない。IaaSではない理由。開発者が開発に専念→運用からの解放。開発と運用を一体化するDevOpsが流行しているが、障害が起こると開発が止まってしまう問題も。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:17:24![](https://s.togetter.com/static/web/img/placeholder.gif)
オンプレのシステムだとインフラの調達から開発者が関わっているケースも。クラウドであったとしてもそれなりの手間が。環境構築〜ソフトウェアの構成までの工数は大きい。セキュリティ対策は特に手間がかかる。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:18:45![](https://s.togetter.com/static/web/img/placeholder.gif)
建前「開発に専念させてください」本音「運用を肩代わりしてください」/運用をPaaS事業者へアウトソース。運用コストを支払うことで、開発に専念。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:19:38![](https://s.togetter.com/static/web/img/placeholder.gif)
ソースコードの管理のためのgitレポジトリを提供。build自動化、Web・DBサーバ提供。スケールアップ/アウトも提供。これらの運用はIIJに任せてしまう。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:20:51![](https://s.togetter.com/static/web/img/placeholder.gif)
セキュリティパッチがでた場合でも、アプリケーションを止めない形でIIJ側で適用。年に数回から数十回対応している。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:21:28![](https://s.togetter.com/static/web/img/placeholder.gif)
MOGOKのシステム、図は単純化しているが、実際にはサーバが50台とか動いている。複雑。今回はポイント3つに絞って説明する。リクエストルーティング・bundle install・LXC。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:23:31![](https://s.togetter.com/static/web/img/placeholder.gif)
リクエストルーティング。NginxでHTTP(s)リクエストを受けて、ユーザアプリへルーティング。URLをparseしてアプリケーションサーバへ転送。リクエストルータが担う。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:24:41![](https://s.togetter.com/static/web/img/placeholder.gif)
ユーザが新しいアプリケーションをデプロイすると、ルーティング情報が更新される。稼働しているアプリは数百〜数千。 スケールアウトのためにアプリのインスタンスを増やした場合もルーティングで負荷を分散制御している。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:26:49![](https://s.togetter.com/static/web/img/placeholder.gif)
bundle install。Rubyのアプリケーション配布の仕組み。gemと呼ばれるパッケージにライブラリやアプリがまとめられている。http://t.co/2s3fatQWvoで様々なライブラリが配布。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:27:54![](https://s.togetter.com/static/web/img/placeholder.gif)
gem間の依存関係が複雑、常に更新されている。それらの依存関係を解決して自動的にインストールするのがbundle install。mogokの場合mogok buildを実行するとサーバ側で実行される。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:29:02![](https://s.togetter.com/static/web/img/placeholder.gif)
mogok buildを実行すると、ライブラリやユーザアプリ込みの実行イメージが作成される。これがアプリケーションサーバで実行される。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:30:25![](https://s.togetter.com/static/web/img/placeholder.gif)
MOGOKのリクエストルータのところをmod_mrubyとかngx_mruby使ってリバースプロキシ箇所に直接実装してその後「不安定な部分を修正したました!」っていって素晴らしいpull-requestが来る所まで妄想した。 #iij_tw2013
2013-11-19 16:32:03![](https://s.togetter.com/static/web/img/placeholder.gif)
LXC。ユーザのアプリケーションを隔離するために使う。なぜ?ユーザのアプリが何か「悪さ」をする可能性がある。他のユーザやサーバへの迷惑をかけないように、隔離しておく必要がある。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:32:24![](https://s.togetter.com/static/web/img/placeholder.gif)
実行時だけでなく、bundle install実行時にmogok内部のレポジトリやサーバに対して攻撃を行うことができてしまう。外部からやってくるプログラムの安全性は不明。それを防ぐためにもLXCを使っている。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:33:25![](https://s.togetter.com/static/web/img/placeholder.gif)
LXCは仮想化の一種だが、VMwareのような完全仮想化ではなく、市振ソースを共有している。OpenVZに近い。アプリケーションコンテナでRailsを動作させるための専用コンテナを作成。 #iij_tw2013 http://t.co/RRBdP8Dr1V
2013-11-19 16:34:47