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
積極的なソフトウェア構成管理の活用方法
Search
長沢 智治 - NAGASAWA, Tomoharu
December 22, 2015
Technology
0
570
積極的なソフトウェア構成管理の活用方法
SQiP にて実施したソフトウェア構成管理入門の資料です
長沢 智治 - NAGASAWA, Tomoharu
December 22, 2015
Tweet
Share
More Decks by 長沢 智治 - NAGASAWA, Tomoharu
See All by 長沢 智治 - NAGASAWA, Tomoharu
2つのモードで学ぶ辛くないスクラム #RSGT2021
tnagasawa
1
16k
「正解のない時代」のチームワーク
tnagasawa
0
510
アジャイルとDevOps - はじめる前に
tnagasawa
1
980
Going Agile with Tools - #RSGT2020
tnagasawa
1
13k
We got regarding DevOps so far - だいたいわかる DevOps
tnagasawa
1
420
プロジェクト管理とツール #JBUG 岡山2
tnagasawa
1
850
できるだけシンプルにしたいプロジェクトマネジメント
tnagasawa
2
4.4k
あなたの推しテクをもっと伝えるプレゼンテーション術 #AWSDevDay
tnagasawa
8
13k
現場にあった プロジェクトマネジメントを探求する ウォーターフォール or アジャイル
tnagasawa
8
4.8k
Other Decks in Technology
See All in Technology
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
270
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
180
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
230
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
230
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
260
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
850
生成AIのガバナンスの全体像と現実解
fnifni
1
190
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
200
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The Invisible Side of Design
smashingmag
298
50k
Six Lessons from altMBA
skipperchong
27
3.5k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Agile that works and the tools we love
rasmusluckow
328
21k
Statistics for Hackers
jakevdp
796
220k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
What's in a price? How to price your products and services
michaelherold
243
12k
Transcript
ੵۃతͳιϑτΣΞߏཧ ͷ׆༻ํ๏ ஐ࣏ ΞτϥγΞϯגࣜձࣾγχΞΤόϯδΣϦετ ɹ @tnagasawaɹɹɹɹre-workstyle.com ιϑτΣΞߏཧͷաڈɾݱࡏ
1996 ΠϯςοΫ ιϑτΣΞΤϯδχΞ 2000 3BUJPOBM4PGUXBSF ϓϩηεվળίϯαϧλϯτ 2003 ຊΞΠɾϏʔɾΤϜ ϓϩηεվળίϯαϧλϯτ 2005
#PSMBOE4PGUXBSF ϓϩηεվળίϯαϧλϯτ ιϦϡʔγϣϯΞʔΩςΫτ 2007 .JDSPTPGU ΤόϯδΣϦετ ϓϩμΫτϚωʔδϟ 2014 γχΞΤόϯδΣϦετ ༁ڞஶॻଟ ϓϨθϯςʔγϣϯڠྗ Speaker
Agenda ֓ཁ Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
Agenda ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
ڱٛͱٛ ιϑτΣΞߏཧ 1-1
ڱٛͱٛ ιϑτΣΞߏཧ ιϑτΣΞͷมߋΛ ίϯτϩʔϧ͠ଓ͚Δ͜ͱ ׂՌΛڮ͢͠Δ ຊདྷͷʹྗՄೳʹ
ιϑτΣΞߏཧ ιϑτΣΞͷมߋΛ ίϯτϩʔϧ͠ଓ͚Δ͜ͱ ׂՌΛڮ͢͠Δ ຊདྷͷʹྗՄೳʹ ҙਤͨ͠ιϑτΣΞΛ ࡞ΔͨΊʹඞཁͳج൫ٕज़
ҙਤͨ͠ιϑτΣΞΛ ࡞ΔͨΊʹඞཁͳج൫ٕज़ ҙਤͨ͠ιϑτΣΞͷ՝ ཁٻͷదԠ ฒߦ࡞ۀ ࢄԽͷରԠ దਖ਼ͳϦϦʔε
ҙਤͨ͠ιϑτΣΞͷ՝ ཁٻͷదԠ ฒߦ࡞ۀ ࢄԽͷରԠ దਖ਼ͳϦϦʔε ෳࡶ͞ͷܰݮ ιϑτΣΞ։ൃͷෳࡶ͞ͷܰݮͷՌ͔Βͷ Ξϓϩʔν͕ιϑτΣΞߏཧͰ͢ɻ ෳࡶ͞ͷܰݮɺଞʹϞσϦϯάɺΞʔΩςΫνϟͳͲ ߟ͑ΒΕ·͢ɻ
มߋґཔChange Requests ػೳՃόάվम ཁٻͷมߋ ཁٻόοΫϩά ιʔείʔυεΫϦϓτ ϏϧυՌύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ
ٛͷ ιϑτΣΞߏཧ ڱٛͷ ιϑτΣΞߏཧ ڱٛͷιϑτΣΞߏཧɺ ୯ʹόʔδϣϯཧΛݴΘΕΔ͜ͱ͋Γ·͢ɻ
Agenda ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
ߏཁૉೳྗ ιϑτΣΞߏཧ 1-2
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ ιʔείʔυεΫϦϓτ ͷߏͷόʔδϣχϯά ιʔείʔυεΫϦϓτ ͷߏͷόʔδϣχϯά
ϏϧυՌύοέʔδ શମͷΦʔΨφΠζͱϫʔΫϑϩʔ ڱٛͷιϑτΣΞߏཧʹɺ όʔδϣϯཧؚ͕·Ε·͢ɻ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ Work Products | Development ։ൃऀ ։ൃνʔϜ
check out check in / commit όʔδϣϯཧϦϙδτϦ͚ͩͰͳ͘ɺ ϫʔΫεϖʔεʹ͖͢Ͱ͢ɻ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ Work Products | Build Ϗϧυbot ։ൃνʔϜ
check out ϏϧυϦϦʔε੍ޚ store / deploy ϏϧυՌ ιϑτΣΞߏཧɺࣗಈϏϧυʹ ͱͬͯෆՄܽͳج൫ͱͳΓ·͢ɻ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ Work Products ։ൃνʔϜ ιϑτΣΞ։ൃɺνʔϜ׆ಈͰ͋Γɺ
ಉ࣌ฒྻ࡞ۀͰ͋Δ͜ͱΛΕͯͳΓ·ͤΜɻ
Agenda ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
पลߏ ιϑτΣΞߏཧ 1-3
पลߏ ιϑτΣΞߏཧ ϓϩηεͷجຊཁૉ αϙʔτγεςϜ
ϓϩηεͷجຊཁૉ ಈػߦಈ ਓׂ Ռ ϓϩηεͷجຊཁૉʹ͍ͭͯɺ 3BUJPOBM6OJGJFE1SPDFTTͰ໌จԽ͞Ε͍ͯ·͢ɻ
ޙߦఔ ಈػߦಈ ਓׂ Ռ ΞαΠϯ ࡞ۀ લߦఔ ϓϩηεͷࢹ
ಈػߦಈ ਓׂ Ռ ཧ༝ ࡞ۀ લߦఔ ޙߦఔ ཧ༝ ׂͷࢹ ࡞ۀऀͰ͋Δʮׂʯ͔ΒݟΔͱɺՌ
࡞ۀͷ݁ՌͰ͋ΓɺνʔϜͰڞ༗͢Δʹ ʮಈػʯ͚͕ͮඞཁͰ͢ɻ
ಈػߦಈ ਓׂ Ռ ޙߦఔ ࡞ۀऀ ཧ༝ Ռͷࢹ લߦఔ ՌͷࢹͰɺલޙؔಈػ͕ෆ͔֬ͱͳΔ͜ͱ͕ ଟ͋͘Γ·͢ɻ͜ΕɺιϑτΣΞߏཧ͚ͩͰΛ࣮ફ͢Δ
͜ͱͷ͠͞ͱݴ͍͑Δ͜ͱ͕Ͱ͖·͢ɻ
ಈػߦಈ ਓׂ Ռ લߦఔ ޙߦఔ ࡞ۀऀ ཧ༝ ڱٛͷ ιϑτΣΞߏཧͷࢹ ϓϩηεվળΛόʔδϣϯཧπʔϧͷಋೖ͚ͩͰ
ߦ͏έʔε͕ଟ͍Ͱ͕͢ɺ࣮ࠔͳΞϓϩʔνʹͳΔ ߹͕ଟ͍͜ͱ͓ͬͯ͘ͱΑ͍Ͱ͠ΐ͏ɻ
ޙߦఔ ಈػߦಈ ਓׂ Ռ ΞαΠϯ ࡞ۀ લߦఔ 7FSTJPO$POUSPM4ZTUFN *TTVF5SBDLJOH4ZTUFN αϙʔτγεςϜ
"VUPNBUFE#VJME
αϙʔτγεςϜ มߋґཔChange Requests ػೳՃόάվम ཁٻͷมߋ ཁٻόοΫϩά ιʔείʔυεΫϦϓτ ϏϧυՌύοέʔδ ϦϦʔε τϦΞʔδ
$$#มߋཧҕһձ ITS SCM CI
֬ೝ ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
ιϑτΣΞߏཧ ιϑτΣΞͷมߋΛ ίϯτϩʔϧ͠ଓ͚Δ͜ͱ ׂՌΛڮ͢͠Δ ຊདྷͷʹྗՄೳʹ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ
มߋґཔChange Requests ػೳՃόάվम ཁٻͷมߋ ཁٻόοΫϩά ιʔείʔυεΫϦϓτ ϏϧυՌύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ
ITS SCM CI ෳࡶ͞ͷܰݮʹΑΓ͍ͭͰߏΛࣝผެ։Ͱ͖Δ͜ͱ
֓ཁ Agenda Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ Agenda ιϑτΣΞߏཧ
ಛ ιϑτΣΞߏཧγεςϜ 2-1
ಛ ιϑτΣΞߏཧγεςϜ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ ೳྗΛαϙʔτ͢ΔγεςϜ
ιϑτΣΞߏཧγεςϜ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ
w ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ಛ ϦϙδτϦ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w
ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ಛ ϦϙδτϦ ্ॻ͖ͷ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w
ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ಛ ϦϙδτϦ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w
ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ಛ ϦϙδτϦ ࣗಈϏϧυʹͱͬͯ ϫʔΫεϖʔεॏཁͰ͢ɻ
ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ νΣοΫΠϯίϛοτ νΣοΫΞτ ϒϥϯν Ϛʔδ ιϑτΣΞߏཧγεςϜ ೳྗΛαϙʔτ͢ΔγεςϜ ϦϙδτϦ w
Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w ՌߏؔͷόʔδϣϯԽ όʔδϣϯ੍ޚ ࣝผͱ࠶ݱ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ ϫʔΫεϖʔε੍ޚ ಛ ϦϙδτϦ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ೳྗΛαϙʔτ͢ΔγεςϜ όʔδϣϯ੍ޚ ಛ ϏϧυϦϦʔε੍ޚ ͲͷόʔδϣϯͰߏ͞Ε͍ͯΔ͔ʁ Ͳ͏Ϗϧυ͔ͨ͠ʁ Ͳ͜ʹϦϦʔε͔ͨ͠ʁ ϏϧυͱϦϦʔε
ιʔείʔυͷࣝผͱ࠶ݱੑ͚ͩͰͳ͘ɺϏϧυͱϦϦʔεͷ ߏΛࣝผ͢Δ͜ͱ͋ΒΏΔιϑτΣΞʹͱͬͯॏཁͰ͢ɻ
ιϑτΣΞߏཧγεςϜ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ ೳྗΛαϙʔτ͢ΔγεςϜ ಛ w ҡ࣋ w
աͳଐਓੑͷഉআ w ϛεͱखؒͷܰݮ w ؆ૉԽ త w ϙϦγʔ w "$- w ࣄલ݅ w ࣄޙ݅ खஈ ϓϩηεͱϙϦγʔ ϓϩηεͱϙϦγʔɺϑΥʔϚϧͳ౷੍͚ͩͰ ͳ͘ɺਓҝతϛεͷܰݮɺۉ࣭ԽɺϧʔνϯϫʔΫͷ վળͱܰݮʹܨ͕ΔઓུతͳͷͰ͢ɻ
தԝूதཧ ιϑτΣΞߏཧγεςϜ 2-1
தԝूதཧ ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ
தԝूதཧ ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ಛ w ୯ҰϦϙδτϦ w ཧͷूதԽ͕༰қ
w ੍ޚͷूதԽ͕༰қ w ৗʹϦϙδτϦʹଓ ྫ 4VCWFSTJPO 47/ c$MFBS$BTFc5'4 5'7$ πʔϧɺΦϯϓϨϛεͰͷՔಇ͕ଟ͍Ͱ͢ɻ ϗεςΟϯάαʔϏε͋Γ·͕͢ɺݶఆతͰ͢ɻ
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ Agenda ιϑτΣΞߏཧ
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ 2-2
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local local local local local local
local local ϫʔΫεϖʔε ϦϙδτϦ ࢄ ϫʔΫεϖʔε
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
clone
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
master bugfix clone
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
master bugfix commit push
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
master bugfix commit push
ࢄཧ %7$4 ͷಛ ιϑτΣΞߏཧγεςϜ remote local ࢄϦϙδτϦ w SFNPUFͱ࡞ۀڥͷMPDBM͕͋Δ w
ϓϩηε੍ޚ͕ͮ͠Β͍ local master bugfix MPDBMϦϙδτϦ w ࡞ۀڥͰಠࣗʹόʔδϣϯཧͰ͖Δ w ӨڹΛ༩͑ͣʹ͜·ΊʹཤྺΛͤΔ w ෆඞཁͳཤྺ੍ޚͰ͖Δ w lͱ౷߹zΛݸผʹ੍ޚͰ͖Δ
ಛ w ࢄϦϙδτϦ w ཧͷࢄԽ͕༰қ w ੍ޚ͕ෳࡶ w ΦϑϥΠϯରԠ͕༰қ ྫ
(JUc.FSDVSJBM )( ࢄཧ %7$4 ͷಛ ιϑτΣΞߏཧγεςϜ remote local master bugfix master bugfix local local
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ Agenda ιϑτΣΞߏཧ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ 2-3
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ 㾎 සൟͳมߋ͕͋Δ 5%%ͳͲ 㾎 ཧతʹࢄ͍ͯ͠Δ 㾎 Γ͕͠ར͘
㾎 ෳࡶͳϒϥϯνઓུ 㾎 ଞγεςϜͱͷ࿈ܞ 㾎 ιʔγϟϧίʔσΟϯά ࢄόʔδϣϯཧγεςϜ DVCS ͻͱͭͰͯ·Ε
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ 㾎 ؇͔ͳมߋ͕͋Δ 㾎 ৗʹϦϙδτϦʹଓͰ͖Δ 㾎 ݎ࣮Ͱެࣜͳߏཧ 㾎 ఆܕతͳϒϥϯνઓུ
㾎 ଞγεςϜ࿈ܞͷࣄ 㾎 ϝϯόʔͷख़ தԝूதόʔδϣϯཧγεςϜ CVCS ͯͯ͢·Ε
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS ΞδϟΠϧϓϥΫςΟε Ϟμϯϒϥϯνઓུ ٛͷιϑτΣΞߏཧ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS ΞδϟΠϧϓϥΫςΟε ෮ ϑΟʔυόοΫ ಛɿ ϓϥΫςΟεͷྫɿ ςετۦಈ։ൃ
ܧଓతΠϯςάϨʔγϣϯ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS Ϟμϯϒϥϯνઓུ HJUqPXɿ Develop Feature A master
Release Hotfix Feature B v 1.0 v 1.1 v 2.0 HJUGMPXɺϕετϓϥΫςΟεͷͻͱͭͯ͠ΒΕ ͍ͯ·͕͢ɺݱʹԠͯ͡ɺΑΓγϯϓϧͳӡӦΛ ͢Δ͜ͱ͕ॏཁͰ͢ɻෳࡶ͞ΛϒϥϯνͰ࡞Βͳ͍Α͏ʹɻ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS Ϟμϯϒϥϯνઓུ 1VMM3FRVFTU.PEFM (JU)VC'MPX ɿ Develop Feature
A push remote local Feature A Pull Request merge ྫ (JU)VCc#JUCVDLFUc(JU-BC ϓϧϦΫΤετɺଟ͘ͷ%7$4Ϧϙδ τϦγεςϜͰ࠾༻͞Ε͍ͯ·͢ɻ (JU)VC #JUCVDLFUͷ4BB4ܕ͕༗໊Ͱ͕͢ɺ #JUCVDLFU4FSWFS(JU)VC&OUFSQSJTF (JU-BCͳͲͷΦϯϓϨϛεՔಇ͋Γ·͢ɻ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS ٛͷιϑτΣΞߏཧ SCM ITS CI มߋґཔ ػೳՃόάվम
ཁٻͷมߋ ཁٻ όοΫϩά ιʔείʔυ εΫϦϓτ ϏϧυՌ ύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ %7$4ʹରԠͨ͠*54 $*γεςϜ͕ɺ૿Ճ͠ ͍ͯΔʹ͋Γ·͢ɻ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS มߋґཔ ػೳՃόάվम ཁٻͷมߋ ཁٻ όοΫϩά ιʔείʔυ
εΫϦϓτ ϏϧυՌ ύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ ITS SCM CI • JIRA • Redmine • Git • Mercurial • Jenkins • Bamboo • Circle CI
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ ιϑτΣΞߏཧ ֬ೝ
ಛʹॏཁͳΈ ιϑτΣΞߏཧγεςϜ ϦϙδτϦ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w ՌߏؔͷόʔδϣϯԽ όʔδϣϯ੍ޚ
ࣝผͱ࠶ݱ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ ϫʔΫεϖʔε੍ޚ
தԝूதόʔδϣϯཧγεςϜ CVCS ͭͷ7$4 ιϑτΣΞߏཧγεςϜ remote local local local ࢄόʔδϣϯཧγεςϜ DVCS
Ϟμϯϒϥϯνઓུ ιϑτΣΞߏཧγεςϜ 1VMM3FRVFTU.PEFM (JU)VC'MPX ɿ Develop Feature A push remote
local Feature A Pull Request merge
֓ཁ Agenda Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
Έ ֓ཁ ظʹԠ͑ΔιϑτΣΞ ϏδωεͱιϑτΣΞ࣭ ੵۃతͳߏཧ Agenda ιϑτΣΞߏཧ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ 3-1
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ Ϗδωε ։ൃ ӡ༻ Ϗδωεඪ ചΓ্͛རӹ Ϣʔβʔ ੜ࢈ੑՔಇ ϏδωεۦಈϜʔϒϝϯτ
։ൃɾӡ༻ͷͦΕͧΕͷϛογϣϯͱՁ؍ Ͱͳ͘ɺϏδωεඪͱ,1*ͷઓུతͳߩݙ Λܧଓతʹҙࣝ͢Δඞཁ͕͋Γ·͢ɻ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ Ϗδωε ϏδωεۦಈϜʔϒϝϯτ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά
ίʔυ ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ιϑτΣΞߏཧɺ։ൃͱӡ༻ͷڠௐ ͷͨΊͷใΠϯϑϥͱͯ͠ෆՄܽͱͳͬͯ ͖͍ͯ·͢ɻ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ ιϑτΣΞߏཧͷείʔϓͷ֦େ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά ίʔυ
ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ڞಉॴ༗ ։ൃίʔυ ӡ༻ίʔυ ( IaC ) *B$*OGSBTUSVDUVSFBT$PEFʹΑΓΠϯϑ ϥͷίʔυԽ͕ଅਐ͞ΕɺΞϓϦͱΠϯϑϥΛ౷ ੍ͩͯͯߏͰ͖ΔΑ͏ʹͳ͖ͬͯ·ͨ͠ɻ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ ιϑτΣΞߏཧͷείʔϓͷ֦େ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά ίʔυ
ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ڞಉॴ༗ ։ൃίʔυ ӡ༻ίʔυ ( IaC ) Ϗδωεχʔζ ϏδωεՁ ٛͷ4$.
Έ ֓ཁ ظʹԠ͑ΔιϑτΣΞ ϏδωεͱιϑτΣΞ࣭ ੵۃతͳߏཧ Agenda ιϑτΣΞߏཧ
ιϑτΣΞߏཧ ੵۃతͳ 3-2
ιϑτΣΞߏཧ ੵۃతͳ
Ռͱ࡞ۀͷෳࡶԽʹΑΓɺϝϯόʔ ϚωδϝϯτຊۀͰͳ͘ɺใऔूʹ࣌ؒΛ ͱΒΕΔ͕͋Γ·͢ɻ
ՌͷҰݩԽͱɺ*54ʹΑΔใ౷੍ ใ )VC ʹΑΓɺຊۀʹྗͰ͖Δڥ͕͍·͢ɻ
ΞΠσΞ ϏδωεՁ ίʔυ Ϗϧυ ಈ͘ιϑτΣΞ όοΫϩά ιϑτΣΞ։ൃʹ͓͚Δ ใͷฏқɺཻɺՁ؍͞·͟·Ͱ͢ɻ
ΞΠσΞ ϏδωεՁ ίʔυ Ϗϧυ ಈ͘ιϑτΣΞ όοΫϩά ITS ITS SCM CI
CI *54 4$.$*ʹΑΓใͷྲྀ௨Λ੍ޚ͠ɺ ιϑτΣΞ։ൃͷෳࡶΛܰݮ͠·͢ɻ 4$.͚ͩͰվળͰ͖ͳ͍Λҙ͠·͢ɻ
ΞΠσΞ ϏδωεՁ ίʔυ όοΫϩά λεΫ ιϑτΣΞߏཧෆՄܽͰ͕͢ɺ ͦΕ͚ͩͰͳɺίϛϡχέʔγϣϯͱ ίϥϘϨʔγϣϯʹෆ͍ͯ͠Δͱҙ͖͢Ͱ͢ɻ
ιϑτΣΞߏཧ ੵۃతͳ w'MPXPG7BMVF wڞಉॴ༗ wιʔγϟϧίʔσΟϯά ू߹ ʮ'MPXPG7BMVFʯͱɺΞΠσΞ͕ϏδωεՁʹͳΔ·ͰͷྲྀΕΛॏࢹ͖͢ͱ͍͏͜ͱͰ͢ɻ ֤ఔͰͷਐΑΓɺՁΛσϦόϦʔͰ͖͔ͨʹॏ͖Λஔ͖·͢ɻ ʮιʔγϟϧίʔσΟϯάʯɺϑΥʔϚϧͳߏཧΑΓɺݟʹऩूͱվળೳྗʹظ͢ΔΞϓϩʔνͰ ΦʔϓϯιʔεϓϩδΣΫτͰ࣮ફ͞Ε͍ͯΔΓํͰ͢ɻ͜ͷΓํʹΑΓɺ৽ٕज़ཁٻ͕ݻ·Γʹ͍͘
ιϑτΣΞ։ൃͰɺೳྗΛ࠷େԽͰ͖Δ͜ͱ͕ظ͞Ε͍ͯ·͢ɻ
Έ ֓ཁ ظʹԠ͑ΔιϑτΣΞ ϏδωεͱιϑτΣΞ࣭ ੵۃతͳߏཧ ιϑτΣΞߏཧ ֬ೝ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ ιϑτΣΞߏཧͷείʔϓͷ֦େ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά ίʔυ
ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ։ൃίʔυ ӡ༻ίʔυ ( IaC ) Ϗδωεχʔζ ϏδωεՁ ٛͷ4$.
·ͱΊ ֓ཁ Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
Thank you! Tomoharu Nagasawa • Senior Evangelist • Atlassian •
@tnagasawa ແྉͰߨԋݱ๚ͷ͝ґཔΛঝΓ·͢ɻ ͓ؾܰʹɺ͝࿈བྷ͍ͩ͘͞ɻ FNBJMUOBHBTBXB!BUMBTTJBODPN