Suche senden
Hochladen
Riotでサーバレスにした話
•
5 gefällt mir
•
1,921 views
Hiroyuki Hara
Folgen
Riot 勉強会 #2
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 72
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディング
Keisuke Imai
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tips
Keisuke Imai
Riotjsハンズオン
Riotjsハンズオン
omi end
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc.
Riot.jsに触れてみた話
Riot.jsに触れてみた話
エンジニア勉強会 エスキュービズム
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツール
Masaki Suzuki
スタートアップにjoinして1年間の変化を振り返る
スタートアップにjoinして1年間の変化を振り返る
Masashi Ogawa
Empfohlen
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディング
Keisuke Imai
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tips
Keisuke Imai
Riotjsハンズオン
Riotjsハンズオン
omi end
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc.
Riot.jsに触れてみた話
Riot.jsに触れてみた話
エンジニア勉強会 エスキュービズム
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツール
Masaki Suzuki
スタートアップにjoinして1年間の変化を振り返る
スタートアップにjoinして1年間の変化を振り返る
Masashi Ogawa
オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
Yosuke TOMITA
Spring I/O 2017での拡張のお話
Spring I/O 2017での拡張のお話
Alisa Sasaki
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
スタートアップにjoinして安心して眠るためにやった5つのこと
スタートアップにjoinして安心して眠るためにやった5つのこと
Masashi Ogawa
Rails Tokyo 035 Cucumber
Rails Tokyo 035 Cucumber
Kyosuke MOROHASHI
capybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話
雅也 山本
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
ApplicationTemplateのススメ
ApplicationTemplateのススメ
Takafumi ONAKA
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
YutoNishine
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
Takafumi ONAKA
KubernetesでPHPを動かした話
KubernetesでPHPを動かした話
gree_tech
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
kazuki matsumura
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
Daisuke Nagata
CONBU API の開発
CONBU API の開発
TAKANO Mitsuhiro
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Isamu Suzuki
Concrete5×さくら
Concrete5×さくら
Masaya Hayashi
The Internal of Serverless Plugins
The Internal of Serverless Plugins
Terui Masashi
Node.js version16の新機能
Node.js version16の新機能
Masaki Suzuki
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
真吾 吉田
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
bitbank, Inc. Tokyo, Japan
Weitere ähnliche Inhalte
Was ist angesagt?
オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
Yosuke TOMITA
Spring I/O 2017での拡張のお話
Spring I/O 2017での拡張のお話
Alisa Sasaki
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
kazuki matsumura
スタートアップにjoinして安心して眠るためにやった5つのこと
スタートアップにjoinして安心して眠るためにやった5つのこと
Masashi Ogawa
Rails Tokyo 035 Cucumber
Rails Tokyo 035 Cucumber
Kyosuke MOROHASHI
capybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話
雅也 山本
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
ApplicationTemplateのススメ
ApplicationTemplateのススメ
Takafumi ONAKA
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
YutoNishine
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
Takafumi ONAKA
KubernetesでPHPを動かした話
KubernetesでPHPを動かした話
gree_tech
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
kazuki matsumura
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
Daisuke Nagata
CONBU API の開発
CONBU API の開発
TAKANO Mitsuhiro
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Isamu Suzuki
Concrete5×さくら
Concrete5×さくら
Masaya Hayashi
The Internal of Serverless Plugins
The Internal of Serverless Plugins
Terui Masashi
Node.js version16の新機能
Node.js version16の新機能
Masaki Suzuki
Was ist angesagt?
(20)
オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
Spring I/O 2017での拡張のお話
Spring I/O 2017での拡張のお話
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
スタートアップにjoinして安心して眠るためにやった5つのこと
スタートアップにjoinして安心して眠るためにやった5つのこと
Rails Tokyo 035 Cucumber
Rails Tokyo 035 Cucumber
capybara で快適なテスト生活を
capybara で快適なテスト生活を
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
ApplicationTemplateのススメ
ApplicationTemplateのススメ
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
KubernetesでPHPを動かした話
KubernetesでPHPを動かした話
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
CONBU API の開発
CONBU API の開発
Node.jsに縁のない職場でnode.jsを使い始める戦術
Node.jsに縁のない職場でnode.jsを使い始める戦術
Concrete5×さくら
Concrete5×さくら
The Internal of Serverless Plugins
The Internal of Serverless Plugins
Node.js version16の新機能
Node.js version16の新機能
Ähnlich wie Riotでサーバレスにした話
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
真吾 吉田
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
bitbank, Inc. Tokyo, Japan
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
Masayuki KaToH
Real World Android Akka - 日本語版
Real World Android Akka - 日本語版
Taisuke Oe
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
史識 川原
only ip whitelist at cloudfront is ok?
only ip whitelist at cloudfront is ok?
Yuta Suzuki
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
真吾 吉田
Azure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev Ops
Atsushi Yokohama (BEACHSIDE)
ひとつひとつ組み上げてみていくビデオチャットアプリのアーキテクチャ
ひとつひとつ組み上げてみていくビデオチャットアプリのアーキテクチャ
Koki Kumagai
Serverless for VUI
Serverless for VUI
真吾 吉田
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
富士通クラウドテクノロジーズ株式会社
Azure serverlesssummit2018
Azure serverlesssummit2018
Tsukasa Kato
Aiming のクラウド採用基準
Aiming のクラウド採用基準
Takahiro Hozumi
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
Kazuya Sugimoto
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
Masayuki KaToH
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
Naoki (Neo) SATO
Deploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in Fargate
bitbank, Inc. Tokyo, Japan
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
Masayuki KaToH
Ähnlich wie Riotでサーバレスにした話
(20)
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
Real World Android Akka - 日本語版
Real World Android Akka - 日本語版
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
only ip whitelist at cloudfront is ok?
only ip whitelist at cloudfront is ok?
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
Azure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev Ops
ひとつひとつ組み上げてみていくビデオチャットアプリのアーキテクチャ
ひとつひとつ組み上げてみていくビデオチャットアプリのアーキテクチャ
Serverless for VUI
Serverless for VUI
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
Azure serverlesssummit2018
Azure serverlesssummit2018
Aiming のクラウド採用基準
Aiming のクラウド採用基準
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
Deploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in Fargate
俺とGitHubとcodeシリーズ
俺とGitHubとcodeシリーズ
Riotでサーバレスにした話
1.
Riotでサーバーレス にした話
2.
@aggre WWD JAPAN.com INFAS PUBLICATIONS,
INC.
3.
Frontend Backend Git / CI Collaboration Technology
stack
4.
What サーバーレスとは
5.
インフラを任せる
6.
スケーリングを任せる
7.
スケーリングを任せる 彡
8.
実行時間だけで課金
9.
実行時間だけで課金 彡
10.
Why なぜサーバーレスなのか
11.
パフォーマンス 可用性 コスト All OK!
12.
パフォーマンス 可用性 コスト 整備不要 ベンダーロックイン
13.
開発者は プログラミングに集中
14.
How どうやるのか
15.
サーバーレスの 制約
16.
プログラムと状態 は完全に切り離す あるべき姿です
17.
セッションもCookieも 使えない これもHTTPのあるべき姿です
18.
できれば ?
19.
サーバサイドは APIだけ書いていたい ビューロジックがサーバに混ざる とアレですしね
20.
そこで...
21.
フロントエンドは一切のコードを サーバから排除して S3 に集約 バックエンドは一切のテンプレート を排除して
API を返すことに集中
22.
実際の話
23.
WWD JAPAN.com
24.
Before サーバーレスにする前
25.
26.
SERVER SERVER SERVER SERVER
27.
MovableType から 謎の rsync
28.
EC2 に全ファイル。 スケーリングできない からよく停止する
29.
After サーバーレスにしたあと
30.
31.
SERVER SERVERLESS SERVERLESS SERVERLESS SERVERLESS SERVER ※
32.
Aurora で フルマネージド化 Aurora はフルマネージドだがサーバーレ スといえるほど高速なスケーリングはでき ないのと、実行時間課金ではない
33.
EC2 は管理画面だけ
34.
Lambda の API
から RDS に接続
35.
API Gateway で
HTTP リクエス トから Lambda を呼び出す
36.
S3 に html,
js, css
37.
CloudFront の Error
Page を index.html にする
38.
/dist/* /* ... /shop/123 S3 index.html 存在すればそのまま 存在しなければ 200 200 404
39.
<app></app> <script src="/dist/bundle.js"></script> index.html
40.
404 / SSR
41.
404が返せない問題 Bot/非Bot不明問題 に対応する
42.
43.
API Gateway の プロキシ統合で Lambda
をプロキシ サーバにする Lambda で SSR して、返ってきた HTML を 元に適宜ステータスコードを設定 プロキシ統合によって UA などのヘッダで 処理を自由に変えることが可能
44.
いつか CloudFrontのなかで UAの振り分け できないかなぁ
45.
Riot SPA
46.
コンポーネント構成
47.
Atomic Design コンポーネントを分類する
48.
Pages Templates Organisms Molecules Atoms
49.
名前と中身が 一致しない
50.
Screens Areas Widgets Compornents Modules Pages Templates Organisms Molecules Atoms
51.
Screens
52.
Areas
53.
Widgets
54.
Compornents
55.
Modules
56.
57.
Lifecycle アプリケーションの動かし方
58.
<app>Mount <screen-xxx>Mount URLアクションFlux コンテキストストアの更新Flux
59.
<app> <div ref=”screens”></div> <script> ( …
) </script> </app> app.tag
60.
import riot from
‘riot’ import route from ‘riot-route’ import urlListener from ‘./my/libs/urlListener’ route( urlListener ) riot.mount( ‘app’ ) init.js
61.
Flux
62.
riot-observable riot-control flux obseriot by me
63.
Action with Obseriot action.context.replace
= { handler: { name: ‘action_context_replace’, action: ( screen, id, url ) => [ screen, id, url ] } }
64.
Store with Obseriot store.context
= { state: {}, handler: { name: ‘store_context’, action: () => store.context.state } }
65.
Dispatch Action with
Obseriot obseriot.notify( action.context.replace, screen, id, url )
66.
Reduce Store with
Obseriot obseriot.listen( action.context.replace, ( s, i, u) => { store.cotext.state = { screen: s, id: i, url: u } obseriot.notify( store.context ) } )
67.
<screen-xxx>Mount URLアクションFlux コンテキストストアの更新Flux URLが変更されるたびに繰り返し
68.
context, history, browser,
windowSize, user, posts, modal, menu, ad, ... なるべく多くの状態をストアで管理
69.
キャッチされない例外が発生したら ストアのデータを送信すれば、 バグの改善につながる window.onerror = msg
=> { mySendFn( msg, getAllState() ) }
70.
How much いくらするのか
71.
CloudFront API Gateway Lambda S3 RDS EC2 $3,703 Before $6,737 After $3,490 Now CloudFront +
API Gateway + Lambda + S3 $773 インスタンス変えるの サボっているだけ
72.
CloudFront 3,732 GB API
Gateway 360.12 GB Lambda 9,910,208.48 s 12,710,517 Request S3 ... Cost
Jetzt herunterladen