Suche senden
Hochladen
CGI Perlでわかる!サーバレス
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
203,286 views
Tatsuro Hisamori
Folgen
YAPC::Kansai 2017でお話をした、CGIでサーバレスを理解するというトークのスライドです
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 25
Jetzt herunterladen
Empfohlen
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
Sansan
WAVE_WITH_GLSL
WAVE_WITH_GLSL
理玖 川崎
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Kenji Mori
やさしいSassり方
やさしいSassり方
祐磨 堀
Sassの魅力
Sassの魅力
Hiroki Nigorinuma
Ranking system by Elasticsearch
Ranking system by Elasticsearch
Kazuhiro Osawa
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
azumakuniyuki 🐈
オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発
dokechin
Empfohlen
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
Sansan
WAVE_WITH_GLSL
WAVE_WITH_GLSL
理玖 川崎
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Kenji Mori
やさしいSassり方
やさしいSassり方
祐磨 堀
Sassの魅力
Sassの魅力
Hiroki Nigorinuma
Ranking system by Elasticsearch
Ranking system by Elasticsearch
Kazuhiro Osawa
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
azumakuniyuki 🐈
オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発
dokechin
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LT
maka2donzoko
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
azumakuniyuki 🐈
First step of Performance Tuning
First step of Performance Tuning
risou
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
sairoutine
2017年春のPerl
2017年春のPerl
charsbar
Twitterの被ブロック数可視化ツールを作ってみた
Twitterの被ブロック数可視化ツールを作ってみた
おさ OSA
GoogleのSHA-1のはなし
GoogleのSHA-1のはなし
MITSUNARI Shigeo
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
azuma satoshi
マーケットプレイス・ガイドブック
マーケットプレイス・ガイドブック
Mikihiro Yasuda
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10
Daiki Ichinose
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Ichito Nagata
Riakmeetup2forupload
Riakmeetup2forupload
Tatsuro Hisamori
Html5j 8
Html5j 8
Tatsuro Hisamori
YAPC::Europe 2014 に行ってきました
YAPC::Europe 2014 に行ってきました
Tatsuro Hisamori
YAPCEurope2014-myfinder
YAPCEurope2014-myfinder
Tatsuro Hisamori
今更聞けないストリーム処理のあれとかこれ
今更聞けないストリーム処理のあれとかこれ
Tatsuro Hisamori
Mashup Awards 2016
Mashup Awards 2016
真一 藤川
Weitere ähnliche Inhalte
Andere mochten auch
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LT
maka2donzoko
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
azumakuniyuki 🐈
First step of Performance Tuning
First step of Performance Tuning
risou
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
sairoutine
2017年春のPerl
2017年春のPerl
charsbar
Twitterの被ブロック数可視化ツールを作ってみた
Twitterの被ブロック数可視化ツールを作ってみた
おさ OSA
GoogleのSHA-1のはなし
GoogleのSHA-1のはなし
MITSUNARI Shigeo
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
azuma satoshi
マーケットプレイス・ガイドブック
マーケットプレイス・ガイドブック
Mikihiro Yasuda
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10
Daiki Ichinose
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Ichito Nagata
Riakmeetup2forupload
Riakmeetup2forupload
Tatsuro Hisamori
Html5j 8
Html5j 8
Tatsuro Hisamori
YAPC::Europe 2014 に行ってきました
YAPC::Europe 2014 に行ってきました
Tatsuro Hisamori
YAPCEurope2014-myfinder
YAPCEurope2014-myfinder
Tatsuro Hisamori
今更聞けないストリーム処理のあれとかこれ
今更聞けないストリーム処理のあれとかこれ
Tatsuro Hisamori
Mashup Awards 2016
Mashup Awards 2016
真一 藤川
Andere mochten auch
(20)
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LT
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
First step of Performance Tuning
First step of Performance Tuning
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
2017年春のPerl
2017年春のPerl
Twitterの被ブロック数可視化ツールを作ってみた
Twitterの被ブロック数可視化ツールを作ってみた
GoogleのSHA-1のはなし
GoogleのSHA-1のはなし
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
マーケットプレイス・ガイドブック
マーケットプレイス・ガイドブック
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
Riakmeetup2forupload
Riakmeetup2forupload
Html5j 8
Html5j 8
YAPC::Europe 2014 に行ってきました
YAPC::Europe 2014 に行ってきました
YAPCEurope2014-myfinder
YAPCEurope2014-myfinder
今更聞けないストリーム処理のあれとかこれ
今更聞けないストリーム処理のあれとかこれ
Mashup Awards 2016
Mashup Awards 2016
CGI Perlでわかる!サーバレス
1.
CGI/Perlでわかる! サーバレス Tatsuro Hisamori id:myfinder github.com/myfinder twitter.com/myfinder
2.
YAPC::Kansai 2017のテーマ 温故知新 昔の事をたずね求め(=温) そこから新しい知識・見解を導くこと
3.
今日お話しすること •前半 •“温故” = CGI
/ Perl •後半 •“知新” = Serverless
4.
今日の想定対象 •サーバレス的なものに 触ったことがない人 •サーバレスがいまいち わからない人 •サーバレス的なものに これから取組みたい人
5.
Server = サーバ,
less = ??? •サーバなきゃサービスできな い •あたりまえ •サーバレス ≠ サーバ無し •よりサーバを意識しない •もっとコードに集中する •そのための環境
6.
サーバレスって盛り上がってるの? 0 2 4 6 8 2015/10 2015/11 2015/12 2016/01 2016/02 2016/03 2016/04 2016/05 2016/06 2016/07 2016/08 2016/09 2016/10 2016/11 2016/12 2017/01 Serverless にマッチしたイベント数 イベント数 出典: https://www.dropbox.com/s/3975vp9kmkxg9l1/azureを使った開発でわかったこと.pptx?dl=0 2016年8月9月から急に盛り上がり始めた。 この頃ちょうど
Serverless Meetup が国内でも始まったタイミング。 先行した AWS Lambda の事例や、その他クラウドの対応が本格化。
7.
温故知新 の “温故” CGIでPerl
8.
CGI? •Common Gateway Interface •Webサーバでプログラムを動 かす仕組み •環境変数と標準入出力が扱え る言語ならOK •RFC
3875
9.
CGI プログラムの動作 Client - Browser -
Program Server - HTTPd - inetd CGI - perl - etc サーバ側 環境変数 標準入出力リクエスト
10.
例) Apache +
PerlでCGI • httpd.conf(から読み込まれているもの) • Directory • どのディレクトリにあるファイルを対象とするか • Options +ExecCGI • 対象ディレクトリ内のファイルをCGIとして実行できるようにする • あと必要ならAddHandlerでどの拡張子のファイルがCGIかも指定する • CGIプログラム • レスポンスヘッダ • 典型的には Content-type や Content-length など • レスポンスボディ • Content-type で指定しているデータ本体、典型的にはHTMLや画像、JSON等 http://httpd.apache.org/docs/2.0/ja/howto/cgi.html
11.
裏側は何が起こっているのか • 環境変数 • クライアントからわたってくる情報や、サーバ自身がどのように動い ているかの情報が入っている •
$ENV{'HTTP_USER_AGENT'}; • $ENV{‘REQUEST_URI’}; • 標準入出力 • 標準入力からはPOSTリクエストのデータを受け取る • read(STDIN,$in,$ENV{'CONTENT_LENGTH'}); • 標準出力へはレスポンスを出力する(前述のCGI) • #!/usr/bin/perl print "Content-type: text/htmlnn"; foreach $key (keys %ENV) { print "$key --> $ENV{$key}<br>"; }
12.
CGIがやってくれないこと •認証(API Key) •スケールアウト •デプロイ環境の整備 •実行管理 •モニタリング環境の整備
13.
CGIが出てきていた時代 •ずっと起動しているとサーバリ ソースがmottainai •利用頻度が不定な業務上必要な プログラムがある •それらはいつ叩かれるか不定 •レイテンシの重要度は低かった
14.
温故知新 の “知新” CGI/Perlで学ぶ サーバレス
15.
Perlがちゃんと活躍できそうな基盤と理由 •Microsoft Azure Functions •Bash(MINGW64)環境 •ランタイムがオープンソース =
どのようにメッセージが渡っ てくるかが公開されている •Openwhisk •こちらも実装がオープンソース •Dockerが使える
16.
Perl+Azureでサーバレスをやる動機 •連携できるサービスが多い •NoSQL, Search, API,
Storage, Queue, http(Webhook), Twillio, etc •面倒なことを面倒見てくれる •スケール •認証 •デプロイ環境
17.
Azure Functionsの動作(HTTPトリガの場合) Client - Browser -
Program Trigger - HTTP - etc Function - perl - etc Function App 環境変数 ファイル - $req - $res リクエスト
18.
例) Azure Functions
+ Perlでサーバレス • function.json • bindings -> 連携サービスの記述 • type -> イベントの発火や処理後の出力の記述 • run.sh • 現状エントリポイントの対応がbashで、これは残念ながら決め打ち • func.pl • 処理本体
19.
裏側は何が起こっているのか • 環境変数 • クライアントからわたってくる情報や、サーバ自身がどのように動い ているかの情報が入っている •
REQ_QUERY_* • クエリパラメタ • REQ_HEADERS_* • リクエストヘッダ • ファイル • リクエストファイルからはPOSTリクエストや、連携するサービスか らのデータを受け取る • 環境変数 $REQ で指定されるファイルパス • レスポンスファイルへはレスポンスを出力する(前述のCGI) • 環境変数 $RES で指定されるファイルパス https://github.com/Azure/azure-webjobs-sdk-script/wiki/function.json
20.
その他やってくれていること •認証(API Key) •スケールアウト •デプロイ環境の整備 •実行管理 •モニタリング環境の整備
21.
もうちょっとまっとうにデプロイする例 •Sisimai
22.
サーバレスで我々が手に入れるもの •スケール •真の従量課金 •単機能に分離されたシンプルな コード •コーディングレスでの多サービ ス連携 •必要なコードだけに集中する環 境
23.
サーバレスを考えるべき時 •利用頻度が不定な業務上必要な API(プログラム)がある •それらはいつ叩かれるか不定 •レイテンシの重要度は低い •CGI同様、それでなんでもか んでも解決するわけではない
24.
今日お話ししたこと •“温故知新” •サーバレスはCGI/Perlから紐解く “再発見+α” と考えると理解しやすいと思う •古の知識は新しいことを理解す るのに役立つ(こともある)
25.
サーバレスとは 21世紀のCGI/Perl と考えると わかりやすい
Jetzt herunterladen