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
Taisei Ito
January 18, 2025
Technology
120
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
880
Cloudflare Meetup Nagano Vol.2
kaedemalu
0
2.2k
20220214_Future Tech Night
kaedemalu
0
2.6k
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
710
Future Talk Night 20201118
kaedemalu
0
260
20201114 GCPUG Shonan
kaedemalu
0
520
Other Decks in Technology
See All in Technology
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
580
VLMで2.3万枚のPyCon JP写真を検索!
terapyon
1
320
tamachi.go 誕生の裏側
rymiyamoto
1
200
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
210
ホームラボ紹介
y_sera15
0
230
【GCC2026】TrueHDRIを用いたルックデブ環境とライティングテクニック
bandainamcostudios
PRO
0
290
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
AI for Science時代を切り開く、政府の次世代HPC戦略の展望
gpuunite_official
0
220
AIに狂うスタートアップが、あえて「人との協働」に全振りした新卒エンジニア研修 / New Graduate Engineer Training at a Startup Accelerating AI Adoption
ohnoeight
0
190
Android skills に学ぶ
kokiko
0
160
関東Kaggler会発表資料
takoi
1
280
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
250
Featured
See All Featured
HDC tutorial
michielstock
2
810
Facilitating Awesome Meetings
lara
57
7.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Utilizing Notion as your number one productivity tool
mfonobong
4
550
Marketing to machines
jonoalderson
1
5.7k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
730
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How STYLIGHT went responsive
nonsquared
100
6.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Agile that works and the tools we love
rasmusluckow
331
22k
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