$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
Search
kentana20
April 21, 2016
Technology
9
9k
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
サイボウズ✕一休合同勉強会での発表資料です
kentana20
April 21, 2016
Tweet
Share
More Decks by kentana20
See All by kentana20
一休.comでの開発組織改善の取り組みとこれから /improve-ikyu-devlove-x
kensuketanaka
24
37k
株式会社一休 会社紹介資料 / introduce-ikyu
kensuketanaka
15
130k
一休での開発における改善の取組み /devops-at-ikyu
kensuketanaka
13
10k
一休.com における改善事例のご紹介 /ikyu-storage-improvement
kensuketanaka
6
11k
開発合宿@京都 /hack-camp-kyoto
kensuketanaka
0
4k
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
20251209_WAKECareer_生成AIを活用した設計・開発プロセス
syobochim
7
1.6k
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
300
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
1
200
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
360
チーリンについて
hirotomotaguchi
6
2k
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
290
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
150
Kiro Autonomous AgentとKiro Powers の紹介 / kiro-autonomous-agent-and-powers
tomoki10
0
520
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
510
ChatGPTで論⽂は読めるのか
spatial_ai_network
9
29k
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
170
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Being A Developer After 40
akosma
91
590k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Visualization
eitanlees
150
16k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Writing Fast Ruby
sferik
630
62k
Designing for humans not robots
tammielis
254
26k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Transcript
Ұٳ.com ʹ͓͚Δ σϓϩΠϑϩʔͱࣗಈԽ ʙαΠϘζ✕Ұٳ ߹ಉษڧձʙ Kensuke Tanaka (@kentana20)
About me • ాத ݈հ • @kentana20 • 20065݄͔ΒҰٳ •
॓ധαʔϏε։ൃ(9) →γεςϜຊ෦(1)
Agenda • Ұٳ.com & ࠾༻ٕज़ / Tools • σϓϩΠϑϩʔͷੲͱࠓ •
ͦͷଞͷࣗಈԽࣄྫ • ՝ͱ͜Ε͔Β
About Ұٳ.com ࠾༻ٕज़ / Tools
About Ұٳ.com
None
Ұٳ.com • ओྗαʔϏε • ্࣭ͳϗςϧɾཱྀؗͷ༧αʔϏε • 20005݄Φʔϓϯͷ15ࡀ
Ұٳ.com KPI (2015.03) • ձһ: 400ສ+ • ϗςϧ/ཱྀؗ: 2,600ࢪઃ+ •
ؒൢചࣨ: 189ສࣨ+
͓ͱͳΓ͞·
࠾༻ٕज़ / Tools
࠾༻ٕज़ / Tools • ASP.NET WebForms/MVC (VB/C#) • IIS, SQLServer,
Solr • Sass, Compass • GitHub Enterprise • nxlog, Fluentd, Elasticsearch, Google Big Query • Jenkins, Selenium WebDriver • NewRelic, Kibana, Bugsnag • Redmine, Trello, Slack, Hubot
σϓϩΠϑϩʔͷੲͱࠓ
ੲ
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ
ੲ (~2014) • VCSSubversion • Tag࡞ʙStaging/ProductionͷσϓϩΠखಈ • σϓϩΠޙͷओಋઢςετͪΖΜखಈ
ੲ (~2014) • VCSSubversion • Tag࡞ʙStaging/ProductionͷσϓϩΠखಈ • σϓϩΠޙͷओಋઢςετͪΖΜखಈ • ӡ༻ෛՙେ
• ϦϦʔεසԼ(ि1ճ)
ੲ (~2014) • VCSSubversion • Tag࡞ʙStaging/ProductionͷσϓϩΠखಈ • σϓϩΠޙͷओಋઢςετͪΖΜखಈ ࣗಈԽͩ
গ͠ੲ (~20159݄) • VCSGitHub Enterpriseʹมߋ • CI(Jenkins)ͰStagingͷσϓϩΠࣗಈ • σϓϩΠޙͷओಋઢςετSeleniumͰࣗಈ •
ຊ൪ͷϦϦʔεि2ճʹ
None
গ͠ੲͷσϓϩΠϑϩʔ ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63-
8FC)PPL %FQMPZ σϓϩΠ୲ Production %FQMPZ खಈ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ վળ͞Ε͖ͯͨ
࣌ͷ՝ • ຊ൪ϦϦʔεʹབྷΉ࡞ۀखಈ͕ओ • ࢮ׆ࢹͷOn/Off • ϑΝΠϧಉظͷOn/Off • ϩʔυόϥϯαͰͷϊʔυΓ͠/෮ؼ etc..
• masterͷmergeʹ͋·Γҙຯ͕ͳ͔ͬͨ • StagingࢿࡐΛͬͯຊ൪ϦϦʔε • σϓϩΠʹؔ࿈͢Δ࡞ۀઐ୲͕࣮ࢪ
࣌ͷ՝ • ຊ൪ϦϦʔεʹབྷΉ࡞ۀखಈ͕ओ • ࢮ׆ࢹͷOn/Off • ϑΝΠϧಉظͷOn/Off • ϩʔυόϥϯαͰͷϊʔυΓ͠/෮ؼ etc..
• masterͷmergeʹ͋·Γҙຯ͕ͳ͔ͬͨ • StagingࢿࡐΛͬͯຊ൪ϦϦʔε • σϓϩΠʹؔ࿈͢Δ࡞ۀઐ୲͕࣮ࢪ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ masterͷmergeͰ ԿͷΠϕϯτൃੜ͠ͳ͍
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ releasemergeͯ͠ॳΊͯ StagingͷσϓϩΠ͕࣮ߦ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ ͳΜ͔͓͔͍͠
՝ͷݪҼ(༧ଌ) • master mergeʹىҼͯ͠ԿͷΠϕϯτൃੜ͠ͳ͍ • master mergeͷۓுײ͕Լ • release mergeޙͷStagingͰෆ۩߹͕Ұఆׂ߹Ͱ
ൃੜ͢Δࣄ͕ܧଓ
՝ͷݪҼ(༧ଌ) • master mergeʹىҼͯ͠ԿͷΠϕϯτൃੜ͠ͳ͍ • master mergeͷۓுײ͕Լ • release mergeޙͷStagingͰෆ۩߹͕Ұఆׂ߹Ͱ
ൃੜ͢Δࣄ͕ܧଓ master mergeͰଈStaging ʹσϓϩΠͰ͖ΕΑ͍
վળޙͷϒϥϯνઓུ(ݱࡏ) NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production
࣌ͷ՝ • ຊ൪ϦϦʔεʹབྷΉ࡞ۀखಈ͕ओ • ࢮ׆ࢹͷOn/Off • ϑΝΠϧಉظͷOn/Off • ϩʔυόϥϯαͰͷϊʔυΓ͠/෮ؼ etc..
• masterͷmergeʹ͋·Γҙຯ͕ͳ͔ͬͨ • StagingࢿࡐΛͬͯຊ൪ϦϦʔε • σϓϩΠʹؔ࿈͢Δ࡞ۀઐ୲͕࣮ࢪ
ຊ൪σϓϩΠखಈ ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63-
8FC)PPL %FQMPZ σϓϩΠ୲ Production %FQMPZ खಈ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ#
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓAͷ ΞΫηεΛःஅ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓAͷ ΞΫηεΛःஅ ৽ࢿࡐΛσϓϩΠ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓBͷ ΞΫηεΛःஅ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓBͷ ΞΫηεΛःஅ ৽ࢿࡐΛσϓϩΠ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
৽ࢿࡐΛσϓϩΠ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ#
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ݴ͏·Ͱͳ͘
πϥ͍
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϢʔβʹՁΛఏڙ͢Δ
εϐʔυΛ্͛ΔͨΊʹ ຊ൪σϓϩΠࣗಈԽ
վળޙͷσϓϩΠϑϩʔ(ݱࡏ) ϓϧϦΫmerge (खಈ) ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63- 8FC)PPL
%FQMPZ σϓϩΠ୲ Production
SlackͰϦϦʔε༻ϓϧϦΫ࡞
ϦϦʔε༻ϓϧϦΫ
ݱࡏ (201510݄~) • ProductionͷσϓϩΠࣗಈʹ • master mergeޙɺStagingσϓϩΠ • release mergeޙɺProductionσϓϩΠ
• ϦϦʔε݄ʙͷि4ճʹ • ϦϦʔεӡ༻ସΘΓͰ։ൃऀ͕࣮ࢪ
ݱࡏ (201510݄~) • ProductionͷσϓϩΠࣗಈʹ • master mergeޙɺStagingσϓϩΠ • release mergeޙɺProductionσϓϩΠ
• ϦϦʔε݄ʙͷि4ճʹ • ϦϦʔεӡ༻ସΘΓͰ։ൃऀ͕࣮ࢪ ͍ͩͿΑ͘ͳ͖ͬͯ·ͨ͠
ͦͷଞͷࣗಈԽࣄྫ
։ൃڥͷࣗಈԽ
None
։ൃڥͷηοτΞοϓࣗಈԽ • ϨϙδτϦͷClone • ֤छϛυϧΣΞͷΠϯετʔϧɺઃఆ • ڥมɺϨδετϦɺACLͷઃఆ • ॳճϏϧυˍϩʔΧϧαʔόىಈ
ϒϥϯνσϓϩΠ
None
։ൃ༻ϒϥϯνΛखܰʹσϓϩΠ • ίʔυϨϏϡʔʹఴ͑Δ • master mergeલʹϚʔέɺΧελϚʔαϙʔτʹ ඇಉظʹσϞ
ChatOps
ChatOps • ίʔυϨϏϡʔ / αϙʔτͷࣗಈΞαΠϯ • ேձ௨ • ఆظϛʔςΟϯά༻ΤϯτϦ࡞ •
ि࣍൪
ίʔυϨϏϡʔ / αϙʔτͷΞαΠϯ
ఆظϛʔςΟϯά༻ΤϯτϦ
ि࣍൪
ৄࡉBlogͰ “ChatOps” Ͱ άάΕग़͖ͯ·͢
՝ͱ͜Ε͔Β
CIଐਓԽ
CIଐਓԽ • Jenkinsͷׂ͕ঃʑʹ૿Ճ • Staging / ProductionͷϏϧυɾσϓϩΠ • E2E •
ϒϥϯνσϓϩΠ
Jenkinsδϣϒଟա͗
CIଐਓԽ • ։ൃऀࣗͷۀʹؔ࿈͢Δδϣϒ͕ѲͰ͖ͳ͍ • ΈࠐΜͩຊਓ͔͠δϣϒνΣʔϯͱׂ͕ѲͰ͖ ͣɺJenkins͓͡͞ΜԽݱ͕ൃੜ
CIଐਓԽ • ղফʹ͚ͯ • αʔϏεͷϨϙδτϦͰCIδϣϒΛίʔυཧ Ͱ͖ΔCIܥSaaSͷҠߦΛܭըத
ϨϙδτϦσΧ͗͢
ϨϙδτϦσΧ͗͢ • σβΠϯࢿࡐͯ͢Gitཧ • σβΠφʔͱσϓϩΠϑϩʔΛἧ͑ΔͨΊʹ࣮ࢪ • ϨϙδτϦαΠζ͕1.5Ͱ4ഒʹ • clone /
fetch / pull ͳͲͷૢ࡞ͰλΠϜΞτ ൃੜ
ϨϙδτϦσΧ͗͢ • Ұ෦ͷσβΠϯࢿࡐΛGitཧ͠ͳ͍ํͰݕ౼த • ੩తϖʔδͷը૾ϑΝΠϧ etc • σβΠφʔͷϫʔΫϑϩʔʹӨڹΛ༩͑ա͗ͳ͍ Α͏ʹܭըத
·ͱΊɾॴײ
·ͱΊɾॴײ(ࣗռ) • ࣗಈԽ͚ͩͰಓ • ࣗಈԽʴใڞ༗ʹܗࣜ • ʑͷ։ൃͷճΓڧԽΑ͍αʔϏεΛͭ͘Δ ͨΊʹෆՄܽ • ࣗಈԽޙ՝ग़ଓ͚Δɻܧଓ͢Δ͜ͱ͕େࣄ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠