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
Kubernetes・GCPを使った チャットボットサービスの 機械学習部分の話
Search
t10471
March 08, 2018
Technology
0
180
Kubernetes・GCPを使った チャットボットサービスの 機械学習部分の話
t10471
March 08, 2018
Tweet
Share
More Decks by t10471
See All by t10471
hashicorp_raftからraftを学ぶ
t10471
0
950
EOSにPull Requestを出してマージされた話
t10471
1
700
分散台帳・暗号通貨とRust ブロックチェーンをRustで作ってる話
t10471
2
1.4k
Kubernetesの ダークカナリアリリースツールを作った話
t10471
0
960
型についてちょっと考える
t10471
1
310
Other Decks in Technology
See All in Technology
専門分化が進む分業下でもユーザーが本当に欲しかったものを追求するプロダクトマネジメント/Focus on real user needs despite deep specialization and division of labor
moriyuya
1
1.3k
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
260
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
1
340
Strands Agents & Bedrock AgentCoreを1分でおさらい
minorun365
PRO
6
300
生成AI時代におけるAI・機械学習技術を用いたプロダクト開発の深化と進化 #BetAIDay
layerx
PRO
1
1.1k
【OptimizationNight】数理最適化のラストワンマイルとしてのUIUX
brainpadpr
1
460
AIエージェントを現場で使う / 2025.08.07 著者陣に聞く!現場で活用するためのAIエージェント実践入門(Findyランチセッション)
smiyawaki0820
6
950
Vision Language Modelと自動運転AIの最前線_20250730
yuyamaguchi
4
1.3k
20250807_Kiroと私の反省会
riz3f7
0
200
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
9
2.2k
「AIと一緒にやる」が当たり前になるまでの奮闘記
kakehashi
PRO
3
140
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
1.3k
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Side Projects
sachag
455
43k
How to Ace a Technical Interview
jacobian
278
23k
Designing Experiences People Love
moore
142
24k
Gamification - CAS2011
davidbonilla
81
5.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Typedesign – Prime Four
hannesfritz
42
2.7k
Building Adaptive Systems
keathley
43
2.7k
Facilitating Awesome Meetings
lara
54
6.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Transcript
KubernetesɾGCPΛͬͨ νϟοτϘοταʔϏεͷ ػցֶश෦ͷ kubernetesษڧձ @t10471
νϟοτϘοταʔϏεͱʁ ࡾਓΒ͠ʹ͓͢͢Ίͷిؾϓϥϯʁ XXXిؾͷYYYϓϥϯ͕͓͢͢ΊͰ͢ɻ ճʹຬͨ͠߹͜ΕͰऴྃ ຬ͠ͳ͍߹ɺΦϖϨʔλʔʹΓସ͑Δ ΦϖϨʔλʔϘοτͱͷΓऔΓΛҾ͖ܧ͛Δ ΦϖϨʔλʔͷZZZʹΓସΘΓ·ͨ͠… ΦϖϨʔλʔʹΓସ͑Δ(Ϙλϯ) ೲಘ͠·ͨ͠ʂ ϘοτͱਓͷϋΠϒϦου
Έ(ͬ͘͟Γ) • σʔλαΠΤϯςΟετ͕ػցֶशϞσϧΛ࡞ͦ͠ΕΛೖΕͨpod ΛσϓϩΠ • FAQઃܭऀఆ࣭ͱճͳͲΛCSVͰΞοϓϩʔυ • CSVΛύʔεͯ͠ఆ࣭Λࢄදݱʹมͨ͠σʔλΛ࡞ • ࡞ͨ͠σʔλΛpodʹ
• ࣭ऀͷ࣭Λࢄදݱʹมͨ͠ͷͱɺఆ࣭ͷશσʔλΛ ػցֶशΛͬͯۙ͞ܭࢉ͠ɺείΞ͕ߴ͍ͷΛฦ͢
ɾରࡦ • CSVͷมॲཧʹ͕͔͔࣌ؒΔ • k8sͷJobΛ༻ • ϘοτAPIPythonͰग़དྷ͍ͯͯɺຖճɺશσʔλ͕ඞཁ • ΦϯϝϞϦͰσʔλΛอଘ͢Δ͜ͱͰߴԽ •
มσʔλΛ͢Δઌͷαʔό͕Կ͋Δ͔ෆ໌ • Cloud PubSubΛ༻ͯ͠ߋ৽Λ௨
Έ(k8sͷNode) • ϑϩϯτϊʔυNode • νϟοτը໘ Pod (JavaScript) • ཧը໘ Pod
(TypeScript) • αʔόNode • όοΫΤϯυAPI Pod (Scala) • Jobࢹ API Pod (Go) • ػցֶशNode • ػցֶशAPI Pod (Python) • Job༻Node • CSVม Job (Python) • CSVม Job ࢹ Job (Go)
Έ(NodeҎ֎) • GCS • มσʔλΛอଘ • Cloud SQL • JobͷεςʔλεΛอଘ
• Cloud Datastore • มσʔλͷϝλใΛอଘ • Cloud PubSub • มσʔλͷߋ৽Λ͑Δ
Έ(APIɾJob) • CSVΞοϓAPI (Scala) • CSVมॲཧAPI (Python) • CSVߋ৽API (Python)
• CSVมॲཧJobىಈAPI(Go) • Ϙοτ API (Python) • σʔλϦϩʔυAPI (Python) • CSVมॲཧJob (Python) • CSVมॲཧJobΛࢹ͢ΔJob(Go)
Έ(ৄࡉ1) • ཧը໘͕CSVΞοϓAPI(Scala)Λͨͨ͘ • CSVΞοϓAPI͕CSVมॲཧAPI(Python)Λͨͨ͘ • CSVมॲཧAPICSVͷόϦσʔγϣϯΛߦ͍ɺOKͳΒCSVมॲཧ Job(k8sͷJob)Λىಈ͢Δ • CSVΞοϓAPICSVมॲཧAPI͕OKͩͬͨΒɺมॲཧࢹAPI(Go)Λ
ͨͨ͘(ҾʹJobͷidΛઃఆ) • มॲཧࢹAPICSVมॲཧJobΛࢹ͢ΔJobΛىಈ͢Δ • CSVมॲཧJobΛࢹ͢ΔJobJobͷεςʔλε(Job࡞தɾॲཧத)Λ ཧը໘ʹ͔ΔΑ͏ʹߋ৽͢Δ
Έ(ৄࡉ2) • CSVมॲཧJobมॲཧ͕ऴΘͬͨΒɺGCSʹσʔλΛΞοϓ ͠ɺPubSubͰσʔλ͕ߋ৽͞Εͨ͜ͱΛPublish͠ɺऴྃ͢Δ • Ϙοτ API Pod(Python)ىಈ࣌ʹSubscribeͷϧʔϓΛߦ͏ϓϩη εΛϑΥʔΫ͍ͯͯ͠͠ΔͷͰɺϝοηʔδΛड͚औͬͨΒɺGCS ͔ΒσʔλΛऔಘ͢Δ
• CSVมॲཧJobΛࢹ͢ΔJobCSVมॲཧJob͕ऴΘͬͨͷΛ ֬ೝͨ͠Βɺclient-goΛ֤ͬͯPodͷσʔλϦϩʔυAPIΛͨͨ ͖ɺશPod͕ϦϩʔυΛऴ͑ͨΒɺεςʔλεΛྃʹมߋ͠ऴྃ ͢Δ
ਏ͔ͬͨ • Pythonਏ͍… • Bot APIϦΫΤετຖʹશσʔλ(1ςφϯτ100MҐ)͕ඞཁͳͷ ͰɺͦΕΛຖճऔಘ͢Δͷແཧ͖͍ͭͷͰΦϯϝϞϦʹอଘ͠ ͨ • ΦϯϝϞϦʹอଘͨ͠ΒɺେͳΈʹͳͬͨ…
• PythonͩͱϚϧνεϨουGIL͕ൃੜ͢ΔͷͰɺϚϧνϓϩηε ʹͨ͠ • αϒϓϩηεͷSignalͷϋϯυϦϯά͕໘…
ྑ͔ͬͨ • Kubernetesศར! • εέʔϦϯά͕؆୯ɺGood! • GCPͦͦ͜͜ศར! • AWSΑΓػೳྼΔ͚ͲɺେମΑ͍LBͱGKE͕Good! •
client-go͕ศར! • ྺ࢙తʹGo෦࠷ޙʹ։ൃ • PythonͰk8sͷAPIΛ͍ͨͨͯJobΛ࡞͢ΔͷϋοΫతͳײͩͬͨ͡ͷ ͕ɺclient-goΛ͏ͱશ෦ϥοϓ͞Εָ͍ͯͯ • Job༻yaml૬ΛgoͰهड़ग़དྷΔͷͰίϯύΠϧνΣοΫ͕ग़དྷΔ
͋Γ͕ͱ͏͍͟͝ ·ͨ͠