SlideShare ist ein Scribd-Unternehmen logo
1 von 63
+
できる!
サーバレスアーキテクチャ
Perlで乗りこなすAzure Functions
@ytnobody
+
わいとんです。よろしく!
 あずま さとし
 @ytnobody
 👶 Hakodate
 🏢 Roppongi
 🐪 CPAN Author / YTURTLE
 🍻 Ooimachi.pm(マチピー)
 perl node unity(C#) etc…
 The 何でも屋
+
話す事
 サーバレスアーキテクチャとは
 サーバレスアーキテクチャの歴史と現状
 Azure Functionsで作る理由
 Azure FunctionsとPerl
 Azure FunctionsとPerlを使ったサーバレスなシステム例
 まとめ
+
念のために言っておきますが・・・
MSの中の人ではありません。
回し者ではあるかもしれません
Azureユーザの一人としての見解です。
+
Section 1
サーバレスアーキテクチャとは
+
サーバレスアーキテクチャという
ワードに明確な定義はない
 よく言われるのがこの定義
 BaaS(Backend as a Service)を使ってイベントで接続する受動的な
システム
 FaaS(Function as a Service)を使ったフルマネージドな実行環境
 今でも定義自体に様々な議論がある
ちょっとよく
わからないですね
+
ぼくのかんがえた
さいきょうのていぎ
 自分で運用しない
 VMやサーバを使わない
 自分で作らない
 できるだけ外部サービスで済ませる
 道具をつないで目的を達成する
 なるべく外部サービス同士をつなぐロジックだけ書く
少しわかりやすく
なった気がしますね
+
サーバレスアーキテクチャの
主な構成要素
 PaaS - Platform as a Service
 FaaS - Function as a Service
 SaaS - Software as a Service
 DBaaS - DataBase as a Service
 CaaS - Cache as a Service
 QaaS - Queue as a Service
+
今回解説する”サーバレス〜”に
登場しないもの
 サーバ
 VM
 コンテナ・Docker
 IaaS
 LBあるいはLBに類されるもの
これまで触ってきたものが
根こそぎ登場しないッッッ!!!
+
サーバレスアーキテクチャに
何を求めるのか
 流行り?
 安さ?
 性能?
 それとも・・・?
+
Section2
サーバレスアーキテクチャの歴史と現状
+
2014年
サーバレスアーキテクチャの夜明け
 AWS Lambda
 Function as a Service
 AWS Aurora
 DB as a Service
 GCP Cloud SQL
 DB as a Service
+
2015年
Azureの密かなサーバレスシフト
 Azure
 Logic Apps
 ワークフロー自動化
+
2016年
サーバレスとSaaS隆盛の年
 AWS
 Rekognition 2016~
 画像認識
 Athena 2016~
 S3向けクエリサービス
 Polly 2016~
 テキスト読み上げ
 Pinpoint 2016~
 モバイルターゲティング通
知
 Batch 2016~
 Batch as a Service
 Step Function 2016~
 分散アプリ用ワークフロー
 GCP
 Cloud Functions
 Function as a Service
 Cloud Dataproc
 Hadoop as a Service
 Azure
 Functions
 Function as a Service
 Cognitive Services
 各種認知サービス
+
2017年
サーバレス実戦投入の年?
 既に2016年で実戦投入
 担当サービスのモバイルプッシュ
 間に処理が入るのでAzure Functionsで対応。
 毎分1000件以上の処理を捌いております。
+
各地で開催される
サーバレス関連イベント数の推移
 Connpass上で「serverless」で検索した結果のイベント数を月別に集
計
 https://gist.github.com/ytnobody/15bea58941817424962f7e1083971
450
0
1
2
3
4
5
6
7
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 にマッチしたイベント数
イベント数
+
Section 3
Azure Functionsで作る理由
+
Azure Functionsで作ると
享受できる恩恵(1)
 運用の手間からの解放
 サーバ/VM
 ネットワーク
 DB
 キャッシュ
 ジョブキュー
 環境構築の手間からの解放
 プロビジョニング
 ネットワーク構築
+
Azure Functionsで構築すると
享受できる恩恵(2)
 BaaSを利用した開発労力軽減
 顔画像からの個人識別
 自然言語の解釈
 モバイルプッシュの送信
 柔軟なスケーラビリティの獲得
 自動的なスケールアウト
 スケールアウトのための設計が不要
+
運用の手間からの解放
 サーバのセキュリティ対策のた
めにパッチを当てる仕事がなく
なる
 OpenSSLの脆弱性とか
 glibcの脆弱性とか
 サーバの負荷監視が不要になる
 ZabbixとかNewRelicとか
 topを叩く必要性もない
 なぜなら…
 サーバなどないから!
+
環境構築の手間からの解放
 環境は最初から整っている
 git, bash, nodeなどなど。
 基本、プロビジョニングが不要。
 Functionsを使う上で、それ
が必要な設計はおかしい。
+
BaaSを利用した開発労力軽減
 実装困難な仕組みを外部に委譲
できる
 機械学習
 画像・音声認識
 ビッグデータ基盤への繋ぎこ
み
 起動トリガーの定義が明確で、
期待しない動作を防げる
 HTTP POSTだけに反応する
とか
+
柔軟なスケーラビリティの獲得
 リクエスト数が増えたら自動的
にリソースが増強されると最
高。
 Azure Functionsはリクエス
ト数に応じて自動的かつリニ
アにリソースが増大・縮小。
 Auto scalingの設定は不要。
 スケーラビリティ確保のことを
心配する必要がなくなるので、
より本質的な開発に集中出来
る。
+
Azure Functionsが
解決してくれないこと
 コスト削減
 もちろん設計によってはある程度軽減できるかもしれないけど…
 それはおそらく従来の設計に何らかのオーバヘッドがあっただけ
 パフォーマンス改善
 様々なBaaSを組み合わせたりするため、HTTPオーバヘッドが積み
重なる。そのため速度は若干遅くなるかもしれない。
 ただしたくさんの処理を捌いたから遅くなる、というような従来型
の刺さり方はない。
+
Azure Functionsのデメリット
 データの秘匿性
 DBaaS(外部)にデータを預けることになる。
 セキュリティ的に安全ではないという意味ではなく、ポリシーに
よっては許容できないケースが発生しうるという意味。
 クラウドを使う以上は避けられない。
 システムトラブルが不可抗力的
 クラウドの不具合は得てして自力ではどうにもならない。
 クラウドを使う以上は避けられない。
 SLAなどの軽減策を提供している。
 Azure Functionsの流儀に則る必要性
 ある程度敷かれたレールに沿う必要がある。
 レールがある良さの裏返し。
+
Section 4
Azure Functions と Perl
+
Azure Functionsは公式には
Perlをサポートしていない
 正式対応している言語
 C#
 Node.js
 F#
 試験段階として対応している言語
 Python
 PHP
 Bash
 Batch(PowerShell)
+
ところが実は・・・
わかる?わかります?
Perl動いてんべ!!!
デモ
+
どうやらPerlが動くらしい!
 Perlはサーバレス対応言語!!!!
 やったッ!!!これで勝つる!!!!!
だが待ってほしい
+
Azure Functions…
根はWindowsなのであった!
 じゃあこのPerlは何!?
 MinGW-64なPerl5.22らしい。
+
様々な制約
 cpanmやcpmは使えない
 厳しい
 XSモジュールは使えない
 むちゃくちゃ厳しい
 MinGWで動作しないモジュールは色々期待できない
 結構厳しい
 GCCとかglibcとかopensslとか色々諦めるしかない
 超厳しい
 でもEXEファイルが実行できる
 嬉しい?!
+
Perlプログラマから見たときには
どうなのか。
 割とほしいモジュールは最初から入ってる
 JSON::PP
 JSONは入ってない
 JSON::PPが最初から入ってるので、こっちを使いましょう
 HTTP::Messages
 これでHTTP::Requestとか使える
 LWP::UserAgent
 平文通信ならOK
 でもSSL関連は入ってない
 LWP::Protocol::https
 正直めちゃくちゃ痛い
+
実際のところ
 外部のAPI叩くのは今のところcurlで頑張るしかない
 もしくはC#とかNode.JSを使う
 古き良きパイプラインを生かしたプログラミングが肝
 こういう感じのやつ
 昔のUNIXっぽいですね
$ curl -L https://… | perl mycode.pl > $res
+
Azure Functionsにおける
関数の構成要素
 関数設定ファイル function.json
 起動トリガー
 入力バインディング
 出力バインディング
 関数ファイル
 index.js
 run.sh
 などなど・・・
+
function.json
 関数の設定ファイル。起動と入出力をよろしく設定する。
{
"bindings": [
{
"type": "httpTrigger",
"name": "req",
"direction": "in"
},
{
"type": "http",
"name": "res",
"direction": "out"
}
],
"disabled": false
}
+
function.jsonの構成
 bindings
 起動トリガーとバインディングに関する設定を配列として定義する。
 disabled
 関数の有効性をboolで定義する。false=有効 true=無効
 無効にすると関数が起動されない。
+
起動トリガー
 関数を起動するための引き金
 httpTrigger
 HTTPリクエスト時
 timerTrigger
 指定時刻
 eventHubTrigger
 Azure Event Hubsからのイベント受信時
 blobTrigger
 Azure blobストレージのファイル作成・更新時
 queueTrigger
 Azure queueストレージの新規ジョブ受信時
 serviceBusTrigger
 Azure Service Busからのメッセージ受信時
+
httpTrigger(1)
 HTTPリクエストを受け付けるためにはこれを使う。
 name: どういう変数名でデータを受け取るかという定義
 direction: “in” 限定
 methods: 受け付けるHTTPメソッドを配列で定義。
 省略すると全て受け付ける。
 route: 関数へアクセスするためのパスを定義。
 Amon2やMojoliciousのように、プレースホルダーを利用可能。
 https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-
http-webhook#a-namehttp-triggerahttp-trigger
{
"type": "httpTrigger",
"name": "req",
"direction": "in”,
"methods": [ "GET" ],
"route": "values/{id}"
},
+
httpTrigger(2)
 ほとんどのリクエストデータは環境変数で取得可能
 例えばfooというクエリパラメータの値は…
 REQ_QUERY_FOOという環境変数に格納される
 POSTされたContent Bodyは…
 受信変数名がreqの場合、 cat $req などとすれば中身を取得できる
 HTTPヘッダは…
 例えばContent-Typeをとりたい場合
 REQ_HEADER_Content-Typeに値が入ってくる。
 http出力バインディングを使う場合
 受付変数名がresの場合
 echo “{body: {message: ‘hello’}, status: 200}” > $res
 のようにするとJSONでレスポンスが返せる
+
timerTrigger
 CRON形式に似たスケジューリング定義が可能。
 schedule: CRON形式っぽいスケジューリング定義
 一個多い気が・・・
 秒 分 時 日 月 週(0-6)
 秒単位の起動ができる!!!!
 10時から12時の間、10秒おきに実行する例
{
"schedule": “*/10 * 10-12 * * * *",
"name": “myTimer",
"type": "timerTrigger",
"direction": "in"
}
+
eventHubTrigger
 Azure Event Hubsからのイベントを受信した時に起動する
 Azure Event Hubsはハイパースケールのジョブキュー
 拙作Net::Azure::EventHubsを使えば簡単に利用できます!
 Perl5 Advent Calendar 2016 の10日目のエントリで紹介
 name: 入力データが格納される変数名
 path: Event Hubs内のイベントハブ名
 connection: Event Hubsへの接続をするための接続文字列が入った環境
変数名
{
"type": "eventHubTrigger",
"name": ”inputEvent",
"direction": "in",
"path": ”myEventHub”,
"connection": “myEventHubConnection"
}
+
入力バインディング
 関数起動時にデータ受け取り元となるリソース
 blob
 blobストレージ
 table
 tableストレージ
 mobileTable
 Azure Mobile Apps テーブル
 documentDB
 Azure DocumentDB
+
出力バインディング(1)
 関数起動時に出力先となるリソース
 http
 HTTPレスポンス
 blob
 ファイル出力
 eventHub
 Azure Event Hubsへのジョブ送信
 queue
 queueストレージへの出力
 serviceBus
 Azure Service Busへのメッセージ送信
+
出力バインディング(2)
 table
 tableストレージへの出力
 mobileTable
 Azure Mobile Apps テーブルへの出力
 documentDB
 Azure DocumentDBへの出力
 notificationHub
 Azure Notification Hubsによるモバイルプッシュ
 twilioSms
 TwilioによるSMS送信
その他トリガーと
バインディングについては
以下のドキュメントを
参照してください
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-triggers-bindings
+
Section 5
Azure FunctionsとPerlを使ったサーバレスなシステム例
+
事例1:DocumentDBによる簡単な
会員登録
 DocumentDB
 手っ取り早く言うならば MongoDB as a Service
 事実上無限にスケールアウト可能
 Functionsから利用する場合
 idで登録し、idで引いてくるKVS的な使い方
 複雑な検索などには対応していない
 そういう向きにはAzure Searchを併用することをお勧めします。
 Azure Search = Lucene as a Service
+
事例1 構成図
HTTP
Request
• id
• name
Register to
DocumentDB
Store the
Document
デモ
+
事例2:EventHubsを使ったデータ
蓄積
イベント発
生
イベント受
信
• ジョブ作成
• キューイング
ジョブ検出
• データ登録
データ蓄積
デモ
+
Wrap up
まとめ
+
まとめ
 サーバレスは運用の手間を減らし設計をシンプルにするための
手口の一つ
 Azure Functionsならスケーラビリティも確保できる!
 Azure FunctionsならPerlも動く!
 制約はあるけどw
 Azure FunctionsならHTTPエンドポイントが付いてくる!
 様々なSaaSと連携することで軸となるコードをシンプルに
 バグ削減に貢献
+
ここまで見て
こう思いませんでしたか?
あれ・・・
これってCGI?
+
サーバレスはCGI
Functionsはスーパーデーモン
 Azure Functionsってまるでxinetdみたいだと思いません?
 まるで・・・・
 昔のPerl!!!!
 でも昔みたいなイケてなさって感じないですよね?
+
おまけ
 Azure Functionsのヘルパーライブラリもどきを書いていま
す。
 https://gist.github.com/ytnobody/47ceda82f35a5323f90ddb92f00968
fa
 よかったら改造してみてくだい。
ありがとうございました。

Weitere ähnliche Inhalte

Was ist angesagt?

クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Shotaro Suzuki
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascriptTakao Tetsuro
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesKazushi Kamegawa
 
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShellそれでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShellHidari Ikw
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!Kazumi IWANAGA
 
Introduction of Azure Docker Integration
Introduction of Azure Docker IntegrationIntroduction of Azure Docker Integration
Introduction of Azure Docker IntegrationTakekazu Omi
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
サーバーサイドボトルネックの探し方
サーバーサイドボトルネックの探し方サーバーサイドボトルネックの探し方
サーバーサイドボトルネックの探し方Yugo Shimizu
 
Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Toru Makabe
 
コンテナで作れるFaaS
コンテナで作れるFaaSコンテナで作れるFaaS
コンテナで作れるFaaS真吾 吉田
 
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~de:code 2017
 
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。Daigou Harada
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure FunctionsKeiji Kamebuchi
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider貴志 上坂
 
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編ksimoji
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介Akira Kaneda
 
20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなしTakayoshi Tanaka
 

Was ist angesagt? (20)

クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
 
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShellそれでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
 
Introduction of Azure Docker Integration
Introduction of Azure Docker IntegrationIntroduction of Azure Docker Integration
Introduction of Azure Docker Integration
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
サーバーサイドボトルネックの探し方
サーバーサイドボトルネックの探し方サーバーサイドボトルネックの探し方
サーバーサイドボトルネックの探し方
 
Clrh 20121215
Clrh 20121215Clrh 20121215
Clrh 20121215
 
Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊
 
コンテナで作れるFaaS
コンテナで作れるFaaSコンテナで作れるFaaS
コンテナで作れるFaaS
 
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~
[AC09] Azure Stack パート1 ~今知っておくべき開発者/インフラ担当者の最新ハイブリッドクラウドとの向きあい方~
 
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。
AWSのElastic BeanstalkでWordPressを 構築レスで導入してみる。
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
Server specのご紹介
Server specのご紹介Server specのご紹介
Server specのご紹介
 
20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし20170422 azure portal cli 使いこなし
20170422 azure portal cli 使いこなし
 

Andere mochten auch

今年作ったもの2013 #hokkaidopm
今年作ったもの2013 #hokkaidopm今年作ったもの2013 #hokkaidopm
今年作ったもの2013 #hokkaidopm鉄次 尾形
 
運用とデータ分析の遠くて近い関係、ISUCONを添えて
運用とデータ分析の遠くて近い関係、ISUCONを添えて運用とデータ分析の遠くて近い関係、ISUCONを添えて
運用とデータ分析の遠くて近い関係、ISUCONを添えてSATOSHI TAGOMORI
 
Hokkaido.pm #11
Hokkaido.pm #11Hokkaido.pm #11
Hokkaido.pm #11moznion
 
僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。azumakuniyuki 🐈
 
CGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレスCGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレスTatsuro Hisamori
 
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKAメールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKAazumakuniyuki 🐈
 
オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発dokechin
 
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10Daiki Ichinose
 
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜鉄次 尾形
 
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか鉄次 尾形
 
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライドKohki Miki
 
穏やかにファイルを削除する
穏やかにファイルを削除する穏やかにファイルを削除する
穏やかにファイルを削除する鉄次 尾形
 
ゲーム x リアル - Mont Blanc Pj. & LITTAI -
ゲーム x リアル - Mont Blanc Pj. & LITTAI - ゲーム x リアル - Mont Blanc Pj. & LITTAI -
ゲーム x リアル - Mont Blanc Pj. & LITTAI - hecomi
 
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術karupanerura
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Yusuke Wada
 
4 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 20164 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 2016Riotaro OKADA
 
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~Masato Kinugawa
 
C++用将棋ライブラリ "OpenShogiLib"の紹介
C++用将棋ライブラリ"OpenShogiLib"の紹介C++用将棋ライブラリ"OpenShogiLib"の紹介
C++用将棋ライブラリ "OpenShogiLib"の紹介Hiro H.
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredisnasa9084
 

Andere mochten auch (20)

今年作ったもの2013 #hokkaidopm
今年作ったもの2013 #hokkaidopm今年作ったもの2013 #hokkaidopm
今年作ったもの2013 #hokkaidopm
 
運用とデータ分析の遠くて近い関係、ISUCONを添えて
運用とデータ分析の遠くて近い関係、ISUCONを添えて運用とデータ分析の遠くて近い関係、ISUCONを添えて
運用とデータ分析の遠くて近い関係、ISUCONを添えて
 
Hokkaido.pm #11
Hokkaido.pm #11Hokkaido.pm #11
Hokkaido.pm #11
 
Hokkaido.pmの未来
Hokkaido.pmの未来Hokkaido.pmの未来
Hokkaido.pmの未来
 
僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。僕と北海道とPerl、それとMakefileも。
僕と北海道とPerl、それとMakefileも。
 
CGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレスCGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレス
 
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKAメールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
 
オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発
 
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10
 
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
 
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか
 
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
〜ゲーム制作を始めてみよう〜 Kawaz入会希望者向けスライド
 
穏やかにファイルを削除する
穏やかにファイルを削除する穏やかにファイルを削除する
穏やかにファイルを削除する
 
ゲーム x リアル - Mont Blanc Pj. & LITTAI -
ゲーム x リアル - Mont Blanc Pj. & LITTAI - ゲーム x リアル - Mont Blanc Pj. & LITTAI -
ゲーム x リアル - Mont Blanc Pj. & LITTAI -
 
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
4 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 20164 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 2016
 
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
 
C++用将棋ライブラリ "OpenShogiLib"の紹介
C++用将棋ライブラリ"OpenShogiLib"の紹介C++用将棋ライブラリ"OpenShogiLib"の紹介
C++用将棋ライブラリ "OpenShogiLib"の紹介
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
 

Ähnlich wie できる!サーバレスアーキテクチャ

俺の Kubernetes Workflow with HashiStack
俺の Kubernetes Workflow with HashiStack俺の Kubernetes Workflow with HashiStack
俺の Kubernetes Workflow with HashiStackToru Makabe
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Keisuke Fujikawa
 
Real World Azure RBAC
Real World Azure RBACReal World Azure RBAC
Real World Azure RBACToru Makabe
 
Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊Toru Makabe
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンseiichi arai
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践日本マイクロソフト株式会社
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)日本マイクロソフト株式会社
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-publicAmazon Web Services Japan
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編Daiyu Hatakeyama
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Kazumi IWANAGA
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~Naoki (Neo) SATO
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでやりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでDaisuke Masubuchi
 

Ähnlich wie できる!サーバレスアーキテクチャ (20)

俺の Kubernetes Workflow with HashiStack
俺の Kubernetes Workflow with HashiStack俺の Kubernetes Workflow with HashiStack
俺の Kubernetes Workflow with HashiStack
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
 
Real World Azure RBAC
Real World Azure RBACReal World Azure RBAC
Real World Azure RBAC
 
Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊Azure Infrastructure as Code 体験入隊
Azure Infrastructure as Code 体験入隊
 
AWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターンAWS Glueを使った Serverless ETL の実装パターン
AWS Glueを使った Serverless ETL の実装パターン
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
 
Azure Functions Tips
Azure Functions TipsAzure Functions Tips
Azure Functions Tips
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまでやりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
やりたいことから考えるMicrosoft Azure 上の データストアの選び方とデータサイエンティスト向け活用法。KVSからDWHまで
 
[Japan Tech summit 2017] MAI 003
[Japan Tech summit 2017] MAI 003[Japan Tech summit 2017] MAI 003
[Japan Tech summit 2017] MAI 003
 

Mehr von azuma satoshi

finally (not finally)
finally (not finally)finally (not finally)
finally (not finally)azuma satoshi
 
時を駆けるINSERT.pptx
時を駆けるINSERT.pptx時を駆けるINSERT.pptx
時を駆けるINSERT.pptxazuma satoshi
 
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1azuma satoshi
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyazuma satoshi
 
Perlbeginnes 9 opening
Perlbeginnes 9 openingPerlbeginnes 9 opening
Perlbeginnes 9 openingazuma satoshi
 
Perlbeginners proposal
Perlbeginners proposalPerlbeginners proposal
Perlbeginners proposalazuma satoshi
 
入れ子構造を分解する
入れ子構造を分解する入れ子構造を分解する
入れ子構造を分解するazuma satoshi
 
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししようYAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししようazuma satoshi
 
ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向azuma satoshi
 
Perlbeginnes 4 keynote
Perlbeginnes 4 keynotePerlbeginnes 4 keynote
Perlbeginnes 4 keynoteazuma satoshi
 
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話azuma satoshi
 
Perlbeginners 3 opening talk
Perlbeginners 3 opening talkPerlbeginners 3 opening talk
Perlbeginners 3 opening talkazuma satoshi
 
Perlbeginnes 2 keynote
Perlbeginnes 2 keynotePerlbeginnes 2 keynote
Perlbeginnes 2 keynoteazuma satoshi
 
Perl Beginners #1 keynote
Perl Beginners #1 keynotePerl Beginners #1 keynote
Perl Beginners #1 keynoteazuma satoshi
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向azuma satoshi
 

Mehr von azuma satoshi (20)

finally (not finally)
finally (not finally)finally (not finally)
finally (not finally)
 
時を駆けるINSERT.pptx
時を駆けるINSERT.pptx時を駆けるINSERT.pptx
時を駆けるINSERT.pptx
 
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
 
L tthon
L tthonL tthon
L tthon
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobody
 
Perlbeginnes 9 opening
Perlbeginnes 9 openingPerlbeginnes 9 opening
Perlbeginnes 9 opening
 
Perlbeginners proposal
Perlbeginners proposalPerlbeginners proposal
Perlbeginners proposal
 
Chibapm01 lt
Chibapm01 ltChibapm01 lt
Chibapm01 lt
 
入れ子構造を分解する
入れ子構造を分解する入れ子構造を分解する
入れ子構造を分解する
 
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししようYAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししよう
 
ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向
 
Perlbeginnes 4 keynote
Perlbeginnes 4 keynotePerlbeginnes 4 keynote
Perlbeginnes 4 keynote
 
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
 
Perlbeginners 3 opening talk
Perlbeginners 3 opening talkPerlbeginners 3 opening talk
Perlbeginners 3 opening talk
 
PSGIへの誘い
PSGIへの誘いPSGIへの誘い
PSGIへの誘い
 
Perlbeginnes 2 keynote
Perlbeginnes 2 keynotePerlbeginnes 2 keynote
Perlbeginnes 2 keynote
 
Hachiojipm 14 LT
Hachiojipm 14 LTHachiojipm 14 LT
Hachiojipm 14 LT
 
Perl Beginners #1 keynote
Perl Beginners #1 keynotePerl Beginners #1 keynote
Perl Beginners #1 keynote
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
 
Hachioji.pm #13 LT
Hachioji.pm #13 LTHachioji.pm #13 LT
Hachioji.pm #13 LT
 

できる!サーバレスアーキテクチャ