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
160
Kubernetes・GCPを使った チャットボットサービスの 機械学習部分の話
t10471
March 08, 2018
Tweet
Share
More Decks by t10471
See All by t10471
hashicorp_raftからraftを学ぶ
t10471
0
850
EOSにPull Requestを出してマージされた話
t10471
1
680
分散台帳・暗号通貨とRust ブロックチェーンをRustで作ってる話
t10471
2
1.3k
Kubernetesの ダークカナリアリリースツールを作った話
t10471
0
770
型についてちょっと考える
t10471
1
300
Other Decks in Technology
See All in Technology
Youは何しにJAWS-UGへ?
fukuchiiinu
1
110
3次元点群データ「VIRTUAL SHIZUOKA』のオープンデータ化による恩恵と協働の未来/FOSS4G Japan 2024
kazz24s
0
140
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
330
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
360
Intuneお役立ちツールのご紹介
sukank
3
780
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
140
AGIについてChatGPTに聞いてみた
blueb
0
120
TinyGoを使ったVSCode拡張機能実装
askua
2
210
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
430
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
160
Featured
See All Featured
Music & Morning Musume
bryan
46
6.2k
GitHub's CSS Performance
jonrohan
1030
460k
Writing Fast Ruby
sferik
627
61k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
400
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Faster Mobile Websites
deanohume
305
30k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Six Lessons from altMBA
skipperchong
27
3.5k
4 Signs Your Business is Dying
shpigford
180
21k
Designing Experiences People Love
moore
138
23k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
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Ͱهड़ग़དྷΔͷͰίϯύΠϧνΣοΫ͕ग़དྷΔ
͋Γ͕ͱ͏͍͟͝ ·ͨ͠