際際滷

際際滷Share a Scribd company logo
Railsエンジニアが
サ`バ`レスア`キテクチャに
返を竃したよ
寒鍋Ruby氏h01
賠邦 俛湊 @pachirel
徭失B初
? 賠邦 俛湊 @pachirel
? クックパッドでアプリケ`ションエンジニア
Rails, iOS富?)
? 肇定から、ソラコムでSIMをいています
? Kawasaki.rb には1定念、寒鍋偏への哈埆しをCに歌紗
枷のまろ=
徭失B初
賠邦 俛湊 Yuta Shimizu @pachirel
よく聞う冱Z Ruby, HTML & CSS & Javascript (Alt JS)
ときどきく冱Z Swift
Rubys 4定くらい
Kawasaki.rb はs1定念に寒鍋偏に哈っ埆したのをCに歌紗
恷除のお碧並
岷除のI嫩敞
Railsエンジニアが サ`バ`レスア`キテクチャに 返を竃したよ - 寒鍋Ruby氏h01
Railsエンジニアが サ`バ`レスア`キテクチャに 返を竃したよ - 寒鍋Ruby氏h01
Railsエンジニアが サ`バ`レスア`キテクチャに 返を竃したよ - 寒鍋Ruby氏h01
Railsエンジニアが サ`バ`レスア`キテクチャに 返を竃したよ - 寒鍋Ruby氏h01
エンジニアリング麗尖
云籾
廣吭
? サ`バ`レスア`キテクチャに返を竃したをします
? Ruby(Rails)のはほとんどありません
?
なぜサ`バ`レスア`キテクチャの
? Kawasaki.rb はいつもRuby參翌のk燕も謹いから
? 恷除Rubyをけていないから
? サ`バ`サイドRailsくらいRailsびいきだった徭蛍にとって、室gの
xk岔がえたから
がきっかけ
? RoRな氏芙から、AWSな氏芙┘好食`トアップへ
? エンジニアの繁方が匯蓐pった 方噴繁 -> 方繁
? 書までは奉チ`ムがやってくれていたAWSのリソ`ス砿尖?\喘を、
徭蛍たちでやる駅勣がある
? 泙蕕譴身吠とrg。ちょっとした宴旋サ`ビスを恬ろうと房ったr
に、徭蛍でEC2インスタンスを羨ててO協したり、Oしたりするのが
中宜
? なるべくマネ`ジドサ`ビスを聞おう
? Y惚議に、サ`バ`レスな撹を駻辰垢襪海箸癲
サ`バ`レスア`キテクチャ
? AWS Lambda (Function as a Service) のリリ`スをCに腹り貧がってき
た
? 麿芙クラウドも戻工 Azure Functions (preview), Google CloudFunctions (Alpha
release), IBM OpenWhisk (preview)
? OpenWhisk はオ`プンソ`スで巷_されている
? https://github.com/openwhisk/openwhisk
? 徭蛍でホスティングするというよりは、嘛を委燐したり、個鋲するためとJRしてます。
? 徭蛍でサ`バ`を砿尖しない愁戰鵐制`が戻工するサ`ビスを旋喘
? Sできるが、ベンダ`ロックインのリスクもある
? マイクロサ`ビス、Distributed Computing とvB
https://developer.ibm.com/openwhisk/
gHに恬った箭 (シンプルなワ`クフロ`砿尖 bot)
? }
? 貧望にQ加を函りたいが、翌竃が謹くてなかなか俺まらない
? そこで、スマホから_Jして鬉靴討發蕕┐Slackにきzんで覚Jをもらっ
ていたが、送れてしまうので瘁からまとめてられず音宴
? Q加システムを秘れるほどのトでもないし、コストもかかる
gHに恬った箭 (シンプルなワ`クフロ`砿尖 bot)
賦宀
覚J宀
砿尖宀
Slack
AWS Lambda Dynamo DBAPI Gateway
Outgoing webhook
賦
覚J
匯Eの函誼
!submit title
!approve ID
!list approved 2016-08
HTTP
POST
Invoke R/W
(a怎) Slack の outgoing webhook
? 蒙協の猟忖双パタ`ンの秘薦をフックに、Slackから翌何サ`バ`に
POSTリクエストを僕ることができる。
? JSONのレスポンスを卦せば、卦並ができ、gなBotが恬れる。
Slack
External
Service
Slack
External
Service
Incoming webhook
箭) github の宥岑とか
Outgoing webhook
AWS API Gateway
? AWS Lambda をHTTPで澣けるようにするための贋壓
? REST API を協xできて、それぞれのメソッドに鬉垢Lambda
Functionを鞠hすることができる
? リクエストのValidationや、Bodyの坪否をLambdaの秘薦侘塀に栽うよ
うにQしたりすることができる。
? リクエスト指方、デ`タ僕楚に鬉犬腎n署
AWS Lambda
? 仝∀襯稀`バ`を処りる 々EC2よりダイレクトに、
仝v方をg佩するリソ`ス (CPU, メモリ) を処りる 々
ことができる
? n署は參和によってQまる
? リクエスト指方
? コンピュ`ティングrg聞喘メモリg佩rg
? g佩h廠は Node.js, Python, Java
Node.js, Python, Java
?
噫JRubyがあるじゃないか
? AWS Lambda JavaでJRuby
? http://qiita.com/c9katayama/items/653e10ce32aa3036418d
? Gradle でビルドして、 zip ファイルにRs
? 麿の圭もBってた
? http://pprakash.me/tech/2015/11/29/executing-ruby-code-in-aws-lambda/
? 書指はここを条り和げることはできませんでしたRubyの茶氏なの
に???? この並に櫃鼎い燭僚餝だし...
AWS Lambda を聞う圭隈
? Webコンソ`ルから
? 恷兜はこれが蛍かりやすいと房います
? 巷塀のCLI
? サ`ドパ`ティのライブラリを聞う
? Apex 吉
AWS Dynamo DB
? No SQLデ`タベ`ス
? ほとんどO協しないで聞える、お返Xなデ`タストア
? R/Wスル`プットとデ`タ否楚でn署
? スル`プットを聞い俳るとエラ`になるので廣吭
湖
? 措かった泣
? Slackからコマンドで荷恬できるので、麿のアプリが音勣
? Lambda はg佩指方に鬉犬腎n署なので、芦
? Q加の指方は埖に方噴指殻業なので、ほぼo創Lambdaはアカウントあたり、惟
1,000,000 指の柵び竃し、400,000 GB-昼のコンピュ`ティングrgがo創旋喘
? 個鋲泣
? 仝コマンドを嬉つ々のがエンジニアでない繁にとってはTれが駅勣
? ときどきコマンドにW决がk伏する埖に1業あるかないか、方蛍
? 圻咀音苧Lambdaのg佩rgはログ貧でも玉いので、Lambdaの軟咾rgがかかっ
ているSlackのOutgoing Webhook にW决がある
(噫) Slack Buttons
? Slackのメッセ`ジにたいして、インタラクティブに鬴陲任る仟C嬬
? Slack App を恬撹する駅勣がある
? OAuthJ^をg廾しないといけない
? Slack Appは児云議に巷_されることを覿┐靴討い襪里如芙坪喘にちょろっと聞
う
聞いどころ
? まずはシンプルな芙坪ツ`ルがオススメ
? リクエスト方が謹くない -> サ`バ`羨てるよりまず芦い
? APIが富ないので、瘁峰のツ`ルを聞わなくてもなんとかなる
? 械rコネクションをるような喘余には聞えない
? hubot とか
僥び
? Ruby聞えない JRuby なら聞えるらしいのでチャレンジしたい
? Boto3 にられて Python xんだら、 鬋乂`ジョンが 2.7。 Python晩云Z
I尖のを圸gる
? Java / Node.js のほうが措いかも
? AWSのWEBコンソ`ルを岷俊乾るのはTれるまでにしておいたほう
がよい
? 伉をこめた返咼妊廛蹈い簫O協筝がつらい
? とはいえ、恷兜から JSON でO協するには朕が謹く、輿仇娠がないとつら
い
? サ`ドパ`ティuのCLIを聞ってSしたい (Serverless, Apex)
? もう富し}jなアプリケ`ションにチャレンジしてみたい
? AWS參翌のクラウドも乾ってみたい
サ`ドパ`ティuのCLI
http://serverless.com/
まとめ
? サ`バ`を羨てなくてもAPIサ`バ`が芦に恬れる
? Ruby にネイティブ鬉靴燭蕕いい???
? ちょっとしたHackのxk岔の1つになれば侑いです
ご賠ありがとうございました
References
? http://qiita.com/zerobase/items/3bc0d15980b472af841d
? http://martinfowler.com/articles/serverless.html

More Related Content

Railsエンジニアが サ`バ`レスア`キテクチャに 返を竃したよ - 寒鍋Ruby氏h01