Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloudflare Meetup Nagano Vol.3
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Taisei Ito
January 18, 2025
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloudflare Meetup Nagano Vol.3
Taisei Ito
January 18, 2025
More Decks by Taisei Ito
See All by Taisei Ito
Grafana Meetup Japan Vol. 6
kaedemalu
1
830
Cloudflare Meetup Nagano Vol.2
kaedemalu
0
2.1k
20220214_Future Tech Night
kaedemalu
0
2.5k
20210910_nyle
kaedemalu
0
1.1k
20210827 Future Tech Night
kaedemalu
0
4.6k
CNDO2021 Open Policy Agent
kaedemalu
1
1.5k
20210210 Terraform meetup ONLINE
kaedemalu
0
700
Future Talk Night 20201118
kaedemalu
0
250
20201114 GCPUG Shonan
kaedemalu
0
510
Other Decks in Technology
See All in Technology
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
180
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
230
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
1
370
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
910
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
240
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
260
組織における AI-DLC 実践
askul
0
300
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
240
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
340
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
420
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
330
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
130
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
630
Into the Great Unknown - MozCon
thekraken
41
2.6k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
410
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Typedesign – Prime Four
hannesfritz
42
3.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
How STYLIGHT went responsive
nonsquared
100
6.2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
Transcript
Cloudflare Meetup Nagano Vol.3 2024.01.18 Sat. Taisei Ito kaedemalu 𝕏
kaedemalu
自己紹介 • 伊藤 太斉(Taisei Ito) ◦ @kaedemalu(X, GitHub) ◦ フューチャーアーキテクト株式会社
▪ Technology Innovation Group ▪ シニアコンサルタント ▪ TechBlog Editor ◦ #Terraform #Google Cloud #AWS ◦ 長野県長野市生まれ • Community ◦ GCPUG Shonan Staff • Hobby ◦ サウナ・スキー・カメラ・マラソン(先週ハーフ完走)
結構ネタに悩みました(ここは独り言) • Terraformと絡めたネタは前回やった • Cloudflare自体、仕事で触っているわけではないから そこまでネタとして持っていない • 最近の関心ごと ◦ インフラの運用監視
水曜日になりました
自分が広げられるネタとは • 昨年会社の技術ブログで連載をやりました 参考:https://future-architect.github.io/articles/20240527a/
自分が広げられるネタとは • 昨年会社の技術ブログで連載をやりました
今回のネタ • Workersってどうやって動いているんだろう ◦ PythonをWorkersでどう動かしているか
そもそもWorkersってどうやって動いている? • Chrome V8というJavaScriptエンジンで稼働する ◦ 車のエンジンの気筒数になぞらえた命名 ▪ V8なので相当パワフルに動く、というところから ◦ 強み
▪ コールドスタートな状態であっても5msほどで実行できるほど 高速なスピンアップ ▪ JavaScriptの関数をサンドボックス化し、セキュリティの向上に 寄与している 参考:https://www.cloudflare.com/learning/serverless/glossary/what-is-chrome-v8/
そもそもWorkersってどうやって動いている? • Chrome V8というJavaScriptエンジンで稼働する ◦ 車のエンジンの気筒数になぞらえた命名 ▪ V8なので相当パワフルに動く、というところから ◦ 強み
▪ コールドスタートな状態であっても5msほどで実行できるほど 高速なスピンアップ ▪ JavaScriptの関数をサンドボックス化 し、セキュリティの向上に 寄与している 参考:https://www.cloudflare.com/learning/serverless/glossary/what-is-chrome-v8/
サンドボックス化とは • Chrome V8における重要な機能の一つである • JavaScriptの関数それぞれが個別に実行され、かつ影響を与えないことを 保証している ◦ 他の関数によってパフォーマンスの低下も起こさない 参考・引用:
https://www.cloudflare.com/learning/serverless/glossary/what-is-chrome-v8/
ウェブで扱える言語 • HTML • CSS • JavaScript
Cloudflare Workersで実行可能な言語 • HTML • CSS • JavaScript • Python
• Go • Rust • C, etc…
WebAssembly(WASM)という技術 • 昨今のウェブブラウザで実行できるバイナリのフォーマット(仕様) • Rust, C/C++などの言語をコンパイルして実行することができる ◦ 上記の言語をウェブ上で動かすことができる ◦ JavaScriptと並行して動かすように設計されている
• JavaScriptの「置き換え」ではなく「補強」 参考・引用: https://developer.mozilla.org/ja/docs/WebAssembly
なぜWASMができたのだろうか • HTML, CSS, JavaScriptで動作するアプリより高機能、パフォーマンスを 求められるようになった ◦ 一般的にはコンパイラ言語の方がパフォーマンスがいい ▪ JavaScriptはインタプリタ言語
◦ ゲーム系、XR、動画編集系 • ウェブが中心のサービスが増えたこと ◦ ブラウザベースで完結することの容易さ 参考: ・https://developer.mozilla.org/ja/docs/WebAssembly ・https://qiita.com/ShuntaShirai/items/3ac92412720789576f22
Workers for Python • Pythonはインタプリタ言語 ◦ コンパイラ言語ではない
Pyodideの利用 • Pyodide(パイオダイド)と読む • PythonをWebブラウザ上で動かすために開発されたランタイム • PyodideがWASMとして振る舞ってPythonを実行する ◦ PythonがそのままWASMとしてコンパイルされるわけではない ▪
パフォーマンスとしては先述のコンパイラ言語よりは劣る 参考・引用: https://news.mynavi.jp/techplus/article/zeropython-99/
Pythonをブラウザ上で実行できるメリット • 初学者が取り組みやすい言語であること • 機械学習、データ分析の簡素化
Pythonコードを動かしてみる • 以下のコードをHTML形式で保存する <html> <head> <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.js"></script> <link
rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.css" /> </head> <body> <gradio-lite> import gradio as gr def greet(name): return "Hello, " + name + "!" gr.Interface(greet, "textbox", "textbox").launch() </gradio-lite> </body> </html> 参考・引用: https://www.gradio.app/guides/gradio-lite
Pythonコードを動かしてみる • 実行すると 参考・引用: https://blog.cloudflare.com/python-workers/
PythonをCloudflare Workersで動かす仕組み • Pyodideを使ってPythonのコードをWASMの仕組みに乗せて動かしている ◦ Workers自体がWASMを動かせるようになっている
まとめ • Cloudflare WorkersはChrome V8をベースとしたウェブ技術を使っている • それぞれパフォーマンスに影響を及ぼさず、セキュアに実行できる • ウェブでさまざまな言語を動かすためにWebAssemblyを活用している •
PythonのネイティブサポートはPyodideを使ってWebAssemblyに載せて利用
• 大崎にあるITコンサル会社 • 経営戦略から実装、運用までを全てこなす • ベンダーニュートラルの考え方 • 「ないものは作る」 フューチャーについて
• 実用Go言語をはじめとした各種書籍、雑誌の著者たち • Vue.jsのコミッター • TomcatのPMCメンバー • OSS「Vuls」の作成者 こんな人います
ブログも出しています
Cloudflare Meetup Nagano Vol.3 2024.01.18 Sat. Taisei Ito kaedemalu 𝕏
kaedemalu