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
870
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
250
20201114 GCPUG Shonan
kaedemalu
0
510
Other Decks in Technology
See All in Technology
私がブラウザを自作したくなった理由
supurazako
1
270
2027年のMetricKit
kantacky
0
120
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
AIのためのEthernet技術動向 (SerDes)
markunet
1
230
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.5k
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
150
Model Studio CLI × Token Plan
maigo999
0
200
35分でわかるEffective Platform Engineering
nwiizo
5
510
小粒でもパワフルなJS Runtime Antjsについて
comamoca
0
110
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
130
AI開発に用いられるHPC技術について
gpuunite_official
0
150
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
300
Into the Great Unknown - MozCon
thekraken
41
2.7k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
550
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
Code Review Best Practice
trishagee
74
20k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Typedesign – Prime Four
hannesfritz
42
3.1k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
380
Navigating Weather and Climate Data
rabernat
0
480
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
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