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
GKEとGaurunで作るPush通知サーバ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
k-kurikuri
October 19, 2018
Technology
510
3
Share
GKEとGaurunで作るPush通知サーバ
k-kurikuri
October 19, 2018
More Decks by k-kurikuri
See All by k-kurikuri
Awesome goにあるOSSをGithubStar数高い順に出力するツールを作った
k_kurikuri
0
730
Laravel Sparkでサービス開発に注力する
k_kurikuri
0
1.3k
Lambdaで勤怠連絡
k_kurikuri
1
1.6k
Starting Laravel Spark
k_kurikuri
0
470
[Laravel5.6]CHANGELOGを斜め読み
k_kurikuri
0
5.3k
GoビギナーがGCPでGoアプリをリリースした話
k_kurikuri
1
950
英語で質問した話を 聞いて欲しい
k_kurikuri
0
270
Laravel5.5 - Package Auto Discoveryを理解する
k_kurikuri
0
1.2k
Laravelで乙女ゲームを開発した話
k_kurikuri
2
640
Other Decks in Technology
See All in Technology
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
160
20年前の「OSS革命」に学ぶ AI時代の生存戦略
samakada
0
510
EMから幅を広げるために最近挑戦していること / Recent challenges I'm undertaking to expand my horizons beyond EM
hiro_torii
1
170
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
150
AI時代 に増える データ活用先
takahal
0
350
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
7.9k
Forget technical debt
ufried
0
130
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
350
『生成AI時代のクレデンシャルとパーミッション設計 — Claude Code を起点に』の執筆企画
takuros
2
1.7k
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
420
AI時代のガードレールとしてのAPIガバナンス
nagix
0
340
Angular Architecture Revisited Modernizing Angular Architectural Patterns
rainerhahnekamp
0
110
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
330
Skip the Path - Find Your Career Trail
mkilby
1
110
The Curse of the Amulet
leimatthew05
1
12k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
350
GraphQLとの向き合い方2022年版
quramy
50
15k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
330
Claude Code のすすめ
schroneko
67
220k
How to build a perfect <img>
jonoalderson
1
5.4k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
190
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
30 Presentation Tips
portentint
PRO
1
280
Transcript
GKEͱGaurunͰ࡞Δ Push௨αʔό k-kurikuri @ Go(Un)Conference LTେձ 4kg
ΞδΣϯμ • ൃදʹ͍ͨΔྲྀΕ • Push௨ͱ • Gaurunͱ • GKEͱ •
࣮͢Δ্ͰͷΞϨίϨ • GoͰ࣮ͨ͠Օॴ • ·ͱΊ
ࣗݾհ • ϑϦʔϥϯεͷόοΫΤϯυΤϯδχΞ • k-kurikuriͱͯ͠ΠϯλʔωοτΛ㓢 • Gopherྺ͘Β͍
͜ͷൃදʹ͍ͨΔྲྀΕ • GoΛͬͨॳΊͯͷλεΫ͕Push௨αʔό ͷ࣮ͩͬͨ • ผҊ݅Ͱ࣮͕͋ͬͨͨΊGaurunɺDockerɺ GKEͷ༻େܾ·͍ͬͯͨ • ॳΊͯͷ࣮ͩͬͨࣄ͋ΓৼΓฦΓͳ͕ΒΞ τϓοτ
Push௨ͱ • iOS, Android, webϒϥβͳͲͰώϣίͬͱग़ͯ͘Δ௨ • ༷ʑͳΠϕϯτΛϢʔβʔʹ௨Ͱ͖Δ • iOS(APNs), Android(FCM)ͱAPI͕༻ҙ͞Ε͍ͯΔ
• ྻʹૹΔͱશϢʔβʔͷ௨…ॲཧ͕ॏ͘ͳΓ͕ͪ • Firebase NotificationͳͲSaas͋Δ͕ॊೈੑεέʔϦϯ άʹ͕…
ॊೈੑεέʔϦϯάͷ GaurunͰղܾͰ͖ͦ͏
Gaurun (Ψϧϯ)ͱ • ϝϧΧϦࣾͷGoͰ࣮͞ΕͨPush௨αʔό • ෦ͰgoroutineΛ༻͠pushϦΫΤετ ΩϡʔʹཷΊΒΕඇಉظʹ࣮ߦ͞ΕΔ • ϞχλϦϯάAPIͷఏڙAPNS, FCMͷΞΫ
ηεϩάɺΤϥʔϩάཷΊࠐ·ΕΔ
TODO: ਤ
GaurunΛGKE্ʹߏங͢Δ
GKEͱ • Google Kubernetes Engineͷུ • GCP͕ఏڙ͢ΔDockerίϯςφΛσϓϩΠɺӡ༻ ཧ͢ΔkubernetesΛ༻ͨ͠ϚωʔδυαʔϏε • kubernetes͕࣋ͭεέʔϦϯάɾࢮ׆ࢹɾࣗಈ࠶
ىಈɺωοτϫʔΫཧͳͲίϯςφΛཧ͢Δͨ Ίͷ๛ͳػೳΛఏڙ
࠾༻ͨ͠GKEߏஙͷϑϩʔ • Gaurun༻ͷDockerfileΛ࡞Δ • DockerΠϝʔδΛContainer RegistryʹΞοϓ ͢Δ • Terraform͔ΒContainer RegistryͷΠϝʔδ
ΛݩʹGKEίϯςφΛ࡞͢Δ
։ൃ/ຊ൪ͰͷઃఆϑΝΠϧΓ ସ͑ • kubernetesͷػೳʹ͋ΔʮConfigMap, Secretʯ Λ༻ • CofigMapੜσʔλ͕key, valueͰอଘ͞Ε ΔɻύεϫʔυͳͲػີσʔλΛѻ͏༻్ʹ
͍͍ͯͳ͍ • SecretΛ༻͢Δͱ҉߸Խ͞Εͯอଘ
GKEͷϩά • GKEͰαʔόߏங͢Δ߹ɺstdoutग़ྗ͢Δࣄ ͰStackDriver Loggingʹϩά͕ࣗಈͰྲྀΕΔ • GKEͰσϑΥϧτͰfluentdͷઃఆ͕͞Ε͍ͯͯ StackDriverLoggingʹૹ৴͞ΕΔ • StackDriverLoggingʹཷ·ͬͨϩάGCSʹอଘ
͢Δࣄ͕ग़དྷΔ
GCP্ͷਤ
None
Push௨αʔόΛ ࣮͢Δ্ͰͷΞϨίϨ
σόΠετʔΫϯ • ͲͷͰ͋Δ͔ʁΛࣝผ͢Δใ • Apple, GoogleͷSDKΛ௨ͯ͠ϓϥοτϑΥʔ Ϝ͔ΒτʔΫϯΛड͚औΓαʔόଆͰอଘ͢ Δ • σόΠετʔΫϯ༗ޮظݶ͕͋Γɺظݶ
ΕτʔΫϯ࠶ൃߦ͢Δඞཁ͕͋Δ
ແޮʹͳͬͨ σόΠετʔΫϯͷճऩ
ແޮʹͳͬͨσόΠετʔΫϯ • ແޮͳσόΠετʔΫϯͱʮ༗ޮظݶΕʯͱʮΞϯΠϯε τʔϧ͞Εͯૹ৴Ͱ͖ͳ͍ʯϞϊ͕2ͭ͋Δ • ༗ޮظݶΕͷτʔΫϯΛૹΔͱΤϥʔʹͳΔͨΊΞϓϦଆͰ ߋ৽͢Δඞཁ͕͋Δ • Ϣʔβʔ͕ΞϯΠϯετʔϧ͍ͯ͠Δ߹τʔΫϯ͕༗ޮͰ ಧ͔ͳ͍ͨΊΤϥʔʹͳΔ
• APNsͷFeedbackServiceAPIΛ༻͢ΔͱʮΞϯΠϯετʔ ϧʯ͞Εͯૹ৴ෆೳͳτʔΫϯ͕औಘͰ͖Δ
FeedbackServiceAPI • APNs͕ఏڙ͢ΔແޮͳσόΠετʔΫϯΛऔಘ ͢ΔͨΊͷAPI • ϦΫΤετ͢ΔͨͼཷΊΒΕͨແޮͳσόΠε τʔΫϯআ͞ΕΔ • AppleͷنͰରԠϚετɻఆظతʹσό ΠετʔΫϯΛճऩ͍ͯ͠Δ͔ࢹ͞Ε͍ͯΔ
ΞϓϦέʔγϣϯʢGoʣͰ ࣮ͨ͠ػೳ
None
GoͰ࣮ͨ͠ػೳ • gaurunͷΫϥΠΞϯτॲཧ • ΠϕϯτʹԠͨ͡Push௨CLI • ΠϕϯτʹԠͨ͡Push௨APIϦΫΤετ • ΤϥʔτʔΫϯͷݕग़CLI •
༗ޮظݶΕτʔΫϯݕग़CLI
࠷ޙʹ • ख୳ΓͰͷ࣮ͳͷͰ͜Ε͕ϕετϓϥΫςΟε͔Θ ͔Βͳ͍ • ௨ΛૹΔ͚ͩͰͳ͘ɺແޮͳσόΠετʔΫϯͷ ཧͳͲࢥͬͨΑΓΔ͜ͱ͕ଟ͔ͬͨ • ཁ݅ʹΑͬͯSaasͰγϟοͱΔͷྑ͍ͷͰ •
Push௨ʹؔ͢ΔࣄԿ͔ͱ͞ΕΔͨΊɺPush௨Φ δαϯʹͳΔ
͋Γ͕ͱ͏͍͟͝·ͨ͠