Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
一休での開発における改善の取組み /devops-at-ikyu
Search
kentana20
April 28, 2017
Technology
13
10k
一休での開発における改善の取組み /devops-at-ikyu
4/28(金) にDevOps推進協議会 で講演したときの資料です。
kentana20
April 28, 2017
Tweet
Share
More Decks by kentana20
See All by kentana20
一休.comでの開発組織改善の取り組みとこれから /improve-ikyu-devlove-x
kensuketanaka
24
37k
株式会社一休 会社紹介資料 / introduce-ikyu
kensuketanaka
15
130k
一休.com における改善事例のご紹介 /ikyu-storage-improvement
kensuketanaka
6
11k
開発合宿@京都 /hack-camp-kyoto
kensuketanaka
0
3.9k
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
kensuketanaka
9
9k
ikyu-frontend
kensuketanaka
21
7.3k
sushi_route_2015
kensuketanaka
0
240
qiita meetup#12
kensuketanaka
4
71k
cross_2015_trave_ec
kensuketanaka
1
3.5k
Other Decks in Technology
See All in Technology
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
300
21st ACRi Webinar - Univ of Tokyo Presentation Slide (Shinya Takamaeda)
nao_sumikawa
0
120
[CMU-DB-2025FALL] Apache Fluss - A Streaming Storage for Real-Time Lakehouse
jark
0
110
LLM-Readyなデータ基盤を高速に構築するためのアジャイルデータモデリングの実例
kashira
0
210
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
170
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
1.3k
RAG/Agent開発のアップデートまとめ
taka0709
0
130
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
4.7k
学習データって増やせばいいんですか?
ftakahashi
1
140
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
210
直接メモリアクセス
koba789
0
280
なぜ使われないのか?──定量×定性で見極める本当のボトルネック
kakehashi
PRO
1
1.2k
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Practical Orchestrator
shlominoach
190
11k
It's Worth the Effort
3n
187
29k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Optimizing for Happiness
mojombo
379
70k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Agile that works and the tools we love
rasmusluckow
331
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Transcript
ҰٳͰͷ։ൃʹ͓͚Δ վળͷऔΈ 2017.4.28 גࣜձࣾҰٳ ాத ݈հ( @kentana20 )
About me • ాத ݈հ • @kentana20 • 20065݄͔ΒҰٳ •
॓ധαʔϏε։ൃ(9) →γεςϜຊ෦(2)
Agenda • Ұٳͷ͝հͱαʔϏεɺ։ൃ৫ʹ͍ͭͯ • αʔϏε։ൃʹޮ͘վળͷऔΈ • ·ͱΊ
Ұٳͷ͝հͱ αʔϏεɺ։ൃ৫ʹ͍ͭͯ
About Ұٳ.com
None
Ұٳ.com • ओྗαʔϏε • ্࣭ͳϗςϧɾཱྀؗͷ༧αʔϏε • 20005݄Φʔϓϯͷ16ࡀ
Ұٳ.com KPI (2015.03) • ձһ: 400ສ+ • ϗςϧ/ཱྀؗ: 2,600ࢪઃ+ •
ؒൢചࣨ: 189ສࣨ+
Ұٳ.comϨετϥϯ • ओྗαʔϏεͦͷ2 • ্࣭ͳϨετϥϯͷ༧αʔϏε • 20066݄Φʔϓϯ(11) • ݱࡏ࠷ྗ͍ͯ͠Δࣄۀ
͓ͱͳΓ͞·
։ൃ৫ʹ͍ͭͯ
ձࣾͷ৫ମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦
֤ࣄۀ෦ͷΤϯδχΞਓ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ 17໊ 15໊ 3໊ 14໊
αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing
αʔϏε։ൃΛ୲͢Δ ΤϯδχΞ֤ࣄۀ෦ʹॴଐ
αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing
αʔϏεڞ௨ͷ։ൃج൫ʢೝূͳͲʣɺ Πϯϑϥɺσʔλੳج൫ɺγε γεςϜຊ෦͕୲ &OHJOFFS
αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing
&OHJOFFS
Ϣχοτ1 UI/UX Ϣχοτ2 Partner Alliance Ϣχοτ3 Application Platform αʔϏε։ൃΤϯδχΞ ϛογϣϯΛ࣋ͬͨϢχοτʹॴଐ
DevͱOps ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ %FW %FW %FW 0QT
%FW
DevͱOps ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ %FW %FW %FW 0QT
%FW • ݖݶঠ͋Δͷͷɺ͔ͳΓͷݖݶΛ ։ൃΤϯδχΞʹ༩ • ຊ൪αʔόɺDBͷΞΫηε • ʑͷϦϦʔεӡ༻ etc.. • ຊʹॏཁͳ෦ͷΈΛอޢ • ݸਓใɺܾࡁɾਫ਼ࢉʹؔΘΔػೳͳͲ
ʑͷϦϦʔεӡ༻ • ݪଇͱͯ͠Pull RequestʹΑΔίʔυϨϏϡʔΛ௨ͬ ͨมߋͷΈΛϦϦʔε • σϓϩΠ։ൃऀ(Dev)͕ߦ͏ • σϓϩΠස •
॓ധ: 1ճ/ • Ϩετϥϯ: 10+ճ/
ࠓͷ͓ • ͲͷΑ͏ͳมભ/มԽΛܦͯ͜ͷΑ͏ͳ։ൃମ੍ʹ ͳ͔ͬͨ • Ұٳʹ͓͚ΔαʔϏε։ൃʹޮ͘վળͷࣄྫ • ࠓޙ༧ఆ͍ͯ͠ΔऔΈ
։ൃ৫ͷมભͱ αʔϏε։ൃʹޮ͘վળͷࣄྫ
2014 (2014/4~2015/3)
࣌ͷঢ়گ • ձࣾن • ձࣾن120໊ɺ͏ͪ։ൃϝϯόʔ40໊ऑ • ։ൃ৫ • ॓ധ: 20໊ऑ
/ Ϩετϥϯ: 12~3໊ / Πϯϑϥ: 5໊ • ֤෦Ͱύʔτφʔ(֎)Λ࠾༻͠ɺϓϩύʔ1໊ʹରͯ͠ৗறͷ ύʔτφʔ2~3໊ͱ͍͏ମ੍͕ओͩͬͨ
๊͍࣌͑ͯͨ՝ • ϢʔβՁΛఏڙ͢Δεϐʔυ͕Լ͍ͯͨ͠ • ࣭Լ / ։ൃޮԼ / ӡ༻ෛՙ /
ݖݶঠ • αʔϏε։ൃ/ӡ༻ʹΘΕΔʑͰɺࣗಈԽΛ͡Ίͱͨ͠ӡ༻վળ ৽͍ٕ͠ज़ɾαʔϏεͷಋೖ͕͍͔ͭͳ͍ • ӡ༻ෛՙ͕ঃʑʹ্͕Γɺஈʑͱ։ൃ͕Լ • ϓϩύʔΑΓύʔτφʔʹ։ൃφϨοδ͕ཷ·Γɺٕज़͕ۭಎԽ • DevͱOpsͷݖݶঠ͕ਐΈʮDev͕Ͱ͖ͳ͍͜ͱʯ͕૿Ճ
https://speakerdeck.com/kensuketanaka/modannaxian-chang-nisurutamenishi-jian-sitakoto
վળϓϩδΣΫτΛελʔτ • @naoya_ito ʹٕज़ސͱͯ͠֎෦͔ΒͷΞυόΠεΛґཔ • త: ʮϢʔβʹՁΛಧ͚ΔεϐʔυΛ࠷େԽ͢Δʯ • ՝ཧΛߦ͍ɺࣗͷݱঢ়ͱࢦ͢ܗɺվળʹ͚ͨΞΫγϣϯΛ ఆٛͯ͠શΤϯδχΞΛר͖ࠐΜͰϓϩδΣΫτΛ։࢝
None
վળͷऔΈ(2014) • ใڞ༗ج൫ͷඋ • Subversion → GitHub EnterpriseͷҠߦ • JenkinsΛͬͨCI/CDಋೖ
• Selenium WebDriverΛͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
վળͷऔΈ(2014) • ใڞ༗ج൫ͷඋ • Subversion → GitHub EnterpriseͷҠߦ • JenkinsΛͬͨCI/CDಋೖ
• Selenium WebDriverΛͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
ใڞ༗ج൫(Before) • πʔϧ • ϝʔϧɺઢɺRedmine • Έ • γεςϜि࣍ϛʔςΟϯά
• πʔϧ • ϝʔϧɺઢɺRedmine • Έ • γεςϜि࣍ϛʔςΟϯά • ݸʑͷҙࣝʹґଘͨ͠ใڞ༗
• ॓ധɺϨετϥϯɺΠϯϑϥͱίϯςΩετ͕ ҟͳΔϝϯόʔͰͷதͷബ͍ϛʔςΟϯά • ਐߦதͷҊ݅ϓϩδΣΫτͷ;Γ͔͑ΓͳͲ ΛΧδϡΞϧʹڞ༗͢Δ͕ͳ͍ Bad
ใڞ༗ج൫(After) • πʔϧ • Hipchat (ݱࡏSlack) / Qiita Team •
Έ • ேձ / Χϯόϯ / ;Γ͔͑Γ(KPT) • ΨΠυϥΠϯ • ֤πʔϧΈʹରͯ͠ΨΠυϥΠϯΛඋ
ใڞ༗ج൫(After) • πʔϧ • Hipchat (ݱࡏSlack) / Qiita Team •
Έ • ேձ / Χϯόϯ / ;Γ͔͑Γ(KPT) • ΨΠυϥΠϯ • ֤πʔϧΈʹରͯ͠ΨΠυϥΠϯΛඋ • ✔ ΨΠυϥΠϯʹԊ༷ͬͨͷڞ༗ • ✔ ίϯςΩετ͕ἧͬͨνʔϜຖʹேձΛ࣮ࢪ ͠ɺ༰ਂٞ͘Ͱ͖ΔΑ͏ʹ • ✔ Qiita TeamʹΑͬͯҊ༷݅ͷڞ༗͕Χδϡ ΞϧʹՄೳʹ Clear!
վળͷऔΈ(2014) • ใڞ༗ج൫ͷඋ • Subversion → GitHub EnterpriseͷҠߦ • JenkinsΛͬͨCI/CDಋೖ
• Selenium WebDriverΛͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ • దͳλΠϛϯάͰͷϨϏϡʔ͕ࠔ • σϓϩΠ࡞ۀɺखಈςετͷෛՙେ • ӡ༻ෛՙ͕ߴ͍͜ͱΛཧ༝ʹϦϦʔεස ि2ճ͔Β1ճ Bad
σϓϩΠϑϩʔͷඋ • GitHubɺJenkinsɺSeleniumΛͬͯσϓϩΠϑϩʔΛߏங • GitHubΛಋೖͯ͠ϓϧϦΫΤετϕʔεͷ։ൃ • masterϒϥϯνʹmergeͨ͠ΒࣗಈతʹJenkinsδϣϒ͕Staging ڥσϓϩΠ • StagingͷσϓϩΠSeleniumʹΑΔE2EςετΛ࣮ࢪ
σϓϩΠϑϩʔ(After) ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63-
8FC)PPL %FQMPZ σϓϩΠ୲ Production %FQMPZ खಈ
ϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ • ✔ Pull Requestϕʔεͷ։ൃͰॊೈʹϨϏϡʔ Մೳͳ։ൃϑϩʔ • ✔ ఆܕͷσϓϩΠɺςετࣗಈԽ • ✔ ϦϦʔεසि1ճ → ि2ճʹUp Clear!
2015 (2015/4~2016/3)
࣌ͷঢ়گ(2015) • ։ൃ৫ͷมԽ • ͯ͢ͷϢχοτͰαʔϏε։ൃΛ͢Δܗ͔Βɺ։ൃج൫උΛϝΠϯʹ࣮ ࢪ͢ΔνʔϜͱαʔϏε։ൃΛϝΠϯʹ͢ΔνʔϜͷׂ୲͕ঃʑʹਐߦ • ٕज़໘Ͱͷվળ • 2014ͷվળͰGitHubΛͬͨ։ൃϑϩʔɺܧଓతσϦόϦʔͳͲ։ൃ
ͷճΓͱͳΔΈ͍͍͍ͩͨͬͯͨ • ϓϩδΣΫτ։࢝ॳʹཱͯͨΞΫγϣϯΛ୨Է͠ɺ౮ͨ͠վળͷՐΛઈ ͞ͳ͍Α͏ʹܧଓ࣮ࢪ
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
ϦϦʔεલͷσϞɾϨϏϡʔ ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϨϏϡʔ σϞ ϦϦʔε ϩʔΧϧ
ڥ Engineer Marketing / CustomerService ର໘ͰϩʔΧϧڥΛͬͯ σϞɺϨϏϡʔ
ϦϦʔεલͷσϞɾϨϏϡʔ ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϨϏϡʔ σϞ ϦϦʔε ϩʔΧϧ
ڥ Engineer Marketing / CustomerService ର໘ͰϩʔΧϧڥΛͬͯ σϞɺϨϏϡʔ • ର໘ͰͷϨϏϡʔɾσϞ • ඇಉظʹΓͱΓͰ͖ͳ͍ • ϩʔΧϧڥͷ৴པੑ • ςετ༻ͷࢿࡐ͕͍ͬͯͨΓɺίϛοτ࿙ΕΛ ݕͰ͖ͳ͍ • ΤϯδχΞಉ࢜ͷίʔυϨϏϡʔ • ϨϏϡΞʔ͕ϩʔΧϧͰରͷϒϥϯνΛ Checkout(ϨϏϡʔෛՙߴ͍) Bad
ϒϥϯνσϓϩΠ(σϞ༻ڥ)
ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ։ൃதͷϒϥϯνΛࢦఆͯ͠ผڥʹσϓϩΠͰ͖Δπʔϧ • ༻్ • ίʔυϨϏϡʔ࣌ͷಈ࡞֬ೝڥͱͯ͠ • Marketing, CustomerService͚ͷσϞ༻ڥͱͯ͠
• RemotepushࡁͷࢿࡐΛͬͯڥΛߏங͢ΔͷͰίϛοτ࿙Εͷ ϦεΫͳ͘ͳΔ
ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ։ൃதͷϒϥϯνΛࢦఆͯ͠ผڥʹσϓϩΠͰ͖Δπʔϧ • ༻్ • ίʔυϨϏϡʔ࣌ͷಈ࡞֬ೝڥͱͯ͠ • Marketing, CustomerService͚ͷσϞ༻ڥͱͯ͠
• RemotepushࡁͷࢿࡐΛͬͯڥΛߏங͢ΔͷͰίϛοτ࿙Εͷ ϦεΫͳ͘ͳΔ • ✔ ඇಉظͰσϞɺಈ࡞֬ೝ͕Մೳʹ • ✔ ϩʔΧϧڥΛΘͣʹσϞ͕Ͱ͖Δ • ✔ ϨϏϡΞʔͷෛՙܰݮ Clear!
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
ຊ൪૬DB • લͷຊ൪σʔλϕʔεΛϦετΞ&ݸਓใΛϚεΫͨ͠ͷ • ઃஔͷҙਤɾత • ຊ൪ʹΑΓ͍ۙσʔλͰ։ൃ͢Δ • ϢʔβͱಉͷମݧΛಘΔ
ݕࡧ݁Ռ(ຊ൪) ݕࡧ݁Ռ(ຊ൪)
ݕࡧ݁Ռ(ຊ൪) ݕࡧ݁Ռ(ຊ൪૬DB)
ݕࡧ݁Ռ(ςετ༻DB)
https://signalvnoise.com/posts/3251-running-beta-in-production
http://techlife.cookpad.com/entry/2014/10/03/110806
։ൃʹ͔ܽͤͳ͍ଘࡏ • ϒϥϯνσϓϩΠͱຊ൪૬DBΛΈ߹ΘͤΔ͜ͱͰຊ൪ʹݶΓͳ͘ ͍ۙڥͰσϞɺϨϏϡʔ͕Մೳʹ • ͍··Ͱؾ͚ͮͳ͔ͬͨ͜ͱ͕ؾ͚ͮΔΑ͏ʹͳͬͨ • ex. จࣈྻͷ͞ʹΑΔંΓฦ͠ɺύϑΥʔϚϯε •
ϦϦʔεޙͷखΓɺ༷มߋ͕ݮগ
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢!
࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢! • Dev • ΞϓϦέʔγϣϯͷҟৗΛݕ͢ΔΈ͕ෆे
• αʔϏε͕݈߁Λҡ͍࣋ͯ͠Δͷ͔ɺͲ͔͜ҟৗ͕͋Δ ͷ͔ΛѲͰ͖͍ͯͳ͍ • Ops • ΞΫηεɺෛՙঢ়گͷϞχλϦϯά͕ेʹͰ͖͍ͯͳ ͍ Bad
ϩάϞχλϦϯάڧԽ • nxLog , Fluentdܦ༝ͰΞΫηεϩάɺΞϓϦέʔγϣϯϩάΛ elasticsearchʹೖΕͯkibanaͰՄࢹԽ • fluentdͰΤϥʔ༰ΛϦΞϧλΠϜʹSlackʹ௨
kibana
kibana
https://speakerdeck.com/shoichiron/roguhuan-jing-todevops-xiu-dot-comdefalseshi-li
࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢! • Dev • ✔
ΞϓϦέʔγϣϯͷҟৗΛϦΞϧλΠϜʹݕՄೳʹ • Ops • ✔ αʔϏεʹඞཁͳϝτϦΫεΛμογϡϘʔυʹ·ͱΊ ͯϞχλʹӨ Clear!
2016 (2016/4~2017/3)
࣌ͷঢ়گ(2016) • ։ൃ৫ͷมԽ • νʔϜຖͷׂ(ϛογϣϯ)͕ΑΓ໌֬Խ • ॓ധ: UI/UXɺύʔτφʔΞϥΠΞϯεɺٕज़ϓϥοτϑΥʔϜ • Ϩετϥϯ:
UI/UXɺΞϓϦɺϏδωεϑΝϯσʔγϣϯ • ٕज़໘Ͱͷվળ • ΫϥυҠߦʹ͚ͯେ͖͘ΛͬͯXaaSΛϑϧ׆༻
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
Infrastructure as Code • DNSઃఆͷίʔυཧɺσϓϩΠࣗಈԽ
Infrastructure as Code • γεςϜߏΛTerraformͰίʔυཧ
Infrastructure as Code • ͲͪΒCircle CIͰσϓϩΠ·Ͱ࣮ࢪ • ❌ ϚωδϝϯτίϯιʔϧͰखಈૢ࡞ •
⭕ ߏΛίʔυͰཧͯ͠มߋCIͰ࣮ࢪ
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
σʔλੳج൫(Before) • ETLॲཧ(جװσʔλϕʔεGoogleAnalytics͔ΒੳʹඞཁͳσʔλΛந ग़ →ੳ༻σʔλϕʔεߏங) • ߋ৽ස: 1ճ/ • σʔλ:
2Ε • खಈ࡞ۀଟ͘ɺߋ৽࡞ۀʹޕલத͍ͬͺ͍͔͔Δ • ੳϨϙʔτ • Excelϕʔε͕ओ
σʔλੳج൫(Before) • ETLॲཧ(جװσʔλϕʔεGoogleAnalytics͔ΒੳʹඞཁͳσʔλΛந ग़ →ੳ༻σʔλϕʔεߏங) • ߋ৽ස: 1ճ/ • σʔλ:
2Ε • खಈ࡞ۀଟ͘ɺߋ৽࡞ۀʹޕલத͍ͬͺ͍͔͔Δ • ੳϨϙʔτ • Excelϕʔε͕ओ • खಈ࡞ۀ͕ଟ͘ɺࣗಈԽ͍ͯ͠Δ෦ͨ·ʹ ࣦഊ͢Δ • ࢪࡦ࣮ࢪޕޙҎ߱ • ExcelͰՄࢹԽ Bad
ߋ৽ॲཧΛࣗಈԽ
ՄࢹԽ • Re:dash • ΦʔϓϯιʔεͷσʔλՄࢹԽϓϥοτϑΥʔϜ • MySQL, BigQuery, Redshift, ElasticsearchͳͲΛσʔλιʔεʹ
ͯ͠ΫΤϦͷ࣮ߦ݁ՌΛՄࢹԽͰ͖Δ
Re:dash
ܒ
ܒ • σʔλͷஔ͖ɺՄࢹԽͷํ๏ΛΦʔϓϯʹ͠ ͯ୭Ͱσʔλநग़͕ߦ͑ΔΑ͏ʹ • ❌ XX ͞Μʹґཔͯ͠σʔλΛग़͢ • ⭕
σʔλΛݟ͍ͨਓ͕ࣗͰͭ͘Δ • ⭕ ࡞ͬͨσʔλURL(Re:dash)Ͱڞ༗ σʔλΛຽओԽ
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
CTOϨϏϡʔ • ֤νʔϜ͕࣮ࢪ͍ͯ͠Δٕज़՝ͷऔΈΛCTOʹนଧͪ͢Δձ • ٕज़՝ͷੳɺղফ͚ͨΞϓϩʔνɺਐḿঢ়گΛڞ༗͠ͳ ͕ΒϨϏϡʔΛ࣮ࢪ
Ռൃදձ • ֤νʔϜ͕औΓΜͩϓϩδΣΫτͷՌΛൃද͢Δձ • ࠒऔΓΜͰ͍Δۀ͕ͲΜͳՌʹͭͳ͕ͬͨͷ͔ɺಋೖͨ͠ ৽͍ٕ͠ज़/ػೳ͕ͲΜͳΈͰಈ͍͍ͯΔ͔ • ϓϨθϯࢿྉʹ·ͱΊͯετοΫ͓ͯ͘͜͠ͱͰɺ৽͍͠ϝϯόʔ ͕ೖͬͨͱ͖ʹܦҢؚΊͯݱঢ়ͷཧղΛਂΊΔ͜ͱظ
Ռൃදձ
http://techlife.cookpad.com/entry/2016/09/16/192927
ݱࡏͷঢ়گͱ ࠓޙ༧ఆ͍ͯ͠ΔऔΈ
ݱࡏͷঢ়گ • ։ൃ৫ͷมԽ • ֤αʔϏεɺKPIͷऀʹΤϯδχΞɺσβΠφʔΛूΊͯ ʮతܕͷ৫ʯʹҠߦ • νʔϜ͝ͱͷΛΑΓ໌֬ʹ • ٕज़໘Ͱͷվળ
• ΫϥυԽɺXaaSಋೖʹΑͬͯվળ͕ਐΈɺϨΨγʔίʔυγεςϜΞʔΩ ςΫνϟͳͲγεςϜຊջ෦ͷ՝ʹ͔͑Δঢ়گʹ • αʔϏε/ϓϩμΫτͷ՝ʹԊͬͨՕॴͰͷվળϑΥʔΧε
վળͷऔΈ(ݱࡏ) • ֤αʔϏεઐଐͷΠϯϑϥϝϯόʔ(SRE) • γεςϜΞʔΩςΫνϟͷ৽ • CRMࢪࡦڧԽʹ͚ͨߦಈϩάج൫ͷඋ • ϑϩϯτΤϯυ։ൃج൫ͷ࠶ઃܭ
·ͱΊ
·ͱΊ • ׂܖܗଶͷִͨΓ͕ബ͘ͳͬͨ • ։ൃ৫ͷมԽͱٕज़໘ͰͷվળΛܧଓͨ݁͠Ռɺʮ։ൃ(Dev)ͱӡ༻(Ops)ʯ ʮϓϩύʔͱύʔτφʔʯͱ͍͚͕ͬͨ۠ബ͘ͳͬͨ • վળܧଓతʹ • ҰඈͼͰΖ͏ͱͯ͠Ռʹͭͳ͕Βͳ͍ͷͰಓʹίπίπ
• 1ਓͰΔͷͰͳ͘ɺ֤ϝϯόʔ͕ಘҙͳ͜ͱΛΔ • αʔϏε/ϓϩμΫτͷՌʹͭͳ͕Δ͔͕࠷ॏཁ • ٕज़తʹਖ਼ͯ͘͠ఏڙ͢ΔαʔϏεʹޮ͔ͳ͚ΕՌͱͯ͠ෆे
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠