Submit Search
Upload
自社サービスでDurable Functionsを採用した話
•
0 likes
•
464 views
T
terurou
Follow
NGK2020S LT発表資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 23
Download now
Download to read offline
Recommended
デンキヤギの採用の考え方
デンキヤギの採用の考え方
terurou
クラウドERPを活用したグローバル共通システム基盤のスピード導入とバックオフィス業務のクラウド化に向けて
クラウドERPを活用したグローバル共通システム基盤のスピード導入とバックオフィス業務のクラウド化に向けて
篤人 浜田
ノーコードとアジャイル
ノーコードとアジャイル
Yukio Okajima
ハイブリッドクラウドで変わるインフラストラクチャ設計
ハイブリッドクラウドで変わるインフラストラクチャ設計
gree_tech
[VP of Engineering Meetup] エンジニアのパフォーマンスを最大化させる組織活性化施策とは
[VP of Engineering Meetup] エンジニアのパフォーマンスを最大化させる組織活性化施策とは
atsuki_ito
マーケティングもリモート×アジャイルに ~ Agile Studio マーケティングチームの事例
マーケティングもリモート×アジャイルに ~ Agile Studio マーケティングチームの事例
Yukio Okajima
びっくりするくらいリモートワークが馴染んだ話
びっくりするくらいリモートワークが馴染んだ話
Takuya Okamoto
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
Yukio Okajima
Recommended
デンキヤギの採用の考え方
デンキヤギの採用の考え方
terurou
クラウドERPを活用したグローバル共通システム基盤のスピード導入とバックオフィス業務のクラウド化に向けて
クラウドERPを活用したグローバル共通システム基盤のスピード導入とバックオフィス業務のクラウド化に向けて
篤人 浜田
ノーコードとアジャイル
ノーコードとアジャイル
Yukio Okajima
ハイブリッドクラウドで変わるインフラストラクチャ設計
ハイブリッドクラウドで変わるインフラストラクチャ設計
gree_tech
[VP of Engineering Meetup] エンジニアのパフォーマンスを最大化させる組織活性化施策とは
[VP of Engineering Meetup] エンジニアのパフォーマンスを最大化させる組織活性化施策とは
atsuki_ito
マーケティングもリモート×アジャイルに ~ Agile Studio マーケティングチームの事例
マーケティングもリモート×アジャイルに ~ Agile Studio マーケティングチームの事例
Yukio Okajima
びっくりするくらいリモートワークが馴染んだ話
びっくりするくらいリモートワークが馴染んだ話
Takuya Okamoto
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
【SFO2020】業務SEを7か月でWebエンジニアに変える方法 ~アジャイルマインドを得るために~
Yukio Okajima
アドテクスタジオのデータ分析基盤について
アドテクスタジオのデータ分析基盤について
kazuhiro ito
業務システムとfreeeをAPI連携する際の課題と工夫
業務システムとfreeeをAPI連携する際の課題と工夫
Yusuke Tamukai
対話と創発~アジャイルなマーケティングチームの作り方
対話と創発~アジャイルなマーケティングチームの作り方
Yukio Okajima
Setとして活動しはじめた話
Setとして活動しはじめた話
Recruit Lifestyle Co., Ltd.
企画から考えるエンジニアチームの作り方
企画から考えるエンジニアチームの作り方
創史 花村
グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性
gree_tech
業務SEを7か月でWebエンジニアに変える方法
業務SEを7か月でWebエンジニアに変える方法
Yukio Okajima
オンボーディングにおける新卒・中途の違い freee株式会社 秋山詩乃
オンボーディングにおける新卒・中途の違い freee株式会社 秋山詩乃
ShinoAkiyama
技術転換は組織変革 ~ 業務SEをモダンエンジニアチームに変える
技術転換は組織変革 ~ 業務SEをモダンエンジニアチームに変える
Yukio Okajima
SysTrack のご紹介 - 最適な vGPU リソース利用で効率の高い GPU VDI 環境を -
SysTrack のご紹介 - 最適な vGPU リソース利用で効率の高い GPU VDI 環境を -
Hirotaka Nagashima
素人流 業務改善 全社プロジェクト
素人流 業務改善 全社プロジェクト
Cybozucommunity
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
Recruit Lifestyle Co., Ltd.
【19-B-1】情シスの中のアーキテクト ~ソフトウェアアーキテクチャを超えて~
【19-B-1】情シスの中のアーキテクト ~ソフトウェアアーキテクチャを超えて~
Developers Summit
NativeGameの障害削減に向けた取り組み
NativeGameの障害削減に向けた取り組み
gree_tech
Redash pythonで業務分析
Redash pythonで業務分析
創史 花村
boardの概要 - Brownies FES Special
boardの概要 - Brownies FES Special
Yusuke Tamukai
Vue.jsをhaxeで
Vue.jsをhaxeで
terurou
altJSの選び方
altJSの選び方
terurou
ExcelからITそしてDXの世界へ
ExcelからITそしてDXの世界へ
Chuki ちゅき
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
Masato Mori
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Retrieva inc.
DX Suite & UiPath さっくり読み取りさっくり連携
DX Suite & UiPath さっくり読み取りさっくり連携
Chuki ちゅき
More Related Content
What's hot
アドテクスタジオのデータ分析基盤について
アドテクスタジオのデータ分析基盤について
kazuhiro ito
業務システムとfreeeをAPI連携する際の課題と工夫
業務システムとfreeeをAPI連携する際の課題と工夫
Yusuke Tamukai
対話と創発~アジャイルなマーケティングチームの作り方
対話と創発~アジャイルなマーケティングチームの作り方
Yukio Okajima
Setとして活動しはじめた話
Setとして活動しはじめた話
Recruit Lifestyle Co., Ltd.
企画から考えるエンジニアチームの作り方
企画から考えるエンジニアチームの作り方
創史 花村
グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性
gree_tech
業務SEを7か月でWebエンジニアに変える方法
業務SEを7か月でWebエンジニアに変える方法
Yukio Okajima
オンボーディングにおける新卒・中途の違い freee株式会社 秋山詩乃
オンボーディングにおける新卒・中途の違い freee株式会社 秋山詩乃
ShinoAkiyama
技術転換は組織変革 ~ 業務SEをモダンエンジニアチームに変える
技術転換は組織変革 ~ 業務SEをモダンエンジニアチームに変える
Yukio Okajima
SysTrack のご紹介 - 最適な vGPU リソース利用で効率の高い GPU VDI 環境を -
SysTrack のご紹介 - 最適な vGPU リソース利用で効率の高い GPU VDI 環境を -
Hirotaka Nagashima
素人流 業務改善 全社プロジェクト
素人流 業務改善 全社プロジェクト
Cybozucommunity
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
Recruit Lifestyle Co., Ltd.
【19-B-1】情シスの中のアーキテクト ~ソフトウェアアーキテクチャを超えて~
【19-B-1】情シスの中のアーキテクト ~ソフトウェアアーキテクチャを超えて~
Developers Summit
NativeGameの障害削減に向けた取り組み
NativeGameの障害削減に向けた取り組み
gree_tech
Redash pythonで業務分析
Redash pythonで業務分析
創史 花村
boardの概要 - Brownies FES Special
boardの概要 - Brownies FES Special
Yusuke Tamukai
What's hot
(16)
アドテクスタジオのデータ分析基盤について
アドテクスタジオのデータ分析基盤について
業務システムとfreeeをAPI連携する際の課題と工夫
業務システムとfreeeをAPI連携する際の課題と工夫
対話と創発~アジャイルなマーケティングチームの作り方
対話と創発~アジャイルなマーケティングチームの作り方
Setとして活動しはじめた話
Setとして活動しはじめた話
企画から考えるエンジニアチームの作り方
企画から考えるエンジニアチームの作り方
グリーにおけるAWS移行の必然性
グリーにおけるAWS移行の必然性
業務SEを7か月でWebエンジニアに変える方法
業務SEを7か月でWebエンジニアに変える方法
オンボーディングにおける新卒・中途の違い freee株式会社 秋山詩乃
オンボーディングにおける新卒・中途の違い freee株式会社 秋山詩乃
技術転換は組織変革 ~ 業務SEをモダンエンジニアチームに変える
技術転換は組織変革 ~ 業務SEをモダンエンジニアチームに変える
SysTrack のご紹介 - 最適な vGPU リソース利用で効率の高い GPU VDI 環境を -
SysTrack のご紹介 - 最適な vGPU リソース利用で効率の高い GPU VDI 環境を -
素人流 業務改善 全社プロジェクト
素人流 業務改善 全社プロジェクト
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
【19-B-1】情シスの中のアーキテクト ~ソフトウェアアーキテクチャを超えて~
【19-B-1】情シスの中のアーキテクト ~ソフトウェアアーキテクチャを超えて~
NativeGameの障害削減に向けた取り組み
NativeGameの障害削減に向けた取り組み
Redash pythonで業務分析
Redash pythonで業務分析
boardの概要 - Brownies FES Special
boardの概要 - Brownies FES Special
Similar to 自社サービスでDurable Functionsを採用した話
Vue.jsをhaxeで
Vue.jsをhaxeで
terurou
altJSの選び方
altJSの選び方
terurou
ExcelからITそしてDXの世界へ
ExcelからITそしてDXの世界へ
Chuki ちゅき
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
Masato Mori
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Retrieva inc.
DX Suite & UiPath さっくり読み取りさっくり連携
DX Suite & UiPath さっくり読み取りさっくり連携
Chuki ちゅき
営業会社の開発組織を成長させるためにやったこと
営業会社の開発組織を成長させるためにやったこと
Daisuke Kotaki
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
Tokoroten Nakayama
SharePoint 連携を俯瞰しちゃおう
SharePoint 連携を俯瞰しちゃおう
CData Software Japan
Dataflow(python)を触った所感
Dataflow(python)を触った所感
Ryo Yamaoka
Chainerで知るdeep learning進化の歴史
Chainerで知るdeep learning進化の歴史
Hideto Masuoka
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
haljik Seiji
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
WebSig24/7
ユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話し
Hideaki Tarumi
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PC Cluster Consortium
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
Developers Summit
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
shibao800
scala未経験者がフルペアプロで新規事業の開発をしている話
scala未経験者がフルペアプロで新規事業の開発をしている話
hayato iida
20140709 アジャイル開発勉強会
20140709 アジャイル開発勉強会
Katsunobu Harada
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
Rakuten Commerce Tech (Rakuten Group, Inc.)
Similar to 自社サービスでDurable Functionsを採用した話
(20)
Vue.jsをhaxeで
Vue.jsをhaxeで
altJSの選び方
altJSの選び方
ExcelからITそしてDXの世界へ
ExcelからITそしてDXの世界へ
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
DX Suite & UiPath さっくり読み取りさっくり連携
DX Suite & UiPath さっくり読み取りさっくり連携
営業会社の開発組織を成長させるためにやったこと
営業会社の開発組織を成長させるためにやったこと
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
SharePoint 連携を俯瞰しちゃおう
SharePoint 連携を俯瞰しちゃおう
Dataflow(python)を触った所感
Dataflow(python)を触った所感
Chainerで知るdeep learning進化の歴史
Chainerで知るdeep learning進化の歴史
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
ユーザーデータ基盤を1からScalaでつくった話し
ユーザーデータ基盤を1からScalaでつくった話し
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
scala未経験者がフルペアプロで新規事業の開発をしている話
scala未経験者がフルペアプロで新規事業の開発をしている話
20140709 アジャイル開発勉強会
20140709 アジャイル開発勉強会
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
More from terurou
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
terurou
Computation Expressions for Haxe
Computation Expressions for Haxe
terurou
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
DataGridを自前実装する話
DataGridを自前実装する話
terurou
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
terurou
動的なILの生成と編集
動的なILの生成と編集
terurou
FIRST STEP to Haxe/JavaScript
FIRST STEP to Haxe/JavaScript
terurou
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
terurou
大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou
Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSILver.2012/06/09
terurou
Metro Style AppsでMSIL
Metro Style AppsでMSIL
terurou
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
terurou
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou
CommonJSの話
CommonJSの話
terurou
Scala×silverlight
Scala×silverlight
terurou
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
Iron Python / Iron Ruby で .NET Programming
Iron Python / Iron Ruby で .NET Programming
terurou
クラウドGPS(仮)
クラウドGPS(仮)
terurou
Silverlight 4 のはなし
Silverlight 4 のはなし
terurou
IronRuby on Silverlight っておいしいの?
IronRuby on Silverlight っておいしいの?
terurou
More from terurou
(20)
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
Computation Expressions for Haxe
Computation Expressions for Haxe
MQTTとAMQPと.NET
MQTTとAMQPと.NET
DataGridを自前実装する話
DataGridを自前実装する話
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
動的なILの生成と編集
動的なILの生成と編集
FIRST STEP to Haxe/JavaScript
FIRST STEP to Haxe/JavaScript
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
大規模なJavaScript開発の話
大規模なJavaScript開発の話
Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSIL
Metro Style AppsでMSIL
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
CommonJSの話
CommonJSの話
Scala×silverlight
Scala×silverlight
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
Iron Python / Iron Ruby で .NET Programming
Iron Python / Iron Ruby で .NET Programming
クラウドGPS(仮)
クラウドGPS(仮)
Silverlight 4 のはなし
Silverlight 4 のはなし
IronRuby on Silverlight っておいしいの?
IronRuby on Silverlight っておいしいの?
Recently uploaded
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Recently uploaded
(10)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
自社サービスでDurable Functionsを採用した話
1.
自社サービスで Durable Functionsを 採用した話 terurou 2020-01-18
2.
terurou • デンキヤギ代表取締役 • Haxe
Foundationの方から来ました • 去年、hxnodejs(Haxe公式のNode.js extern)の コミッターになりました • NGKの実行委員を11年ぐらいやってます 1
3.
デンキヤギ株式会社 2 ここ最近は、 Haxe/JS or Scala.jsでJSを生成する 仕事が売上の7-8割を占めてます
4.
求人情報 3 会社見学で寿司か焼肉を振る舞う制度、 まだ生きてます。
5.
コミュニティ支援やってます 4
6.
yagisan • 雑務を進める、カイゼンする • 帳票が主体にある業務システム基盤SaaS •
開発中(未リリース この辺から本題に入っていきます 5
7.
yagisanの技術指針 6 カネはない…
8.
カネはないので… • サーバーレス →
Azure Functions • サービス性質さえ合えば、費用効率は高い • AWSもGoogleも個人的に好きじゃないので… • かなりの処理をWebブラウザ側に押し付ける • SPA、あわよくばPWA • 帳票出力(すごく重い処理)もWebブラウザ側で 7
9.
郵送代行 • yagisanの特異な提供機能 • 郵送を提供している基盤系SaaSは希少 •
間違って「発送」した際、緊急キャンセルしたい • 某サービスにならい、20分以内ならキャンセル可能 8
10.
普通に作れば、バッチ処理 • 郵送指示は、とりあえずDBにINSERTしておく • 指示から20分以内ならキャンセルを受け付ける •
バッチを10分間隔などの短周期で起動し続ける • キャンセルされていないデータを拾って、郵送 9
11.
しかし、あまりバッチ処理にはしたくない • バッチが短周期で回る =
空振りが多い • 空振りでもリソースが必要 → コストがかかる • Azure Functions : リクエスト数とメモリ使用時間 • Cosmos DB : RU(≒スループット)の上限値 10
12.
11 そこで Durable Functions!
13.
Durable Functionsとは? -
MSDNから抜粋 12 Durable Functions は、 サーバーレス コンピューティング環境で ステートフル関数を記述できる Azure Functions の拡張機能です。
14.
13 ????
15.
私なりのDurable Functionsの説明 • 簡単に使える分散協調処理基盤 •
みんな大好きActorモデルもある! • Durable Functionsの実例を交えた実装パターンが MSDNで解説されている • .NET(C#, F#)の他に、Node.jsでも書ける • ちなみに弊社はHaxe/JSで… 14
16.
今回使うパターン • Human interaction
パターン • MSDNの日本語訳では「人による操作」 • SMS認証の実装例がMSDNでは紹介されている • Twillioを使って、SMSで認証コードを送る • ユーザーは3回まで入力可能(これが人による操作) • タイマー時間を迎えたら、認証コードは無効化される 15
17.
Human interaction パターンを応用すると… •
タイマー時間を迎える → 郵送実行 • 人による操作が入る → 郵送キャンセル • この制御機構があれば、緊急キャンセル機能を備えた 郵送システムが実現できる 16
18.
郵送システムの構成要素 17 Orchestrator 郵送指示 Trigger キャンセル TriggerHTTP HTTP 起動 シグナル 実行 Timer Event Listener 郵送 Activity
19.
Orchestratorの実装例 - 19行だけ! 18
20.
Orchestratorの要点 – たった3点 •
context.df.createTimer(expiration) • タイマーの作成 • context.df.waitForExternalEvent("cancel") • cancelシグナルリスナーの作成 • context.df.Task.any([timerTask, cancelTask]) • タイマーかキャンセルのどちらかが発生するまで待機 19
21.
Durable Functions、つよい • 僅かなコードで複雑な分散協調処理が書けてしまう •
分散協調処理の知識がなくても書けてしまう • 同じことをゼロからやろうとすると、めちゃ大変 • Akka, Kafka, ZooKeeper, …の組み合わせで実装 • クラスタリング, エラー監視, リカバリー,…の環境構築 • 何度か実務経験があるが、基盤構築に数か月はほしい 20
22.
Durable Functionsを使う上での課題 • 完全にベンダーロックインされてしまう •
厳密なタイマー制御はできない • 実行遅延が許容できない開発対象には適用できない • まだ枯れてない • 特にNode.js実装では、しばしばバグに遭遇する • とはいえ、GitHubでIssueを出せば対応してくれる 21
23.
まとめ • Durable Functions強い •
簡単 vs ベンダーロックイン • まだ枯れてないが、ちゃんと伝えれば直してくれる • 郵送システムの細かいところは端折った • エラー監視や復旧操作など • Singleton orchestratorsも使っている • Webブラウザ上で動く帳票出力エンジン 22
Download now