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
550
積極的なソフトウェア構成管理の活用方法
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
7
4.8k
Other Decks in Technology
See All in Technology
AGIについてChatGPTに聞いてみた
blueb
0
130
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
230
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
180
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
1
260
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
540
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
110
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
100
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
200
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
Done Done
chrislema
181
16k
GitHub's CSS Performance
jonrohan
1030
460k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Visualization
eitanlees
145
15k
Designing Experiences People Love
moore
138
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Fireside Chat
paigeccino
34
3k
How STYLIGHT went responsive
nonsquared
95
5.2k
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