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
中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017
Search
Konboi
August 30, 2017
Technology
8
9.7k
中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017
本セッションでは、約20〜30人規模で面白法人カヤックが運用しているスマホゲームタイトルの開発/運用の現場を支えている開発の仕組み化と自動化の取り組みについて具体的な例を上げながら紹介します。
Konboi
August 30, 2017
Tweet
Share
More Decks by Konboi
See All by Konboi
Java's OOM and k8s' OOM 遭遇した2つのOOMと対策 ~ Launchableでの事例 ~ / JJUG 2025 Spring
konboi
1
84
非同期開発体制を支えるドキュメント文化 / YAPC::Hiroshima 2024
konboi
28
11k
様々な環境へコマンドラインツールを提供する上での苦労とその対策 / YAPC::Kyoto 2023
konboi
0
2.9k
煩雑な運用を Goを使って楽にする / Go Conference 2019 Spring
konboi
4
4.4k
あなたってどんな方(型)?/ kamakura.go#4
konboi
1
600
golang tokyo #6 / ゲーム開発には欠かせない?! あれをシュッと見る
konboi
1
7.5k
git-schemlexとddl-makerを使ったDB migrationの紹介 / git-schemalex and ddl-maker migration #golangtokyo
konboi
1
10k
Redisの調査についてとrmlp
konboi
5
4.5k
カヤックの新卒研修 #師弟登壇2015
konboi
0
3.8k
Other Decks in Technology
See All in Technology
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
150
新規プロダクト開発、AIでどう変わった? #デザインエンジニアMeetup
bengo4com
0
450
活きてなかったデータを活かしてみた話 / Shirokane Kougyou vol 19
sansan_randd
1
290
doda開発 生成AI元年宣言!自家製AIエージェントから始める生産性改革 / doda Development Declaration of the First Year of Generated AI! Productivity Reforms Starting with Home-grown AI Agents
techtekt
0
140
“プロダクトを好きになれるか“も QAエンジニア転職の大事な判断基準だと思ったの
tomodakengo
0
140
評価の納得感を2段階高める「構造化フィードバック」
aloerina
1
160
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
4
550
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
140
Whats_new_in_Podman_and_CRI-O_2025-06
orimanabu
3
180
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
44
26k
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.1k
比起獨自升級 我更喜歡 DevOps 文化 <3
line_developers_tw
PRO
0
160
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
430
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Docker and Python
trallard
44
3.4k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
How to Ace a Technical Interview
jacobian
276
23k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
YesSQL, Process and Tooling at Scale
rocio
172
14k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Transcript
தنνʔϜΛࢧ͑ΔࣗಈԽͱ ϊϋڞ༗ͷΈ ໘ന๏ਓΧϠοΫ ਧྒྷհ@CEDEC2017
Profile • ਧྒྷհ a.k.a ˏKonboi • ໘ന๏ਓΧϠοΫ • ιʔγϟϧήʔϜࣄۀ෦ॴଐ •
ٕज़෦ όοΫΤϯυΤϯδχΞ݉νʔϑ • ΩϯϚϯϚοεϧγϣοτͳͲΛ୲
தنνʔϜΛࢧ͑ΔࣗಈԽ ͱϊϋڞ༗ͷΈ
தنνʔϜΛࢧ͑ΔࣗಈԽ ͱϊϋڞ༗ͷΈ
ΧϠοΫͷ ։ൃମ੍ͷհ
• ΒͷߕࢠԂϙέοτ • γϦʔζྦྷܭ 600ສDL • ϓϨΠϠʔ̍ਓͷߴߍٿࣇ • ϓϨΠϠʔಉ࢜ͰνʔϜΛฤ •
ߕࢠԂग़/༏উΛࢦ͢ • ΩϯϚϯ MUSCLESHOT • DeNA͞Μͱͷڠۀ • ݪ࡞Λ࠶ݱͨ͠ετʔϦʔ • ࠷େ̐ਓͷϦΞϧλΠϜ ڠྗότϧ
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ˞ήʔϜٕݚΠϯϑϥٕज़෦ॴଐ
ϓϩϞʔγϣϯاը෦ॴଐ Ͱ͕͢આ໌ͷͨΊ͚͍ͯ·͢
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ɾϓϩσϡʔαʔ
ɾσΟϨΫλʔ ɾϓϥϯφʔ ɾϨϕϧσβΠφʔ ɾϓϩδΣΫτϚωʔδϟʔ
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ɾ6*σβΠφʔ
ɾ%σβΠφʔ ɾάϥϑΟοΧʔ ɾΞχϝʔλʔ
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ɾόοΫΤϯυΤϯδχΞ
ɾήʔϜϓϩάϥϚ ɾ6*ϓϩάϥϚ
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ɾΞηοτύΠϓϥΠϯߏங
ɾڞ௨ϥΠϒϥϦͷ։ൃ ɾͦͷଞڞ༗ج൫ͷ։ൃӡ༻
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ɾαʔόʔߏஙӡ༻
ɾΠϯϑϥʹؔ͢ΔΞυόΠβʔ ɾো࣌ͷରԠϔϧϓ
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ɾࠂؔ࿈
ɾίϥϘاը
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦ ˒
d!3 ˒ ༑ϚʔέςΟϯάͷղઆ
اը෦ ҙঊ෦ ٕज़෦ ήʔϜٕݚ Πϯϑϥ ϓϩϞʔγϣϯ اը෦ ҙঊ෦ ٕज़෦
اը෦ ҙঊ෦ ٕज़෦ dਓఔ dਓఔ dਓఔ
اը෦ ҙঊ෦ ٕज़෦ dਓఔ dਓఔ dਓఔ ͏ͪ#&d̒ਓ
اը෦ ҙঊ෦ ٕज़෦ dਓఔ dਓఔ dਓఔ ͏ͪ#&d̒ਓ ߹ܭdਓ
ΧϠοΫͷ։ൃମ੍ • ήʔϜΤϯδϯUnityΛ༻ • ։ൃڥؚΊόοΫΤϯυશͯAWS • GithubͷPrivateϦϙδτϦͰίʔυཧ • ΞηοτGithubͰཧ •
νϟοτπʔϧʹSlack
தنνʔϜΛࢧ͑ΔࣗಈԽ ͱϊϋڞ༗ͷΈ
தنνʔϜΛࢧ͑ΔࣗಈԽ ͱϊϋڞ༗ͷΈ
Ϛελʔσʔλͷ ӡ༻ϑϩʔࣗಈԽ
• Ϛελʔσʔλߋ৽ͷස͕ߴ͍ • ΫΤετɺΩϟϥΫλʔɺΨνϟɺ etc ... • Ϛελʔσʔλͷߋ৽αΠΫϧ͕ૣ͍ • ϢʔβʔఏڙͰ͖Δࢪࡦ͕૿͑Δ
• ϏδωεతΠϯύΫτ͕େ͖͍ Ϛελʔσʔλӡ༻ϑϩʔͷࣗಈԽ
Ϛελʔσʔλӡ༻ϑϩʔͷࣗಈԽ • ΧϠοΫͰϚελʔσʔλͷཧʹ Google Spreadsheets(ҎԼ GSS)Λ༻ • өͷେ·͔ͳྲྀΕͱͯ͠ • ϓϥϯφʔɺϨϕϧσβΠφʔ͕GSSʹೖྗ
• GSS͔ΒCSVܗࣜͰμϯϩʔυ • CSV͔ΒDBΠϯϙʔτ • ΫϥΠΞϯτ৴͕ඞཁͳͷมͯ͠
Why GSS ? • ϝϦοτ • ෳਓͰૢ࡞Մೳ • Πϯλʔωοτ͑͋͞ΕͲ͔͜ΒͰฤूՄೳ •
ฤूͷཤྺ͕Γɺ෮ݩՄೳ • JavaScriptͰϓϥάΠϯͷهड़͕Մೳ
Why GSS ? • σϝϦοτ • ࣜϓϥάΠϯΛ༻͢Δͱ͙͢ॏ͘ͳΔ • ωοτͷڥ͕ͳ͍ͱߋ৽͕өͰ͖ͳ͍
ࣗಈԽલͷGSSͷӡ༻ϑϩʔ • ̍ͭͷγʔτΛΈΜͳͰฤू • ࡞ۀ༰͕িಥ • ฒߦͰͷ࡞ۀ͕͘͠ • ࡞ۀεϐʔυ͕ग़ͳ͍ࣄ͕ʹ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ࡞ۀ͕িಥ (ࣄྫ) དྷिग़͢ثΛ ೖྗ͠·͢
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ࡞ۀ͕িಥ (ࣄྫ) ࠶དྷिग़͢ثΛ ೖྗ͠·͢
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ࡞ۀ͕িಥ (ࣄྫ) ࠓೖྗதͳͷͰ গͬͯ͠Լ͍͞
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ދప ଜӍ ࡞ۀ͕িಥ (ࣄྫ) ։ൃڥͰ ֬ೝ͠Α͏ͬͱʂ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ދప ଜӍ ࡞ۀ͕িಥ (ࣄྫ) ͍͢·ͤΜ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ދప ଜӍ ࡞ۀ͕িಥ (ࣄྫ) ࣄલͷ͓Βͤͱ ύϥϝʔλ͕ҧ͏ͷͰ मਖ਼͠·͢
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ދప ଜӍ ࡞ۀ͕িಥ (ࣄྫ) 2"લͷσʔλൈ͍ͯ Լ͍͞
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ދప ଜӍ ࡞ۀ͕িಥ (ࣄྫ)
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ ދప ଜӍ ࡞ۀ͕িಥ (ࣄྫ) ࡞ۀͰ͖Δͷ͍ͭʹ ͳΔΒʜ
͍
͍ • Ϛελʔσʔλೖྗऀͷෛՙ͕ߴ͍ • ฒߦͯ͠࡞ۀ͕Ͱ͖ͳ͍ͷͰ ࢪࡦ̍ͭɺ̍ͭͷઃఆʹ͕͔͔࣌ؒΔ • ͕͋ͬͨ࣌ͷϦΧόϦʔʹ͕͔͔࣌ؒΔ
ରࡦ • ։ൃ༻ͷGSSΛຊ൪༻͔Β·Δͬͱෳ • QAલͷσʔλෳγʔτʹೖྗ • QAྃޙʹຊ൪༻ͷγʔτʹೖྗࠩΛҠಈ • σϓϩΠ
·Δͬͱෳ *% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BNF "UUBD L )1 ϋϯϚ ʔ φΠϑ
·Δͬͱෳ *% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BNF "UUBD L )1 ϋϯϚ ʔ φΠϑ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BNF "UUBD L )1 ϋϯϚ ʔ φΠϑ
·Δͬͱෳ *% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BNF "UUBD )1 ϋϯϚ φΠϑ ދప ଜӍ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BNF "UUBD L )1 ϋϯϚ ʔ φΠϑ
·Δͬͱෳ *% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BNF "UUBD )1 ϋϯϚ φΠϑ ދప ଜӍ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BN "UUB )1 ϋϯ φΠ *% /BNF "UUBD )1 ϋϯϚ φΠϑ άϩʔ ϝϦέ
ղܾ
͠ͳ͔ͬͨ
• ຊ൪Խ͞Εͨσʔλ͕ະөͰ ڍಈ͕͓͔͘͠ͳΓΤϯδχΞ͕ௐࠪ͢Δ͜ͱ͕ଟൃ • ຊ൪Խ͞ΕͨσʔλΛฤूதͷγʔτ ө͢Δ࡞ۀҰۤ࿑ • मਖ਼͕Ϧόʔτͯ͠͠·͏ࣄҊ… • өʹϛε͕͋ͬͨ߹ͷϦΧόϦʔ͕େม
·Δͬͱෳ ݁Ռ
• Ϛελʔσʔλͷೖྗऀͷෛՙগ͠Լ͕ͬͨ • ෆ۩߹࣌ͷௐࠪ/ϦΧόϦʔ࡞ۀʹΑΓ όοΫΤϯυΤϯδχΞͷෛՙ૿ ·Δͬͱෳ ݁Ռ
Ͳ͏͔ͨ͠
GSSͷׂ
GSSׂ • ϕʔεͷGSS • σϓϩΠՄೳͳσʔλ͕ೖͬͨγʔτ • ։ൃ༻ͷGSS • ৽نՃ͍ͨ͠σʔλͷΈՃͨ͠γʔτ •
͜ΕΒͷ̎ͭͷγʔτΛ݁߹ͯ͠औΓࠐΉ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ *% /BNF "UUBDL )1
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ދప ଜӍ *% /BNF "UUBDL )1 άϩʔϒ ϝϦέϯ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ދప ଜӍ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ ދప ଜӍ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 άϩʔϒ ϝϦέϯ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ άϩʔϒ ϝϦέϯ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ
*% /BNF "UUBDL )1
ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ ދప ଜӍ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ *% /BNF "UUBDL )1 ϋϯϚʔ φΠϑ GSSׂ *% /BNF "UUBDL )1 ދప ଜӍ
GSSׂ ࣮ࡍͷӡ༻ • GSSׂऔΓࠐΈͷεΫϦϓτΛ༻ҙ • ※GSSࣗମʹ͜ͷ༷ͳػೳ͋Γ·ͤΜ • εΫϦϓτΛchat botܦ༝Ͱ࣮ߦͰ͖Δঢ়ଶʹ •
ϓϥϯφʔ/ϨϕϧσβΠφʔChatͰσʔλ ͷऔΓࠐΈΛߦ͏
GSSׂ ࣮ࡍͷӡ༻ #BTF ׂ
GSSׂ ࣮ࡍͷӡ༻ #BTF ׂ ฤू
GSSׂ ࣮ࡍͷӡ༻ #BTF ׂ CPUNFOUJPO
GSSׂ ࣮ࡍͷӡ༻ #BTF ׂ TDSJQUͷ࣮ߦ
GSSׂ ࣮ࡍͷӡ༻ #BTF ׂ ݁߹ͯ͠औΓࠐΈ
GSSׂ ࣮ࡍͷӡ༻ #BTF ׂ 13ͷ࡞
GSSׂ ࣮ࡍͷӡ༻
GSSׂ ࣮ࡍͷӡ༻
• Ϛελʔσʔλೖྗऀͷෛՙ͕ߴ͍ • ฒߦͯ͠࡞ۀ͕Ͱ͖ͳ͍ͷͰ ࢪࡦ̍ͭɺ̍ͭͷઃఆʹ͕͔͔࣌ؒΔ ˠ ඞཁͳγʔτΛࣗͰ࡞͢Δ͚ͩ ଞࣾͷ࡞ۀΛ΄ͱΜͲҙࣝͤͣʹ࡞ۀՄೳʹ • ͕͋ͬͨ࣌ͷϦΧόϦʔʹ͕͔͔࣌ؒΔ
ˠ ϕʔεͱͳΔγʔτΛमਖ਼͢Δ͚ͩͰOK GSSׂ ࣮ࡍͷӡ༻
• ෆ۩߹࣌ͷௐࠪ/ϦΧόϦʔ࡞ۀʹΑΓ όοΫΤϯυΤϯδχΞͷෛՙ૿ ˠ ΄ͱΜͲͷ߹Ճ͞ΕͨσʔλΛௐࠪ͢Εղܾ • chatopsͰ΄ͱΜͲΤϯδχΞͷखΛआΓͳͯ͘Մೳʹ • εϓϨουγʔτͷՃ •
σʔλͷऔΓࠐΈ • σʔλͷߋ৽ GSSׂ ࣮ࡍͷӡ༻
ͦΕଋͷؒ
৽ͨͳ՝
ෳͷ։ൃڥͷχʔζ • ฒߦͯ͠࡞ۀ͕Ͱ͖Δڥʹͳͬͨ͜ͱͰ σʔλͷߋ৽εϐʔυ͕UP • ֬ೝ༻ͷڥ͕ෳඞཁʹ
Ҏલͷ֬ೝڥ • dev01~devN ·Ͱ༻ҙ(~10) • ߋ৽/मਖ਼͍ͨ͠σʔλΛөͨ͠branchΛద༻ • ࢪࡦʹΑͬͯαʔόʔͷ࣌ؒΛมߋ͢ΔͨΊ ͬͯΔਓ͕͍ͳ͍͔֬ೝ͕ඞཁ
EFW EFW EFW EFW/ ʜ 8FC4FSWFS Ҏલͷ֬ೝڥ FYBNQMFHBNFDPN
EFW EFW EFW EFW/ ʜ 8FC4FSWFS Ҏલͷ֬ೝڥ FYBNQMFHBNFDPN HBDIB
EFW EFW EFW EFW/ ʜ 8FC4FSWFS Ҏલͷ֬ೝڥ EFWFYBNQMFHBNFDPN HBDIB
EFW EFW EFW EFW/ ʜ 8FC4FSWFS Ҏલͷ֬ೝڥ FYBNQMFHBNFDPN HBDIB pYXFBQPO
EFW EFW EFW EFW/ ʜ 8FC4FSWFS Ҏલͷ֬ೝڥ EFWFYBNQMFHBNFDPN pYXFBQPO HBDIB
Ҏલͷ֬ೝڥ A͞Μ: dev01͍ͬͯΔͻͱ͍·͔͢ʁ B͞Μ: ͍ A͞Μ: ͡Ό͋ɺdev03Ͳ͏Ͱ͔͢ʁ C͞Μ: ͬͯ·ʔ͢
Ҏલͷ֬ೝڥ • ։͍͍ͯΔڥΛ୳͢ͷ͕ຯʹखؒ • ࠷ॳ֬ೝස͕গͳ͔͕ͬͨ ঃʑʹ૿͍͑ͯͬͨ • ։ൃͰAPIͷͭͳ͗ࠐΈQAʹαʔόʔΛ ඞཁͱ͢ΔͨΊӨڹ͕େ͖͘ͳ͖ͬͯͨ
docker × mirage Λ༻ͨ͠։ൃڥͷߏங
What's docker ? • ίϯςφܕͱݴΘΕΔ ΞϓϦέʔγϣϯ࣮ߦڥ • ΠϝʔδͱݺΕΔΞϓϦέʔγϣϯͷܗ ͔ΒΞϓϦέʔγϣϯΛߴʹىಈՄೳ
˞dockerʹؔͯ͠ࠓճৄ͘͠৮Ε·ͤΜ
What's mirage ? • ήʔϜٕݚϝϯόʔ͕։ൃͨ͠ϛυϧΣΞ • subdomainͱbranch໊ΛηοτͰϦΫΤετ • ίϯςφΛىಈ͠ɺbranchใ͕ڥมͱͯ͠Δ •
ίϯςφʹ͞ΕͨbranchͰΞϓϦέʔγϣϯΛىಈ • ࢦఆͨ͠υϝΠϯ໊ͰϦΫΤετ͢Δͱ ରͷίϯςφProxy͢Δ
What's mirage ? 8FC4FSWFS
What's mirage ? 8FC4FSWFS
What's mirage ? 8FC4FSWFS NJSBHF
What's mirage ? 8FC4FSWFS NJSBHF
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯHBDIB ϒϥϯνHBDIB
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯHBDIB ϒϥϯνHBDIB
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯHBDIB ϒϥϯνHBDIB HBDIB
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯXFBQPO ϒϥϯνpYXFBQPO HBDIB
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯXFBQPO ϒϥϯνpYXFBQPO HBDIB
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯXFBQPO ϒϥϯνpYXFBQPO HBDIB pYXFBQPO
What's mirage ? 8FC4FSWFS NJSBHF HBDIB pYXFBQPO HBDIBFYBNQMFDPN
What's mirage ? 8FC4FSWFS NJSBHF HBDIB pYXFBQPO HBDIBFYBNQMFDPN
What's mirage ? 8FC4FSWFS NJSBHF HBDIB pYXFBQPO HBDIBFYBNQMFDPN
What's mirage ? 8FC4FSWFS NJSBHF HBDIB pYXFBQPO XFBQPOFYBNQMFDPN
What's mirage ? 8FC4FSWFS NJSBHF HBDIB pYXFBQPO XFBQPOFYBNQMFDPN
What's mirage ? 8FC4FSWFS NJSBHF HBDIB pYXFBQPO XFBQPOFYBNQMFDPN
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯHBDIB ϒϥϯνHBDIB HBDIB pYXFBQPO
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯHBDIB ϒϥϯνHBDIB HBDIB pYXFBQPO
What's mirage ? 8FC4FSWFS NJSBHF υϝΠϯHBDIB ϒϥϯνHBDIB HBDIB pYXFBQPO HBDIB
What's mirage ? 8FC4FSWFS NJSBHF HBDIB pYXFBQPO HBDIB HBDIBFYBNQMFDPN
docker × mirage • ֬ೝ༻ͷڥ͕ෳඞཁʹ ˠඞཁͳ࣌ʹɺඞཁͳ͚ͩڥ͕ىಈՄೳʹ ※ϚγϯϦιʔεͷ্ݶ͋Δ • ։͍͍ͯΔڥΛ୳͢ͷ͕ຯʹखؒ ˠ୭͕͍ͬͯΔ͔֬ೝ͢Δඞཁ͍Βͳ͍
ࣗͷඞཁͳڥΛඞཁͳཱ͚ͩͯΕΑ͍
docker × mirage • chat bot ʹ͢Δ͜ͱͰ ڥߏஙΤϯδχΞ͍Βͣ ※ Software
Design 20172݄߸ͷಛूͰ mirage͜ͷลͷΛॻ͍͍ͯ·͢[એ]
͜ΕͰશͯղܾʂ
͔ͱࢥ͍͖
·ͨɺ৽ͨͳ͕ • Ϛελʔσʔλͷߋ৽εϐʔυUP • ։ൃ/֬ೝڥ५ʹ • νʔϜνΣοΫQAͷ߲/ճ͕૿͑ νΣοΫ/QAͷίετ૿ʹ
ͱ͋ΔήʔϜӡ༻ͷҰ໘
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • ෳͷΞΠςϜλΠϓ͕༩Ͱ͖ΔΑ͏ͳ Ϛελʔσʔλ͕͋Γ·ͨ͠ • item_type • item_id • item_amount
• item_typeͰ Ϛωʔɺਫথɺث ༷ʑͳͷ͕ઃఆͰ͖·͢
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • item_type: 1 Ϛωʔ • item_type: 2 ਫথ •
item_type: 3 ث • ͱఆٛ͞Ε͍ͯ·͢
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • ϚωʔΛ1000͋͛Δࢪࡦ͕ܾఆ • item_type: 1 • item_id: 0 •
item_amount: 1000 • ͱઃఆ
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • ϚωʔΛ1000͋͛Δࢪࡦ͕ܾఆ • item_type: 1 • item_id: 0 •
item_amount: 1000 • ͱઃఆ͢Δͱ͜ΖΛ…
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • ޡͬͯitem_typeΛ2(ਫথ)ͱࢦఆ • ͍͠ઃఆͰͳ͍ͷͰνʔϜνΣοΫ͚ͩͰ QAνΣοΫεΩοϓ • ͳ͘ΪϑτϘοΫεʹೖ͍ͬͯΔͷΛ֬ೝ • νʔϜνΣοΫແࣄ௨ա
• ͦͷ··ɺσϓϩΠ͞Ε·ͨ͠
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • ࢪࡦ • ͳ͔ͥܝࣔ൘twitter͕૽͕͍͠ • ֬ೝͯ͠ΞϓϦΛىಈͯ͠ϝοηʔδΛ։෧͢Δͱ • ͳ͔ͥਫথ͕1000ݸ༩͞ΕΔ •
ճऩ͢Δͷ͔ɺͲ͏͢Δͷ͔… ϝϯςೖΕΔʁʁ
ා͍Ͱ͢Ͷ
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • ͳʹ͕ѱ͍ʁ • ϚελʔσʔλΛೖΕͨਓʁ • νʔϜνΣοΫΛͪΌΜͱ͠ͳ͔ͬͨ͜ͱʁ • QAʹνΣοΫͯ͠ΒΘͳ͔ͬͨ͜ͱʁ
ͱ͋ΔήʔϜӡ༻ͷҰ໘ • ͕ऩଋͨ͠ޙͰͷ࠶ൃࢭMTGʹͯ • ͔࣍ΒؾΛ͚ͭ·͢ • νʔϜνΣοΫͷ֬ೝ߲Λపఈ͠·͢ • શͯQAνʔϜʹQAͯ͠Β͏
ؓٳ
ؓٳ • ࢪࡦ͕૿͑ΔͱQAͷίετ͕૿͑Δ • ਓ͕େྔʹ͍ΕQAͰ͖Δ • QAʹ͔͚ΒΕΔίετ༗ݶ • ͔͠͠ɺQA͠ͳ͍Θ͚ʹ͍͔ͳ͍
ϚελʔσʔλͷCI
ϚελʔσʔλͷCI • CI: Continuous Integration • ܧଓతΠϯςάϨʔγϣϯ • ཁϚελʔσʔλͷࣗಈςετ
CIͬͯιʔείʔυʹ Δͷ͡Όͳ͍ͷʁ
࣮ࡍͷςετέʔεͷҰྫ • ϦϨʔγϣϯઌͷϚελʔσʔλ͕͖ͪΜͱଘࡏ͢Δ͔ • Nޙ·ͰΨνϟͷࢪࡦ͕ઃఆ͞Ε͍ͯΔ͔ • ઃఆ͞ΕͨΨνϟͱରԠ͢ΔϚΠϖʔδόφʔ͕ઃఆ͞ Ε͍ͯΔ͔ • ༩ΞΠςϜʹਫথ͕ઃఆ͞Ε͍ͯΔ߹̑ݸҎ͔
• etc
• ϦϨʔγϣϯઌͷϚελʔσʔλ͕͖ͪΜͱଘࡏ͢Δ͔ • → ͳΜ͔ಈ͔ͳ͍ΜͰ͚͢ͲΛνΣοΫ • Nޙ·ͰΨνϟͷࢪࡦ͕ઃఆ͞Ε͍ͯΔ͔ • → ظٳՋதͷΨνϟ͕
ઃఆ͞Εͯͳ͍ͳ͔ͬͨώϠϦɾϋοτͷ࠶ൃࢭ ϚελʔσʔλͷCI
• ઃఆ͞ΕͨΨνϟͱରԠ͢ΔϚΠϖʔδόφʔ͕ ઃఆ͞Ε͍ͯΔ͔ • → Ψνϟ͚ͩ/όφʔ͚ͩ ઃఆ͞Ε͍ͯͨෆ۩߹ͷ ࠶ൃࢭࡦ • ༩ΞΠςϜʹਫথ͕ઃఆ͞Ε͍ͯΔ߹̑ݸҎ͔
• → QAͰൃ֮ͨ͠ItemTypeϛεͷ࠶ൃࢭࡦ ϚελʔσʔλͷCI
ϚελʔσʔλͷCI • ࣮ࡍͷςετίʔυ
ϚελʔσʔλͷCI • ؆୯ͳͷೖྗऀ͕GSS্νΣοΫΛߦ͍ͬͯΔ • ϨϕϧσβΠφʔɺϓϥϯφʔ͔ΒͷཁΛ্͛ ͯΒ͍ςετίʔυʹө • ࢪࡦʹΑͬͯྫ֎͕ൃੜ͢ΔͷͰಛఆͷέʔεͩ ͚εΩοϓͤ͞Δ
ϚελʔσʔλͷCI • ؾΛ͚ͭͯؒҧ͏࣌ؒҧ͏ • Εͨ͜ΖʹϛεΔ • ϚελʔσʔλىҼͷϛε͕͋ͬͨ߹Մೳͳ ݶΓςετέʔεΛՃ͠࠶ൃࢭʹΊ͍ͯΔ
ϚελʔσʔλͷCI • JenkinsͰઐ༻ͷδϣϒΛઃఆ • ϚελʔσʔλͷσϓϩΠΛ͢Δͱ͖ ඞͣCI͕௨ͬͨͷΛ֬ೝͯ͠σϓϩΠ
ϚελʔσʔλͷCI • JenkinsͰઐ༻ͷδϣϒΛઃఆ • ϚελʔσʔλͷσϓϩΠΛ͢Δͱ͖ ඞͣCI͕௨ͬͨͷΛ֬ೝͯ͠σϓϩΠ
ࣗಈԽͷऔΓΈ ·ͱΊ • GSSΛׂ͢Δ͜ͱͰෳਓ͕ฒߦͰฤूՄೳʹ • chat botͰ֤ਓ͕ΤϯδχΞͷखΛआΓͣʹ & ͪ࣌ؒͳ͘σʔλͷө͕Մೳʹ •
docker×mirageΛ༻͢Δ͜ͱͰ֤ਓ͕ ࣗ༝ʹ։ൃ/֬ೝͰ͖ΔڥΛߏஙՄೳʹ • ϚελʔσʔλΛCI͢Δ͜ͱͰ҆શͳӡ༻ج൫Λߏங
None
தنνʔϜΛࢧ͑ΔࣗಈԽ ͱϊϋڞ༗ͷΈ
தنνʔϜΛࢧ͑ΔࣗಈԽ ͱϊϋڞ༗ͷΈ
ϊϋڞ༗ͷΈ • νʔϜͰͷϊϋڞ༗ͷΈ • νʔϜؒͰͷϊϋڞ༗ͷΈ
νʔϜͰͷ ϊϋڞ༗ͷΈ
νʔϑͰͷϊϋڞ༗ • Ξνʔϒϝϯτγʔτ • όοΫΤϯυ͚ • ෛՙࢼݧ • োରԠه
Ξνʔϒϝϯτγʔτ
Ξνʔϒϝϯτγʔτͱʁ • “୭”͕ɺ”Կ͕Ͱ͖Δͷ” ͔Λදʹͨ͠ͷ • ॎ࣠ʹλεΫ • ԣ࣠ʹνʔϜͷϝϯόʔ • λεΫͷଐਓੑΛແͨ͘͢ΊͷऔΓΈͷҰ
• ࣅͨΑ͏ͳͷʹ εΩϧϚοϓɺऔද ͳͲ
Ξνʔϒϝϯτγʔτͱ? • λεΫ • ॏཁ×සͰॏΈ͚͕͞Ε͍ͯΔ • ֤ϝϯόʔ͕Ͱ͖Δ/Ͱ͖ͳ͍Λೖྗ
Ξνʔϒϝϯτγʔτͱ? • λεΫ • ॏཁ×සͰॏΈ͚͕͞Ε͍ͯΔ • ֤ϝϯόʔ͕Ͱ͖Δ/Ͱ͖ͳ͍Λೖྗ
Ξνʔϒϝϯτγʔτͱ?
Ξνʔϒϝϯτγʔτͱ?
ϝϦοτ • ֤ϝϯόʔͷεΩϧͷݟ͑ΔԽ • ଐਓੑͷՄࢹԽ • λεΫͷৼΓ͚࣌ʹ୲ऀ͕ ݻఆ͠ͳ͍Α͏ׂΓৼΔ • ଘࡏ͢ΔλεΫͷݟ͑ΔԽ/Խ
ϝϦοτ • “ࣄ͕Ͱ͖Δ”ɺ”1ਓલ”ΛͰఆٛͰ͖Δ • ඪઃఆͳͲͷ “1ਓલʹͳΔ” ͳͲఆྔతʹνΣοΫͰ͖Δ
σϝϦοτ • ࠷ॳ࡞Δ͕࣌େม • γʔτΛϝϯςφϯε͍ͯ͘͠ඞཁ͕͋Δ • ݱঢ়ͷӡ༻Ͱࣗͷओ؍Ͱ͚͍ͭͯΔ ͷ͋ΔͷͰݫີͰͳ͍ • ओత͕ଐਓੑͷՄࢹԽͷͨΊࠓͷͱ͜Ζ
ʹͳ͍ͬͯͳ͍
Ξνʔϒϝϯτγʔτͷӡ༻ • ৽ػೳ͕Ճ͞ΕͨλΠϛϯά • ৽όʔδϣϯΛϦϦʔεͨ͠λΠϛϯά • ৽͍͠ਓ͕δϣΠϯͨ͠λΠϛϯά • etc •
અઅͰ֤νʔϜߋ৽Λߦ͍ͬͯΔ
ෛՙࢼݧ
ෛՙࢼݧ • όοΫΤϯυΤϯδχΞ͚ͷऔΓΈ • ຊ൪ڥͱผʹ ຊ൪ڥͱಉ༷ͷڥΛߏங • ຊ൪ಉ༷ͷϢʔβʔͷϑϩʔͰ ରͷαʔόʔʹෛՙΛ͔͚Δ
ͳͥෛՙࢼݧʁ • ৽ػೳͷϦϦʔεޙ • େܕͷྲྀೖࢪࡦͷ࣮ࢪ • etc • ٸͳΞΫηε૿ʹඋ͑Δ
ͳͥෛՙࢼݧʁ • ຊ൪ڥϦϦʔεޙ େ͖͘ڥΛม͑Δ͜ͱগͳ͍ • σϓϩΠઃఆϑΝΠϧͷมߋ͚ͩͰ શΛѲ͠ʹ͍͘ • େ͖͘มߋ͠ͳ͍ͷͰ ຊ൪ڥΛѲ͍ͯ͠Δϝϯόʔ͕ภͬͯ͠·͏
ͳͥෛՙࢼݧʁ • ෛՙࢼݧͷ४උΛ௨ͯ͠ຊ൪ڥͷશମ૾ΛѲ • ࣗͰෛՙΛ͔͚Δ͜ͱʹΑͬͯ Ϣʔβʔͷಈ࡞͕Ͳ͏Өڹ͕͋Δͷ͔Λཧղ͢Δ
ෛՙࢼݧ • ͨͩɺͲΕ͚ͩඋ͑ͯى͜Δ࣌ى͜Δ • ΠϯϑϥىҼ • ΦϖϨʔγϣϯϛε • etc…
ෛՙࢼݧ • ΧϠοΫͰো࣌جຊ ΠϯϑϥνʔϜͱόοΫΤϯυΤϯδχΞ͕୲ • োͷݪҼڀ໌/෮چ ࠷ͰͷରԠ͕ٻΊΒΕΔ • ΕΔਓ/Γ׳ΕͯΔਓ͕ରԠ͢Δࣄ͕ଟ͘ͳΔ
োରԠه
োରԠه • શ͘ಉ͡ݪҼͷোຆͲແ͍ • γϛϡϨʔγϣϯ͕͠ʹ͍͘ • ϝϯόʔ͔ΒώΞϦϯά • Ͳ͏ͬͯোରԠग़དྷΔΑ͏ʹͳͬͨͷ͔ •
োରԠ͢Δ্Ͱͳʹ͕͔Βͳ͍ͷ͔
োରԠه • Ͳ͏ͬͯোͷ͋ͨΓΛ͚͍ͯΔͷ͔ • ௐࠪ࣌ʹԿΛݟ͍ͯΔͷ͔ • ԿͷΛΈͯΔͷ͔ • ͲΜͳίϚϯυΛ͍ͬͯΔ͔ •
ͲΜͳίϚϯυΛΈ߹ΘͤͯΔ͔ • etc
োରԠه • ͲͷΑ͏ʹͯ͠োΛରԠ͔ͨ͠Λه • ͍ͭ • Կ͕ى͖ͨ • Өڹ •
Ͳ͏ͬͯݪҼΛಛఆͨ͠ • ͲͷΑ͏ʹͯ͠ରԠͨ͠
োରԠه
োରԠه • ϝϯόʔ͔ΒͷFB • ԿΛݟͯஅ͍ͯ͠Δͷ͔ཧղͰ͖ͨ • ͲͷΑ͏ͳॱংΛܦͯোͷݪҼΛಛఆ͍ͯ͠Δ ͷ͕͔ΔΑ͏ʹͳͬͨ • ਖ਼ɺΞϥʔτͷ༰͚ͩͰݪҼΛಛఆ
Ͱ͖Δಛघೳྗతͳ͕ඞཁͩͱࢥ͍ͬͯ·ͨ͠
νʔϜؒͰͷ ϊϋڞ༗ͷΈ
νʔϜؒͰͷϊϋڞ༗ • ৬ೳ͝ͱͷि࣍KPT • ͬ͘͟ΒΜձ
৬ೳ͝ͱͷि࣍KPT • िʹ̍࣌ؒ ৬ೳϦʔμˍرऀ͕ग़੮ • લिʹ͋ͬͨ͜ͱΛڞ༗ • ࠓि͋ΔΠϕϯτ/ࢪࡦͷڞ༗ • ۙ͋Δେ͖ΊͷΠϕϯτ/ࢪࡦͷڞ༗
• ෆ۩߹ͷ༰ͱରԠ༰ͷڞ༗
৬ೳ͝ͱͷि࣍KPT • ಉ͡Α͏ͳ/՝ʹ໘͢Δࣄ͕… • ंྠͷ࠶ൃ໌Λ͙ • ଞνʔϜͷܯࠂ
ͬ͘͟ΒΜձ • ि࣍KPT͚ͩͰ͕࣌ؒΓͳ͍େ͖Ίͷ τϐοΫΛ֤νʔϜͲͷΑ͏ʹ͍ͬͯΔ͔Λڞ༗ • ৽نλΠτϧ্ཱͪ͛࣌ӡ༻։࢝ޙʹ։͔ΕΔࣄ͕ଟ͍ • ֎෦αʔϏεͷ࿈ܞํ๏ • AssetBundleͷӡ༻ํ๏
• KPTͷΓํ • etc
ϊϋڞ༗ ·ͱΊ • ΞνʔϒϝϯτγʔτΛ࡞ͬͯଐਓੑͷՄࢹԽ • ଐਓੑΛແ͘͢Α͏λεΫͷׂΓৼΓ • ෛՙࢼݧͱোରԠهͰ ࣮ફͰͷܦݧ͕ੵΈͮΒ͍ࣝͷڞ༗ •
ि࣍KPTɺͬ͘͟ΒΜձΛߦ͍ νʔϜؒͰϊϋΛڞ༗
·ͱΊ • தنνʔϜͷߏ • Ϛελʔσʔλӡ༻ͷͨΊͷࣗಈԽͷΈ • νʔϜ/νʔϜؒͰͷϊϋڞ༗ͷΈ
தنνʔϜΛࢧ͑ΔࣗಈԽͱ ϊϋڞ༗ͷΈ ໘ന๏ਓΧϠοΫ ਧྒྷհ@CEDEC2017
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠
Q&A
ࢀߟURL • ΒͷߕࢠԂϙέοτ ެࣜαΠτ • https://koshien-pocket.kayac.com/ • ΩϯϚϯ Ϛοεϧγϣοτ ެࣜαΠτ
• http://muscleshot.jp/ • ΧϠοΫืू ৬छ • https://www.kayac.com/recruit/career • FINAL FANTASY Record KeeperͷϚελʔσʔλΛࢧ͑Δٕज़ • https://www.slideshare.net/dena_study/final-fantasy-record-keeper • ϞόΠϧήʔϜʹ͓͚ΔϚελʔσʔλӡ༻ࣄྫ • http://labs.gree.jp/blog/2015/12/15368/
ࢀߟURL • docker • https://www.docker.com/ • acidlemon/mirage • https://github.com/acidlemon/mirage •
DockerͰඇΤϯδχΞͰ։ൃڥΛ্͛Լ͛Ͱ͖Δɺmirageͱ͍͏πʔϧΛ࡞Γ·ͨ͠ • http://techblog.kayac.com/mirage • ιϑτΣΞσβΠϯ 2017 02 ݄߸ • https://www.amazon.co.jp/exec/obidos/ASIN/B01NBDY5L2 • ιʔείʔυҎ֎ͱʹ͔͘ςετ͢Δɻ͘͠ΧόϨοδ͚ͩͰμϝͩͱ͍͏ • http://www.songmu.jp/riji/entry/2014-12-25-test-anything.html • εΩϧϚοϓ࡞ͷ͢͢Ί • http://www.ryuzee.com/contents/blog/7065