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
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
72k
cross_2015_trave_ec
kensuketanaka
1
3.5k
Other Decks in Technology
See All in Technology
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
190
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
1
100
Red Hat OpenStack Services on OpenShift
tamemiya
0
120
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
320
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
140
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
630
Webhook best practices for rock solid and resilient deployments
glaforge
2
300
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
180
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
260
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
320
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to train your dragon (web standard)
notwaldorf
97
6.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
150
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Curse of the Amulet
leimatthew05
1
8.7k
HDC tutorial
michielstock
1
390
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 • σβΠφʔͷϫʔΫϑϩʔʹӨڹΛ༩͑ա͗ͳ͍ Α͏ʹܭըத
·ͱΊɾॴײ
·ͱΊɾॴײ(ࣗռ) • ࣗಈԽ͚ͩͰಓ • ࣗಈԽʴใڞ༗ʹܗࣜ • ʑͷ։ൃͷճΓڧԽΑ͍αʔϏεΛͭ͘Δ ͨΊʹෆՄܽ • ࣗಈԽޙ՝ग़ଓ͚Δɻܧଓ͢Δ͜ͱ͕େࣄ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠