Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
マイクロサービスにおける 最高のDXを目指して / Microservices vs DX
Search
Kenji Suzuki
July 23, 2019
Technology
5.3k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マイクロサービスにおける 最高のDXを目指して / Microservices vs DX
https://cloudnativedays.jp/cndt2019/
での登壇資料です
Kenji Suzuki
July 23, 2019
More Decks by Kenji Suzuki
See All by Kenji Suzuki
VPoEのアンチパターンを考える / VPoE Anti-Pattern
kenjiszk
2
870
マイクロサービスでのセキュリティパッチ含めた ライブラリ更新のつらみと取り組み / security-jaws-no13-kenjiszk
kenjiszk
2
1.2k
Rubyでブロックチェーンを実装してみた話 / Blockchain by Ruby
kenjiszk
2
650
FiNCのRelease Engineering / finc_release_engineering
kenjiszk
0
840
デプロイおじさんのお葬式 / Good-Bye Deploy Ojisan
kenjiszk
0
1.1k
イーサリアムとスマートコントラクト入門 / BlockTecCo vol.1
kenjiszk
1
510
FiNCのデータ戦略と AWSでのデータプラットフォーム構築 / Healthcare Data in FiNC
kenjiszk
0
2.4k
FiNCにおけるブロックチェーンの取り組み
kenjiszk
1
1.9k
How to manage containers in FiNC
kenjiszk
0
3.9k
Other Decks in Technology
See All in Technology
Lint の層を組み直した話
bengo4com
2
290
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
720
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
610
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
480
スマートロックを支えるFlutter × ネイティブ連携の実践 / Flutter and Native Integration in Practice: Powering Smart Locks
bitkey
PRO
0
140
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
150
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
640
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
370
Vibe-to-Spec開発_実践ガイド
happysamurai294
0
140
[General] 개발자로 해외 기업에서 일하기
skydoves
1
250
Adversary Infrastructure Hunting101
disconinja
0
190
AI AgentによるEmbedded SREの取り組み
tgidgd
1
320
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Un-Boring Meetings
codingconduct
0
480
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
Code Reviewing Like a Champion
maltzj
529
40k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Into the Great Unknown - MozCon
thekraken
41
2.8k
KATA
mclloyd
PRO
35
16k
Designing Experiences People Love
moore
143
24k
Testing 201, or: Great Expectations
jmmastey
46
8.4k
ラッコキーワード サービス紹介資料
rakko
5
5.6M
Transcript
גࣜձࣾ FiNC Technologies Kenji Suzuki ϚΠΫϩαʔϏεʹ͓͚Δ ࠷ߴͷ%9Λࢦͯ͠
• Kenji Suzuki • FiNC Technologies • Engineering Manager •
SREάϧʔϓ • ٕज़ਪਐάϧʔϓ • ೖࣾ4͘Β͍ 8IPBN*
େنʹ͍ͯ͘͠ϚΠΫϩαʔϏεΛ ؾ࣋ͪΑ͘։ൃɾӡ༻͢ΔͨΊʹͲ͏ͨ͠Βྑ͍͔ 5PEBZ`5BML
• ϚΠΫϩαʔϏε vs ϞϊϦε • ϚΠΫϩαʔϏεͲ͏ͬͯΔʁ ࠓ͞ͳ͍͜ͱ
• DX(Developer Experience)ͬͯԿʁ • Microservicesʹ͍ͭͯ • Microservicesʹ͓͚ΔDXʹ͍ͭͯߟ͑Δ • Microservicesʹ͓͚ΔDXΛྑ͘͢ΔͨΊʹ "HFOEB
DX(Developer Experience)ͬͯԿʁ
• ։ൃऀମݧ • ؾ࣋ͪΑ͘։ൃ͕Ͱ͖͍ͯΔ͔Ͳ͏͔ʁ %9 %FWFMPQFS&YQFSJFODF ͱʁ
• ؾ͕࣋ͪྑ͍։ൃͷҰྫ • γεςϜશମͷݟ௨͕͠ྑ͍ɾ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔ • ίʔυͷ࣭͕ྑ͍ • ٕज़ෛ࠴͕গͳ͍ɺ·ͨదʹཧ͞Ε͍ͯΔ • ςετσϓϩΠΛߴʹߦ͏͜ͱ͕Ͱ͖Δ
• ϥΠϒϥϦϑϨʔϜϫʔΫͷόʔδϣϯ͕ਖ਼͘͠ཧ͞Ε͍ͯΔ • ͳͲͳͲ %9͕ྑ͍ͱʁ
• ։ൃʹ༨༟͕ੜ·ΕΔ • ඇػೳཁ݅ʹख͕Ճ͑ΒΕΔ • ϦϑΝΫλϦϯάɾϦΞʔΩςΫτ͕͘͢͠ͳΔ • ۓٸͰͳ͍͕ॏཁͳ͜ͱʹ͕͘Α͏ʹͳΔ %9͕ྑ͍ͱͲ͏ͳΔʁ
• DX͕ྑ͍ঢ়ଶͰ͋Ε(։ൃʹ༨༟͕͋Ε) • ͞Βʹ։ൃ͕ؾ࣋ͪΑ͘ͳΔ׆ಈʹ࣌ؒΛׂ͚ΔΑ͏ʹͳΔ • ݁ՌతʹDX͞ΒʹΑ͘ͳΔ %9εύΠϥϧ
• DX͕ྑ͘ͳ͍ɺ͘͠Կߟ͍͑ͯͳ͍߹ • Կͯ͠ͳ͚ΕѱԽ͢Δ • ྫ • ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔʁ • ϥΠϒϥϦదʹόʔδϣϯΞοϓ͞Ε͍ͯΔʁ
%9εύΠϥϧ
%9Ͱେࣄͳͷܧଓతҡ࣋׆ಈ
Microservicesʹ͍ͭͯ
େ͖ͳγεςϜΛɺখ͘͞ɺҰͭͷׂʹׂͨ͠ͷ 8IBUJT.JDSPTFSWJDFT
• ٕज़ಛҟੑ • ճ෮ੑ • εέʔϦϯά • ৫ͷҰக • ߹Մೳੑ
• ͳͲͳͲ .FSJUTPG.JDSPTFSWJDFT
8IZ'J/$BEPQU.JDSPTFSWJDFT
ΧϥμͷશͯΛҰͭͷΞϓϦͰɻ ͱ͍͏ίϯηϓτ͕͏·͘·ͬͨ ϚΠΫϩαʔϏεͱඇৗʹ૬ੑ͕ྑ͘ɺ ৽ػೳΛߴͰϦϦʔε͖ͯͨ͠ UP$ΞϓϦ ೝূαʔϏε &$αΠτ "*ػೳ Ϋʔϙϯ ΣΞϥϒϧ
Ϩίϝϯυ ϥΠϑϩά 4/4ػೳ νϟοτ UP#αΠτ ϙΠϯτ αϓϦϝϯτ
ଟ͘ͷΞϓϦΛ։ൃɾӡ༻͍ͯ͠Δ ࢟ੳ &$αΠτ ཧऀը໘ Ϣʔβʔ ϩʔϧཧ ৯ࣄղੳ ϓϨϛΞϜձһ ݈อαʔϏε UP$ΞϓϦ
#'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏε 4/4ػೳ ίϯςϯπཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦΞϧ ϙΠϯτཧ ೝূج൫
Microservicesʹ͓͚ΔDXʹ͍ͭͯߟ͑Δ
.JDSPTFSWJDFTͱ%9ͷ૬ੑ MicroservicesΛ࠾༻͢ΔͱDXʹͲͷΑ͏ͳӨڹ͕͋Δ͔ʁ
ྑͦ͞͏ʹݟ͑Δ • γεςϜΛখ͘͞ΩʔϓͰ͖ΔͷͰҎԼͷ͜ͱ͕Γ͘͢ͳΔ • γεςϜશମͷݟ௨͕͠ྑ͍ɾ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔ • ίʔυͷ࣭͕ྑ͍ • ٕज़ෛ࠴͕গͳ͍ɺ·ͨదʹཧ͞Ε͍ͯΔ •
ςετσϓϩΠΛߴʹߦ͏͜ͱ͕Ͱ͖Δ • ϥΠϒϥϦϑϨʔϜϫʔΫͷόʔδϣϯ͕ਖ਼͘͠ཧ͞Ε͍͍ͯΔ
৽نػೳͷ্ཱͪ͛ʹ͍ͭͯ͞ΒʹྗΛൃش͢Δ • DXطଘͷγεςϜͷෛ࠴ʹେ͖͘ҾͬுΒΕΔͷͰ • ৽نػೳΛϚΠΫϩαʔϏεͰ্ཱͪ͛Δͷඇৗʹྑ͍ • ͍͍ͩͨ3ഒ͘Β͍ͷεϐʔυͰ͍͚Δ(ࣾൺ)
αʔϏε։ൃମ੍ʹ͍ͭͯ͏Ұߟ͑ͯ͠Έ͍ͨ ྑͦ͞͏ʹݟ͑Δͷ͕ͩ
• DXͷରऀ୭͔ʁ • ϚΠΫϩαʔϏεʹ͓͚Δڵຯͷൣғ ࠶ߟ͢Δ؍
DX = Developer Experience? %9ͷରऀ୭͔ʁ
։ൃαΠΫϧʹଟ͘ͷొਓ͕͍Δ %FWFMPQFS 2" 3FMFBTF .BJOUFOBODF 4FDVSJUZ
'J/$5FDIOPMPHJFTͷνʔϜߏ %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS
%FWFMPQFS
%9%FW5FTU4FD0QT&YQFSJFODF ͱͯ͠ߟ͍͑ͨ
ϚΠΫϩαʔϏεͷڵຯͷൣғ • Dev/Test/Sec/Ops ͳͲͦΕͧΕͷཱͰڵຯͷൣғ͕ҟͳΔ • ҰͭͷϚΠΫϩαʔϏεͷൣғ • ͍͔ͭ͘ͷϚΠΫϩαʔϏεΛԣஅͨ͠ൣғ • γεςϜશମ
• ͋ΔػೳΛ։ൃ͢Δͱ͖ʹɺখ ͘͞ݟ௨͠ͷΑ͍Ұͭͷൣғʹ ूத͍ͨ͠ • ͋ΔػೳΛ։ൃ͢Δͱ͖ʹɺෳ ͷΞϓϦέʔγϣϯʹखΛՃ ͑ͨ͘ͳ͍ • ଞͷ։ൃɺӡ༻ͷ߹Ͱαʔ
Ϗε։ൃΛམͱͨ͘͠ͳ͍ %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS ҰͭͷϚΠΫϩαʔϏε
%FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS
͍͔ͭ͘ͷϚΠΫϩαʔϏε • ϦϦʔε୯ҐͰ߹ੑΛ୲อ͠ ͍ͨ • ೝূج൫ͳͲɺଟ͘ͷϚΠΫϩ αʔϏε͔Βґଘ͞ΕΔͷʹ ͍ͭͯଞͷϚΠΫϩαʔϏε ͷؔ৺͝ͱʹͳΒ͟ΔΛ͑ͳ͍
%FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS
γεςϜશମ • ڞ௨Ͱ༻͢ΔΠϯϑϥج൫ • γεςϜશମʹ͓͚Δ୯Ұো ͷഉআ • γεςϜશମͷηΩϡϦςΟϨ ϕϧҰ൪͍ͱ͜Ζʹ͋ͬͯ ͠·͏
%9%FW5FTU4FD0QT&YQFSJFODF ͱͨ͠߹ɺͲͷΑ͏ͳ͕ݟ͑ͯ͘Δ͔ʁ
ҟͳΔؔ৺ͷൣғͰɺҟͳΔΠϯηϯςΟϒ %FWFMPQFS 43&4FDVSJUZ ϚΠΫϩαʔϏεຖʹҟͳΔ ݴޠΛબ͍ͨ͠ ։ൃऀͷಘҙͳݴޠΛબͰ ͖ΔͷͰ։ൃ্͕͢Δ ࠾༻͢Δݴޠͷ͚ͩηΩϡ ϦςΟύονͷରԠ͕ඞཁ ࠾༻͢Δݴޠͷ͚ͩOpsʹ
ӡ༻͕ࣝඞཁ ͯ͢ͷ։ൃݴޠΛἧ͍͑ͨ
ϚΠΫϩαʔϏεଆʁڞ௨ج൫ଆʁ • ྫ͑ɺCI/CDͷઃఆ • αʔϏεػೳͰͳ͍͕ඞཁͳίϯϙʔωϯτ αʔϏεͷػೳ͡Όͳ͍͔Β γεςϜશମͱͯ͠ͷڞ௨ػ ೳͱͯ͠ఏڙͯ͠΄͍͠ ϏϧυखॱϦϦʔεखॱʹ ͍ͭͯΧελϚΠζ͍ͨ͠
ͷͰɺ֤ϚΠΫϩαʔϏεຖ ʹΓํΛܾΊ͍ͨ Ϗϧυํ๏ʹमਖ਼͕͋ͬͨ ߹ʹɺϚΠΫϩαʔϏεͷݸ ࡞ۀ͢Δͷਏ͍ͷͰڞ ௨ͰҰͭͷγεςϜʹ͍ͨ͠
େنԽʹΑΔෳࡶੑͷ૿Ճ • ෳͷϚΠΫϩαʔϏεʹ·͕ͨΔΑ͏ͳػೳͷ։ൃ • ҶͮΔతʹμϯͨ͠αʔϏεͷݪҼಛఆͷࠔ͞ • ϚΠΫϩαʔϏε͕૿͑Ε૿͑Δ΄Ͳෳࡶੑ͕૿͢ 4FSWJDF 4FSWJDF 4FSWJDF
େنԽʹΑΔ։ൃɾ2"ڥͷߏஙқΞοϓ • ෳͷαʔϏεΛ্্ཱͪ͛ͨͰͷಈ࡞֬ೝ͕ඞཁ • σʔλࢄ͍ͯ͠ΔͷͰ߹ੑͷऔΕͨσʔληοτ͕ඞཁ ࢟ੳ &$αΠτ ཧऀը໘ Ϣʔβʔ ϩʔϧཧ
৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏ ε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏ ε 4/4ػೳ ίϯςϯπ ཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦ Ξϧ ϙΠϯτཧ ೝূج൫
ϚΠΫϩαʔϏεͳΒͰͷ֦େ • ྫ͑શϚΠΫϩαʔϏεͷηΩϡϦςΟύον • ୯७ʹಉ͡࡞ۀΛԿेճ͢Δඞཁ͕͋Δ • ϥΠϒϥϦߋ৽ͷΑ͏ͳؾΛ͏࡞ۀΛԿेճߦ͏ͷਏ͍ ࢟ੳ &$αΠτ ཧऀը໘
Ϣʔβʔ ϩʔϧཧ ৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏ ε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏ ε 4/4ػೳ ίϯςϯπ ཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦ Ξϧ ϙΠϯτཧ ೝূج൫
ੜ͡Δ·ͱΊ • ΠϯηϯςΟϒͷҧ͍ʹΑΔিಥ • ڞ௨ vs ࢄʹΑΔিಥ • େنԽʹΑΔෳࡶԽ •
։ൃɺςετɺӡ༻ • αʔϏεͷݸʹൺྫͨ͠࡞ۀྔ
͜͏͍ͬͨΛແࢹͯ͠େنԽ͢Δͱ • ৽αʔϏεͷ্ཱͪ͛ૣ͍ • ݴޠͷछྨ͕૿͑Δͱɺࣾͷϊϋڞ༗͕গͳ͘ͳΔ • CI/CDपΓ͕ෆ҆ఆʹͳͬͨΓɺςετͷ͕࣌ؒ͘ͳΔ • ηΩϡϦςΟύον͕์ஔ͞ΕΔ •
ো͔࣌Βͷ෮چ͕࣌ؒ৳ͼΔ • ͖Ε͍ͳڥͰ։ൃQA͕Ͱ͖ͳ͘ͳΔ • όά͕ଟ͘ɺόάfixʹଟ͘ͷ࣌ؒΛ͏Α͏ʹͳΔ ॳҎ֎ͷ։ൃ͕͘ͳΔ
ͭ·Γ.JDSPTFSWJDFTͱ%9 • ϚΠΫϩαʔϏεͷ։ൃͷ୯ମΛམͱͣ͞ʹ • ϚΠΫϩαʔϏε୯ମ͔Β࿙Εग़͢՝Λղܾ͢Δ ࣋ଓՄೳͳ։ൃͷ࠷େԽΛࢦ͢
ؓ $*$%ͷឯ༨ۂં
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ αʔϏε૿Ճ͠ଓ͚ɺ୲ऀͷ࡞ۀ͕ϘτϧωοΫʹ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ αʔϏε૿Ճ͠ଓ͚ɺ୲ऀͷ࡞ۀ͕ϘτϧωοΫʹ ࠶ͼɺCI/CDͷઃఆΛ֤ΞϓϦʹͨ͠ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ
$*$%୭͕ཧ͢Δʁ • ϚΠΫϩαʔϏε͕େنͰ͋Ε֤ΞϓϦͰཧ • ͦͦϚΠΫϩαʔϏεେنͳγεςϜͷҝͷͷ͕ͩ • ymlͰهड़Ͱ͖Δ͘Β͍؆୯ʹͯ͠ࢄཧ͖͢
Microservicesʹ͓͚ΔDXΛྑ͘͢ΔͨΊʹ
.JDSPTFSWJDFTͷ%9Λྑ͘͢ΔऔΓΈ πʔϧͷಋೖ ৫తͳऔ ϚΠΫϩαʔϏε͕େنԽͨ͠ͱͯ͠ ୯ମͷ։ൃΛམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠ΧόʔͰ͖ͳ͍ ൣғΛ৫తͳऔͰϑΥϩʔ͢Δ
πʔϧͷಋೖ ৫తͳऔ ϚΠΫϩαʔϏε͕େنԽͨ͠ͱͯ͠ ୯ମͷ։ൃΛམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠ΧόʔͰ͖ͳ͍ ൣғΛ৫తͳऔͰϑΥϩʔ͢Δ
αʔϏεϝογϡɺࢄτϨʔγϯά • ෳͷϚΠΫϩαʔϏεʹ·͕ͨΔʹରͯ͠ͷରԠ • ӨڹൣғͷՄࢹԽ • ো࣌ͷಛఆͷ্ 4FSWJDF 4FSWJDF 4FSWJDF
αʔΩοτϒϨΠΧʔ • ಛఆͷαʔϏεͷো͕ଞͷαʔϏεʹӨڹ͠ͳ͍Έ • ҰͭͷোͰγεςϜશମ͕μϯ͠ͳ͍Α͏ʹ(Ops) • ϦϦʔεʹର͢Δ৺ཧతোน͕Լ͕Δ(Dev) 4FSWJDF 4FSWJDF 4FSWJDF
ΧφϦΞϦϦʔε • ϥΠϒϥϦͷΞοϓσʔτͷେ • ϑϨʔϜϫʔΫݴޠͷόʔδϣϯ্͛ಛʹཏతͳQAͷ࣮ࢪ͕ ඞཁ • ΧφϦΞϦϦʔεʹΑͬͯ͜ͷ৺ཧతোนΛԼ͛Δ ϚΠΫϩαʔϏεͷ͚ͩߦΘͳ͍ͱ ͍͚ͳ͍࡞ۀͷ୯ମͷෛ୲ΛԼ͛Δ
࢟ੳ &$αΠτ ཧऀը໘ Ϣʔβʔ ϩʔϧཧ ৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏε 4/4ػೳ ίϯςϯπ ཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦ Ξϧ ϙΠϯτཧ ೝূج൫
.JDSPTFSWJDFTͷෳ • ͋ΔϚΠΫϩαʔϏεΛ։ൃ/QA͢Δͱ͖ʹ • ͦͷαʔϏε͕ґଘ͢ΔϚΠΫϩαʔϏε܊Λࣗઐ༻Ͱ͖ͳλΠ ϛϯάͰ্͛ͨΓམͱͨ͠Γ͍ͨ͠ • औΓΈ • Kubernetesಋೖͨ͠Β͍͚Δͱ͍͏Θ͚Ͱͳ͍
• ϑΝʔετεςοϓ Infrastructure as a Code • σʔληοτͷ༻ҙ
ؓ ϚΠΫϩαʔϏεͷෳαάϥμϑΝϛϦΞԽ
1SPEVDUJPO 4UBHJOH 1SPEVDUJPO ४1SPEVDUJPO 4UBHJOH
४1SPEVDUJPOڥΛ࡞Γ͔͕ͨͬͨ • લఏͱͯ͠ୡ͓͔ͯ͠ͳ͍ͱ͍͚ͳ͍͜ͱ݁ߏଟ͍ • Infrastructure as a Code • ίϯςφपล͚ͩͰͳ͘ɺAWSͷϑϧϚωʔδυαʔϏεͳͲ
(SQS, Lambda, RDS, etc…) • ϒϥϯνઓུ • QA͕Մೳͳσʔληοτͷ༻ҙ • ϞλϞλ͍ͯ͠Δͱ৽͍͠ϚΠΫϩαʔϏε্ཱ͕͕ͪͬͯ ͍͚ͭͳ͘ͳ͍ͬͯ͘
πʔϧͷಋೖ ৫తͳऔ ϚΠΫϩαʔϏε͕େنԽͨ͠ͱͯ͠ ୯ମͷ։ൃΛམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠ΧόʔͰ͖ͳ͍ ൣғΛ৫తͳऔͰϑΥϩʔ͢Δ
πʔϧΛಋೖͯ͠ղܾ͠ͳ͍ͱʁ ͢ͰʹDX͕ѱ͍Օॴ ৫తʹऑ͍෦
લఏͱͯ͠ߟ͑Δ͜ͱ • ػೳ։ൃແݶʹ͋Δ • νʔϜͷ͠͞ɺख़ͳͲ • ֤νʔϜʹԡ͚͍ͯ͠͠έʔε
ஈ֊తͳऔΓΈ ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
ϥΠϒϥϦͷߋ৽ɺηΩϡϦςΟΞοϓσʔτ • ԿϚΠΫϩαʔϏεΛӡ༻͍ͯ͠Δͱߦ͖ಧ͔ͳ͍෦͕ग़ͯ͘Δ • DX͕ѱ͍··์ஔ͞Ε͍ͯΔͱ͜Ζ • ྫ͑ɺ • ϥΠϒϥϦͷߋ৽ɺηΩϡϦςΟΞοϓσʔτ •
ͪͳΈʹɺͳͥDX͕ѱ͍ʁ • ͍͟࠷৽ͷόʔδϣϯʹ͋͛Δͱ͖ʹϏοάόϯϦϦʔεʹͳΔ • ์ஔͨ͠··ηΩϡϦςΟ͕ൃੜ͢Δͱඞཁͷͳ͔ͬͨରԠ࡞ۀ ʹΘΕΔ
·ͣՄࢹԽͯ͠Λڞ༗͢Δͱ͜Ζ͔Β • ֤ΞϓϦέʔγϣϯͷϥΠϒ ϥϦͷόʔδϣϯΛԣஅͯ͠ ՄࢹԽ • ͲͷΞϓϦέʔγϣϯͷόʔ δϣϯ͕͍··์ஔ͞Εͯ ͍Δ͔ΛҰྎવʹ •
ఆྫͰνΣοΫ
ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
Ͱ͖Δͱ͜Ζ͔ΒऔΓΉ • ि̍ճɺ༗ࢤͰू·ͬͯߦ͖ಧ͍͍ͯͳ͍ͱ͜ΖΛαϙʔτ͢Δ • ϥΠϒϥϦͷΞοϓσʔτ • ݴޠͷόʔδϣϯͷΞοϓσʔτ • Dockerfile, CIͷઃఆͳͲͷߋ৽ͳͲ
• νʔϜʹΑͬͯϦϦʔεཱ͕ͯࠐΜͰ͍ͨΓ͢Δ͜ͱ͕͋Δͷ ͰɺશମͰαϙʔτͰ͖Δମ੍Λ࡞Δͱྑ͍
υϝΠϯ͕͍ࣝΒͳ͍෦νʔϜʹͩ͜ΘΒͳ͍ • ྫ͑ɺηΩϡϦςΟύονΛ্͛Δ࡞ۀʹ͍ͭͯɺαʔϏε ͷυϝΠϯࣝ΄΅ෆཁ • ͦ͏͍ͬͨ࡞ۀʹ͍ͭͯɺνʔϜΘ͚ʹͩ͜ΘΒͣʹ࡞ۀՄೳ ͳϝϯόʔ͕Ͱ͖Δͱ͜Ζ͔Βย͚͍ͯ͘ͱྑ͍
ࡇΓతʹऔΓΉͷྑ͍
ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
͋Δఔମ੍͕ग़དྷ͖ͯͨΒࢄԽΛࢦ͢ • جຊతʹϚΠΫϩαʔϏεͷ։ൃମ੍Λεέʔϧͤ͞ΔͨΊʹ ࢄԽΛࢦ͍ͯ͘͠ • ৫ͱͯ͠DXͷѱ͍ͱ͜ΖʹϑΥʔΧεͯ͠DX͕ճ෮͖ͯͨ͠ Β֤νʔϜʹ͓ͤͰ͖Δঢ়ଶʹͳΔ • ਖ਼ͷεύΠϥϧɿDX͕ྑ͘ͳͬͯ͘ΕอͭݮΔ
ࢄ͢ΕԿेݸ͋Δ3BJMTͷόʔδϣϯΞοϓ • ओཁͳΞϓϦέʔγϣϯ 24hҎʹରԠྃ • Ҏʹͯ͢ͷαʔϏε ͷߋ৽͕ྃ
ѱ ྑ DX %9͕ѱ͍Օॴ Λಛఆ ՄࢹԽ ৫త ʹఈ্͛ ࢄԽ
ѱ ྑ DX %9͕ѱ͍Օॴ Λಛఆ ՄࢹԽ ৫త ʹఈ্͛ ࢄԽ ※
ίπ • ಛఆ͠ղܾ͢ΔΛͳΔ͘খ͘͞ • ҰͭҰͭ͜ͳͯ͠ԣల։͍ͯ͘͠
·ͱΊ
·ͱΊ • ϚΠΫϩαʔϏεʹ͓͚ΔDXͷ্ʹ͍ͭͯߟ͑ͨ • DXͷରऀDevTestSecOpsͱ֦ு͢Δ • ϚΠΫϩαʔϏεͷDXΛ্ͤ͞Δʹ • ϚΠΫϩαʔϏεͷ୯ମͷ։ൃΛམͱͣ͞ʹ •
ϚΠΫϩαʔϏεͷ֎ʹ࿙Εग़ؔ͢৺Λ͏·͘ѻ͍ͬͯ͘ • ͦͷͨΊʹ • πʔϧʹΑΔΞϓϩʔν • ৫ʹΑΔΞϓϩʔν