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
SGEを活性化させる内製ツール達 / SGE
Search
CyberAgent
PRO
February 22, 2019
Technology
0
350
SGEを活性化させる内製ツール達 / SGE
サイバーエージェントの技術者(エンジニア・クリエイター)向けカンファレンス『CA BASE CAMP 2019』
SGEを活性化させる内製ツール達
岩上 裕樹
CyberAgent
PRO
February 22, 2019
Tweet
Share
More Decks by CyberAgent
See All by CyberAgent
新規開発と並走したリファクタリング戦略
cyberagentdevelopers
PRO
3
500
大規模Reactアプリのリアーキテクチャ_8万行のTanStack Query移行の奇跡
cyberagentdevelopers
PRO
2
310
CA.swift19_恋するAIアプリ開発の裏側
cyberagentdevelopers
PRO
1
64
CLのウィジェット開発について
cyberagentdevelopers
PRO
1
32
少数チームで挑む: SwiftUI, TCA, KMPを用いた 新規動画配信アプリ
cyberagentdevelopers
PRO
2
59
ABEMAの課金機能の刷新について:- StoreKit2によるiOSのアプリ内課金のリニューアル
cyberagentdevelopers
PRO
0
35
同時に複数購読可能なサブスクリプションを提供する
cyberagentdevelopers
PRO
0
36
Flutter × Rive 魅力的なアニメーション
cyberagentdevelopers
PRO
0
130
Serverpodを活用したDartのフルスタックアプリケーション開発
cyberagentdevelopers
PRO
0
170
Other Decks in Technology
See All in Technology
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
120
CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
kota2and3kan
6
3.9k
高専で制御を、大学でセンシングを学び、次は脳みそ
satoshirobatofujimoto
0
120
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
0
110
自らを知り外と繋がる、日経のエンジニア採用とDevRel活動/devreljp92
nishiuma
2
190
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Musicを例に~
otanet
0
320
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
8
680
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
210
同じ様なUIをiOS/Android間で合わせるヒントNo.2
fumiyasac0921
1
110
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.4k
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
5
790
令和最新版 Ruby プロファイラ "Pf2" のご紹介
osyoyu
0
170
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Atom: Resistance is Futile
akmur
260
25k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
Side Projects
sachag
451
41k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
The Invisible Customer
myddelton
114
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Embracing the Ebb and Flow
colly
80
4.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
80
44k
Transcript
SGEΛ׆ੑԽͤ͞Δ πʔϧୡ גࣜձࣾάϦϑΥϯ ؠ্༟थ
ؠ্ ༟थʢ͍Θ͔Έ Ώ͏͖ʣ • 20144݄ αΠόʔΤʔδΣϯτ৽ଔೖࣾ όοΫΤϯυΤϯδχΞ • 20147݄ Ξϝʔόࣄۀຊ෦ήʔϜࣄۀ෦ʹଐ
• 20148݄ʙݱࡏ גࣜձࣾάϦϑΥϯग़ 12ͷήʔϜͷ։ൃɾӡ༻ʹؔΘΓɺ4ͭͷήʔϜͷϦϦʔ εʹؔΘͬͨʢάϦϑΥϯ֎ͷSGEଞؚࣾΉʣ
SGEͱ • αΠόʔΤʔδΣϯτͷࢠձࣾ܈ʹΑΔήʔϜ&ΤϯλʔςΠϝϯτࣄۀ෦ SGE = [Next] Smartphone Games & Entertainment
SGEΛ׆ੑԽͤ͞Δ πʔϧୡͷհ
1. SGETube 2. SGooglE 3. εΰϦϥϯν 4. νϟοτߘπʔϧ 5. εΰϦϥϯσϒʔ
6. ͋ͨ͠ձٞͷಘγεςϜ
SGETube
SGEͷಛ • SGEͰͷษڧձ͕ͱͯଟ͍ ྫ͑ΞήςΫͳͲͷߨٛܗࣜͷษڧձ͕͋ͬͨΓ͢Δ ࢀߟɿʮͨΊʹͳΓ·ͨ͠ʂʯͰऴΘΒͤͳ͍࣮ʹͭͳ͕ΔษڧձʮΞήςΫʯͱʁ https://creator.game.cyberagent.co.jp/?p=5216 • SGEͷڞ༗ձଟ͍ ྫ͑ήʔϜ͕ϦϦʔεͨ͠Ұϲ݄ޙ͘Β͍ʹSGEͰڞ༗ձΛ࣮ࢪ͢Δ γεςϜͷߏͩͬͨΓɺۤ࿑ͨ͜͠ͱͩͬͨΓɺଞͷϓϩδΣΫτ։ൃͰ͠ͳͦ͏ͳͨ͜͠ͱͩͬͨΓɺاըʹ
͍ͭͯͩͬͨΓɺͳΜͰ • Πϕϯτଟ͍ • ͨ͘͞Μ͋ΔͷͰͯ͢ͷษڧձɾڞ༗ձʹग़੮Ͱ͖ͳ͍ ͦͷษڧձɾڞ༗ձͷ༰Δ͜ͱ͕Ͱ͖ͳ͍
ͦΜͳͱ͖ʹSGETubeʂʂ
SGETubeͱ • ࣾͷಈըڞ༗αΠτ ͚ࣾTubeͱࢥͬͯΒ͑ΔͱΘ͔Γ͍͔͢ • ࣾSSOͰϩάΠϯͰ͖ΔͨΊࣾһͳΒ୭ͰݟΕΔ • Ͳ͔͜ΒͰݟΕΔ ͋͑ͯIP੍ݶͳͲ͍ͯ͠ͳ͍ ͦͷͨΊɺՈͰͲ͜ͰษڧͰ͖Δ
• ϥΠϒ৴Ͱ͖Δ
SGETubeγεςϜߏ • AWS ΦϨΰϯ EC2ɺRDSɺS3ɺCloudFront εςʔδϯάڥ༻ҙ • ݴޠ PHP •
ಈըS3ʹอଘ • IP੍ݶ͔͚͍ͯͳ͍ͨΊɺॺ໊͖CookieΛ༻͍ͯɺηΩϡϦςΟΛ୲อ͍ͯ͠Δ https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content- signed-cookies.html
SGETubeͷྑ͔ͬͨͳͲ • ಈը͕ͲΜͲΜΞοϓϩʔυ͞Ε͍ͯ͘ ୭ͰΞοϓϩʔυͰ͖ΔΑ͏ʹ͍ͯ͠ΔͷͰɺؾܰʹΞοϓͯ͘͠ΕΔ ษڧձҎ֎ʹήʔϜͷϞοΫͷಈըͱ͔Ξοϓͯ͘͠ΕΔ ϦϦʔεޙ7ϲ݄Ͱ136ݸͷಈը͕Ξοϓϩʔυ͞Ε͍ͯΔʢ20192݄12ݱࡏʣ • SGETube͕ϦϦʔε͞Ε͔ͯΒ֤ษڧձɾڞ༗ձʹඞͣΧϝϥϚϯ͕ࢀՃ͢ΔΑ͏ʹͳͬͨ ͯ͢ͷษڧձɾڞ༗ձͷಈը͕Ξοϓϩʔυ͞ΕΔΑ͏ʹͳͬͨ •
SGEͷΠϕϯτͷϥΠϒ৴ͰΈΜͳͰΓ্͕ΕΔ ձʹߦ͘͜ͱͰ͖ͳ͍͚ͲɺϦΞϧλΠϜͰݟΔ͜ͱ͕Ͱ͖Δ ֎ͰߦΘΕͨΫϦΤΠλʔͷΠϕϯτաڈ࠷ߴͷಉ࣌ଓ • ཁ͕ͨ͘͞Μಧ͘ վળ߲͕ʑ૿͍͑ͯ͘ɻɻָ͘͠ӡ༻͕Ͱ͖Δʂ
SGooglE
SGEͷಛ • SGEͨ͘͞Μͷࢠձࣾͷू·Γ • ֤ࣾʹ͍ΖΜͳϊϋ͕ू·͍ͬͯΔ • ֤ࣾͦΕͧΕͰWikiͳͲ͍ΖΜͳܗͰϊϋ͕ཷ·͍ͬͯΔ ConfluenceͩͬͨΓɺRedmineͩͬͨΓɺ͍Ζ͍Ζ • ֤ࣾόϥόϥͳͷͰɺͳʹ͔ௐ͍ͨͷ͕͋Δͱ͖ʹ֤WikiͰݕࡧ͢Δ
ͷ͕ΊΜͲ͍͘͞ ྫ͑UnityͰݕࡧ͍ͨ͠ͱ͖ɺ֤WikiͰUnityݕࡧ͠ͳ͍ͱ͍͚ͳ͍
ͦΜͳͱ͖ʹSGooglEʂʂ
SGooglEͱ • SGEͷ֤WikiΛҰׅͰݕࡧͰ͖ΔγεςϜ • ఆظతʹ֤ࣾͷWikiΛΫϩʔϦϯά͓ͯ͘͠ͷͰৗʹ࠷৽ͷใ • ࣾSSOͰϩάΠϯͰ͖ΔͨΊࣾһͳΒ୭Ͱ͑Δ • ࣾIPʹ੍ݶ •
Googleݕࡧͷݕࡧ݁Ռը໘ͷྡʹಉ࣌ʹSGooglEͷݕࡧ݁Ռදࣔͤ͞Δ ֦ுػೳΛ༻ҙʢ͢Δ༧ఆʣ
SGooglEγεςϜߏ • AWS EC2ɺElasticSearchʢ༁͋ͬͯEC2্Ͱಈ͔͍ͯ͠Δʣ • ݴޠ Java • ݕࡧΤϯδϯʹElasticSearchΛ༻ •
ΫϩʔϦϯάλΠϛϯάຖਂʹઃఆͯ͠ΈͯΔ • ݱࡏɺβ൛ެ։தͰɺSGEͷҰ෦ͷਓʹ৮ͬͯΒ͍ͬͯΔஈ֊
εΰϦϥϯν
ࣾͷ͓หͷಛ • CAͰ͓หΛ֨҆Ͱൢച͍ͯ͠ΔͷͰ֨҆ͰߪೖͰ͖Δ • ΈΜͳ͕ߪೖ͢ΔͷͰߦྻ͕Ͱ͖Δ • ΑΓྑ͍͓หΛखʹೖΕΔͨΊʹૣ͘ฒͿ • ൢചλΠϛϯάͰMTG͕ೖ͍ͬͯΔͱྑ͍͓ห͕खʹೖΒͳ͍
ͦΜͳͱ͖ʹεΰϦϥϯνʂʂ
εΰϦϥϯνͱ • ͓หΛ༧Ͱ͖ΔΞϓϦ • ͦͷʹങ͑Δ͓หΛޕલதʹ༧ • ͓னͷൢച࣌ؒଳʹΞϓϦͷ༧ը໘ΛݟͤͯߪೖͰ͖Δ ※ϦϦʔε࣌ͷϝʔϧͷεΫγϣΛΘ͍͍͓ͤͯͨͩͯΓ·͢ εΰϦϥ͘Μ
εΰϦϥϯνͷγεςϜߏ • GCP LBɺGCEʢNode.js + MariaDB + MongoDBʣ • AndroidͱiOS͚ΞϓϦ
εΰϦϥϯνͷྑ͔ͬͨͳͲ • ฒͳ͓ͯ͘ห͕ങ͑Δ Ϗϧͷ֊ʹ༗རෆར͕ͳ͘ͳͬͨ Ҏલ12࣌લμογϡͳͲ͕ଘࡏ͍ͯͯ͠ɺͦͷલͦΘͦΘ͍ͯͨ͠ • ͪߦྻ͕ͳ͘ͳΓɺདྷ٬ͷݟӫ͕͑Α͘ͳͬͨ • 20165݄ʹϦϦʔε͔ͯ͠ΒͣͬͱΘΕ͍ͯΔ SGEͷظӡ༻αʔϏεͷҰͭʹͳͬͨ
νϟοτߘπʔϧ
SGEͷಛ • SGEͨ͘͞Μͷࢠձࣾͷू·Γ • ֤ࣾͰslackΛͬͨΓchatworkΛͬͨΓ͍ͯ͠Δ • ֤ࣾʹ࿈བྷ͢Δͱ͖͍֤ͭࣾͷදʹ࿈བྷ͔ͯͦ͜͠ΒखಈͰߘͯ͠ Β͍ͬͯͨ
ͦΜͳͱ͖ʹνϟοτߘπʔϧʂʂ
νϟοτߘπʔϧͱ • Σϒϒϥβ͔Βߘ༰ΛϑΥʔϜૹ৴͢Δ͚ͩͰ֤ࣾͷνϟοτʹ ߘ͞ΕΔ Slack Chatwork
νϟοτߘπʔϧͷγεςϜߏ • AWS S3ʹΑΔHTML৴ɺAPI GatewayɺLambdaʢNode.jsʣ • αʔόϨεʂʂ ݸਓతʹ͜ͷߏͰ࡞ͬͯΈ͔ͨͬͨ
νϟοτߘπʔϧͷγεςϜߏ • ࣾSSOΛ༻͢ΔͨΊʹELB,EC2ΛڬΉ͜ͱʹͳͬͯ͠·ͬͨ αʔόϨε͡Όͳ͘ͳͬͯ͠·ͬͨ
νϟοτߘπʔϧͷγεςϜߏ • CloudFrontͰLambda@EdgeΛ༻͢Δ͜ͱͰղܾʂʢ4લʹͬͨʣ • Lambda@EdgeͰࣾSSOೝূͷॲཧΛߦ͏
νϟοτߘπʔϧͷྑ͔ͬͨͳͲ • Σϒ͔ΒαΫοͱߘͰ͖Δ • ؒʹਓΛڬ·ͳ͘ͳΔͷͰɺ͙͢ʹߘͰ͖Δ • ୭ͰؾܰʹߘͰ͖Δ Γ͗͢ʹҙ • ௨শʮؠ্๒ʯͱݺΕΔΑ͏ʹͳͬͯ͠·ͬͨ
ʮνϟοτߘπʔϧʯͬͯॻ͍͍ͯΔ͚Ͳɺਖ਼໊ࣜশ͕ͳ͍ ࣗͷ໊લ͕ͭ͘ͷݏͰ͢Ͷ
εΰϦϥϯσϒʔ
SGEͷಛ • SGEͷษڧձɾڞ༗ձ͕ଟ͍ • SGEͷ֤ࣾͰษڧձ͕ଟ͍ • ษڧձ͕ͨ͘͞Μ࣮͋ͬͯ࣍ࢪ͞ΕΔΠϕϯτ͕Կ͔͕ѲͰ͖ͳ͍ • ͍ͭͨ͘͞Μͷਓ͕ࢀՃͯ͘͠ΕΔ •
ࢀՃऀͷ༧ఆͷՃ͕ΊΜͲ͍͕͔͔࣌ؒ͘͞͠Δ
ͦΜͳͱ͖ʹεΰϦϥϯσϒʔʂʂ
εΰϦϥϯσϒʔͱ • ࣾͷΠϕϯτͷҰཡ͕֬ೝͰ͖ɺ؆୯ʹࢀՃͰ͖ΔγεςϜ • ࣾͷ༧ఆπʔϧʹ࿈ܞͯ͠؆୯ʹ༧ఆʹࢀՃͰ͖Δ • connpassATNDͷΑ͏ͳͷ • ݴޠ golang
• ։ൃதʂʂ
͋ͨ͠ձٞͷಘγεςϜ
SGEͰͷ͋ͨ͠ձٞ • ͋ͨ͠ձٞͱɺһͱࣾһ͕νʔϜΛΜͰɺαΠόʔΤʔδΣϯτͷ͋͠ ͨΛͭ͘Δ৽نࣄۀҊ՝ղܾҊͳͲΛఏҊ͢Δ߹॓ • αΠόʔΤʔδΣϯτશࣾͱ͍ͯͬͯ͠Δ͕ɺSGEͰ͍ͬͯΔ • ΫϦΤΠλʔɺΤϯδχΞ͚ͩͰ͋ͨ͠ձٞΛ࣮ࢪ͍ͯ͠Δ ΠϊςοΫΩϟϯϓɺΫϦΤΠλʔ͋ͨ͠ձٞɺٕज़ֵ৽ձٞͳͲ
SGEͰͷ͋ͨ͠ձٞ • ͋ͨ͠ձٞͱɺһͱࣾһ͕νʔϜΛΜͰɺαΠόʔΤʔδΣϯτͷ͋͠ ͨΛͭ͘Δ৽نࣄۀҊ՝ղܾҊͳͲΛఏҊ͢Δ߹॓ • αΠόʔΤʔδΣϯτશࣾͱ͍ͯͬͯ͠Δ͕ɺSGEͰ͍ͬͯΔ • ΫϦΤΠλʔɺΤϯδχΞ͚ͩͰ͋ͨ͠ձٞΛ࣮ࢪ͍ͯ͠Δ ΠϊςοΫΩϟϯϓɺΫϦΤΠλʔ͋ͨ͠ձٞɺٕज़ֵ৽ձٞͳͲ ಘൃදΛͬͱΓ্͍͛ͨ
ͦΜͳͱ͖ʹಘγεςϜʂʂ
͋ͨ͠ձٞͷಘγεςϜͱ • SGE͋ͨ͠ձٞͰߴ͞Μ͕ಘΛൃද͢Δ ผͷܗࣜͷ͋ͨ͠ձٞͰಘΛൃද͢Δਓ͕͍Δ • ԋग़Λ͚ͭͯಘΛൃද͢Δ͜ͱͰΓ্͛υΩυΩײΛग़͢ ێͪΌΜͷԾେతͳ
͋ͨ͠ձٞͷಘγεςϜͱ
͋ͨ͠ձٞͷಘγεςϜͱ
͋ͨ͠ձٞͷಘγεςϜͱ
͋ͨ͠ձٞͷಘγεςϜͱ
͋ͨ͠ձٞͷಘγεςϜͷγεςϜߏ • AWS EC2ʢNode.jsʣ • ଓʹ͍ͭͯ εϚϗˠEC2ɿAPIΛୟ͘ εΫϦʔϯˠEC2ɿWeb Socket εϚϗͷૢ࡞ΛͳΔ͘ૣ͘εΫϦʔϯʹөͤ͞Δ
͋ͨ͠ձٞͷಘγεςϜͷྑ͔ͬͨͳͲ • ಘൃද࣌ʹΓ্͕Δ • ࣗͰ࡞ͨ͠πʔϧͳͷʹ͍͢͝υΩυΩ͠ͳ͕ΒಘൃදΛݟकΔ • ͋ͨ͠ձٞ͝ͱʹ৽͍͠σβΠϯͷγεςϜΛ࡞ΔΑ͏ʹͳͬͯ͠·ͬͨ σβΠϯͷࠩ͠ସ͚͑ͩʂͷ͕ͣɺඍௐ͕ೖΔ
͓·͚ πʔϧͰͳ͍͕ ڞ௨Ͱ͍ͬͯΔπʔϧͷհ
SGE Gitlab
SGE Gitlab • ֤ࣾͰ࡞ͬͨήʔϜͳͲͷιʔείʔυ্͕͕͍ͬͯΔ • ֤ࣾͰGithubGitlab͕͋Δ͕ɺͦΕΛఆظతʹSGEͷGitlabʹΞοϓ ͯ͠Β͍ͬͯΔ • SGEͷGitlabΛ͚֤ࣾͷιʔείʔυΛݟΔ͜ͱ͕Ͱ͖Δ
SGE Slideshare
SGE Slideshare • ษڧձڞ༗ձɺ͋ΒΏΔͱ͜ΖͰ༻ͨ͠εϥΠυ͕Ξοϓ͞Ε͍ͯΔ • ͜͜Λ͘ͱաڈͷൃදࢿྉΛݟΔ͜ͱ͕Ͱ͖Δ • SGETubeΛݟͳ͕ΒSlideshareΛࢀߟʹ͢Δ͜ͱͰɺΑΓਂֶ͘Δͣ
SGE QiitaνʔϜ
SGE QiitaνʔϜ • SGEͰͷQiitaνʔϜ • ֤ࣾͷϊϋϝϞॻ͖ͳͲΛؾܰʹॻ͚Δ • ࠓͰ1175݅ͷهࣄ͕ߘ͞Ε͍ͯΔ • Qiita:Teamͷهࣄ
ʮ300ਓͷΤϯδχΞ৫Λԣஅͨ͠Qiita:Teamͷ׆༻ज़ͱʂʁʯ https://teams.qiita.com/customers/sge/
None
·ͱΊ • ٕज़Ͱ৫͕Γ্͕ΓɺSGE͕׆ੑԽ͞ΕΔ • ࣾπʔϧΛ༻͍ͯɺΑΓศརɺޮΞοϓɺεΩϧΞοϓʹߩݙ • ࢠձࣾΛӽ͑ͯ৫ͷ͍ΖΜͳਓͱؔΘΔ͜ͱ͕Ͱ͖ɺSGE͕׆ੑԽ͞ΕΔ • ৽͍ٕ͠ज़ͷઓΛೖΕΔ͜ͱ͕Ͱ͖Δ ࣗͷ߹ۀͰPHPΛ͏͜ͱ͕ଟ͍͕ɺ͍ΖΜͳݴޠΛ৮Δ͜ͱ͕Ͱ͖Δ
όοΫΤϯυະܦݧͰೖࣾͨࣗ͠ʹͱͬͯخ͍͠ • ϛεͬͯҰൠϢʔβʔʹӨڹ͕ग़ΔΘ͚Ͱͳ͘ɺSGEʹ͔͠Өڹ͕Ͱ ͳ͍ͷͰԕྀͳ͘ઓͰ͖Δ
ٕज़͕৫Λ׆ੑԽͤ͞Δʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠