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
DevOps for beginners
Search
Kohei Ota
June 30, 2018
1
500
DevOps for beginners
Kohei Ota
June 30, 2018
Tweet
Share
More Decks by Kohei Ota
See All by Kohei Ota
CloudNative Meets WebAssembly: Exploring Wasm's Potential to Replace Containers
inductor
4
3.3k
The Cloud Native Chronicles: 10 Years of Community Growth Inside and Outside Japan
inductor
0
160
Cracking the KubeCon CfP
inductor
2
750
KubeCon Recap -Platform migration at Scale-
inductor
1
1k
コンテナビルド最新事情 2022年度版 / Container Build 2022
inductor
3
560
データベースとストレージのレプリケーション入門 / Intro-of-database-and-storage-replication
inductor
29
6.5k
KubeConのケーススタディから振り返る、Platform for Platforms のあり方と その実践 / Lessons from KubeCon case studies: Platform for Platforms and its practice
inductor
3
930
オンラインの技術カンファレンスを安定稼働させるための取り組み / SRE activity for online conference platform
inductor
1
1.3k
Kubernetesネットワーキング初級者脱出ガイド / Kubernetes networking beginner's guide
inductor
22
7k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
GitHub's CSS Performance
jonrohan
1032
470k
Statistics for Hackers
jakevdp
799
230k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
A designer walks into a library…
pauljervisheath
210
24k
So, you think you're a good person
axbom
PRO
2
1.9k
Git: the NoSQL Database
bkeepers
PRO
432
66k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
56
50k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
DevOps ͜ͱ͡Ί(ॳڃฤ) At Πϯϑϥษڧձ Presented by inductor
͋͐͡Μͩ ࣗݾհ DevOpsͱ ·ͱΊ
ࣗݾհ inductor (Twitter: @_inductor_) Z◦Z◦φϯτΧ͍ͬͯ͏ձࣾͷ ΠϯϑϥΤϯδχΞ(AWS) աڈͷ৬Ͱ։ൃɾӡ༻ͷ ܦݧ͋Γ
DevOpsͬͯͳ͋ʹʁ
ࠓ͜Ε͚֮ͩ͑ͯؼ͍ͬͯͩ͘͞
DevOpsจԽʂʂʂ
ʁʁʁ
ࡢࠓͷITۀքʹ͓͚Δମ࣭ͷมԽ ΞϓϦέʔγϣϯΠϯϑϥͷ։ൃεΩʔϜ͕มԽͭͭ͋͠Δ ύοέʔδΛ1͖ΓͰͯ͠ऴΘΓͰࡁ·ͳ͍͜ͱ͕૿͖͑ͯͨ ITͷਐԽͷʹ͑͏ΔΑ͏ʹ͍ͨ͠(e.g. ੬ऑੑରԠ, ػೳՃ etc) ΞδϟΠϧͳ։ൃΛऔΓೖΕΔۀքɾϏδωε͕૿͑ͨ Ϗδωεʹର͢Δεϐʔυײɺ৽͍͠ͷͰΞϐʔϧ͍ͨ͠ͱ͍͏ ϚʔέςΟϯάઓུతଆ໘ͳͲͷاըαΠυͷཁʹ͑ΒΕΔΈͮ͘Γ
ͭ·ΓɺΞϓϦ։ൃػೳՃ ༷มߋͳͲʹର͢Δ εϐʔυΛٻΊΒΕͯେมʂ
Πϯϑϥӡ༻ͷؾ͍࣋ͪͯΈ·͠ΐ͏
ӡ༻ʹେ͖ͳෛ୲͕ൃੜ͢Δ ӡ༻ͷۀʮʑͷ࡞ۀʯΛԁʹਐΊΔ͜ͱ มԽ͕͋Δͱ࡞ۀऀͷίετ্͕͕ͬͯ͠·͏ ࡞ۀ༰ɺ༷มߋʹର͢ΔϚχϡΞϧͳͲͷυΩϡϝϯτͷै σϓϩΠ࡞ۀ͕िʹ1ճʁͳΊͯΜͷʁ ͦͦӡ༻ʹίετ͔͚ͨ͘ͳ্͍ͬͯͷਓୡ͕ݴ͏͔Βͦ͜ɺ ʑͷۀͷͨΊʹͦͦ͜͜ΪϦΪϦͷίετͰճͯ͠ΔΜͰ͕͢
ӡ༻ɺʑͷۀΛ ҆શʹ͜ͳ͍ͨ͠ʂ ༨ܭͳมԽɺ ۃྗՃ͑ͳ͍Ͱཉ͍͠ʂ
όνόνͯ͠·͢Ͷ
Ͱͬͯʁ
։ൃӡ༻ͷຊདྷͷతΛߟ͑Δ ։ൃɺʮՁʯΛʮ࡞Γଓ͚Δ͜ͱʯʹҙຯ͕͋Δ ӡ༻ɺʮՁʯΛʮಧ͚ଓ͚Δ͜ͱʯʹҙຯ͕͋Δ ͲͪΒɺϏδωεʹԠ͑ΔͨΊͷखஈͰ͋Δ ӡ༻։ൃɺຊདྷͷతಉ͡ͳΜͰ͢ʂ
ͦ͜ͰZOZOSUITDevOpsͰ͢Α
DevOpsͬͯͳ͋ʹʁ
DevOpsͰΑࣖ͘ʹ͢Δݴ༿ ΞδϟΠϧ։ൃ ϚΠΫϩαʔϏεΞʔΩςΫνϟ Ϋϥυ Infrastructure as Code ߏཧ ࣗಈԽ CI/CDύΠϓϥΠϯ
ϩάɾσʔλͷՄࢹԽ
DevOpsͱ ϏδωεͷՁΛސ٬ʹಧ͚ΔͨΊʹɺʮ։ൃ(Dev)ʯͱʮӡ༻(Ops)ʯ͕ Ұؙͱͳͬͯಈ͜͏ͱ͢ΔҰͭͷߟ͑ํ ۩ମతʹڠྗ͠߹͏͜ͱͰɺνʔϜײͰੜ͡ΔຎࡲΦʔόʔϔου ΛݮΒͨ͢Ίʹಈ͘͜ͱΛࢦ͢ ʮ۩ମతͳʯఆٛͳ͍ ͜͜10ऑͰɺେମͷΈ͕ܾ·Γͭͭ͋Δ
DevOpsʹΑ͋͘Δצҧ͍ DevOps۩ମతͳख๏Ͱͳ͍ CI/CDɺίϯςφɺΫϥυͳͲΛಋೖ͢Δʹʮ४උʯ͕ඞཁ ͍͖ͨͩͳΓಥͬࠐΜͰͤʹͳΕͳ͍ ͨͩͷແܭըͳࣗಈԽଐਓԽΛੜΉͷͰةݥ ൿͷλϨࣗಈԽεΫϦϓτ
DevOpsΛཧղͨ͠ਓ͕ɺ৫νʔϜͷ ΈΛগͣͭ͠ม͍͑ͯ͘ඞཁ͕͋Γ·͢
1. ΞϓϦέʔγϣϯ։ൃͷΈΛม͑Δ
ϚΠΫϩαʔϏεΞʔΩςΫνϟ ܧଓతʹมߋΛՃ͑ΔͨΊʹɺΞϓϦέʔγϣϯઃܭॏཁ 1ίʔυͷมԽ͕10ݸͷΞϓϦʹӨڹ͢Δͷ ʮૄ݁߹ʯͰɺʮΛ͚ͨʯίʔυΛॻ͔ͳ͍ͱ͍͚ͳ͍ 1ϑΝΠϧͷindex.phpͰશͯΛॲཧ͢Δͷɾɾɾ ೝূपΓͳͲͷॲཧͪΌΜͱ࣮ͷ͋ΔϑϨʔϜϫʔΫΛ͏ͳͲͳͲ ύοέʔδཧγεςϜॏཁ
ςετΛॻ͜͏ ن͕େ͖͍΄Ͳɺςετͷنେ͖͘ͳΔ ਓతෛ୲Λগ͠ͰݮΒͨ͢ΊʹɺςετΛ͖ͪΜͱॻ͍ͯෆཁͳϛεΛݮΒͦ͏ ςετࣗಈԽʹΑͬͯʮશʹʯόάΛ͛ΔΘ͚Ͱͳ͍͕ɺجຊతͳϛεͷ େ෦͙͜ͱ͕Ͱ͖Δ ͩ͘Βͳ͍ϛεΛݮΒͯ͠ɺʮຊདྷͷۀʯʹूதͰ͖ΔΑ͏ʹ ςετͦͷͷΛॻ͘ίετ͔͔ΔͷͰɺΧόϨοδͲ͜·ͰऔΔ͔ όϥϯεେࣄ
GitͳͲͷόʔδϣϯཧγεςϜ ͳͲͱॻ͍͕ͨɺن͕େ͖͚Εେ͖͍΄ͲGitʹͨ͠΄͏͕͈́ ෳਓͰͷ։ൃΛ࠷ॳ͔Βҙࣝͨ͠ࢄܕͷόʔδϣϯཧγεςϜ ࣮: LinuxΧʔωϧɺओཁͳΞϓϦέʔγϣϯϑϨʔϜϫʔΫͷଟ͘ ʮ୭͕ʯʮ͍ͭʯʮͳΜͷͨΊʹʯมߋΛՃ͔͑ͨཤྺΛ͢ ͕͋ͬͨ߹ʹ؆୯ʹΓ͕͠Ͱ͖Δ GitHubɺGitHub Enterprise(ΦϯϓϨ༻)ɺGitLabɺGiteaͳͲ ͍Ζ͍ΖͳGitϗεςΟϯάαʔϏεͷબࢶ͋Δ
CIπʔϧΛಋೖ͠Α͏ Gitɺςετίʔυͱ࿈ܞͯ͠ɺίʔυʹมߋ͕Ճ͑ΒΕͨΒࣗಈͰςε τ͕ΔΑ͏ͳΈΛ࡞Δ͜ͱ͕Ͱ͖Δ ܧଓతΠϯςάϨʔγϣϯʹΑͬͯɺʮมߋѱͩʯͱ͍͏ؾ࣋ͪΛେ ෯ʹݮͤ͞Δ͜ͱ͕Ͱ͖Δ CIπʔϧ͕Δ࢟ΛΈ͍ͯΔͱ৺͕҆Β͔ʹͳΔ
2. ΞϓϦέʔγϣϯσϓϩΠͷΈΛม͑Δ
σϓϩΠͷࣗಈԽ CIπʔϧʹʮύΠϓϥΠϯʯʮϫʔΫϑϩʔʯͱ͍ͬͨػೳ͕͋Δ ͋Δಈ࡞Λ࣮ߦͤͯ͞ޭͨ͠Β࣍ͷॲཧʹߦ͘ͳͲ ςετ͕ͬͯͳ͚Ε։ൃڥʹσϓϩΠ͢Δɺͱ͔ ਓͷखʹΑΔԹ͔Έͷ͋ΔσϓϩΠ͔͔࣌ؒΔ͠ϛε͋Δ
3. ΠϯϑϥͷΈΛม͑Δ
Ϋϥυ vs ΦϯϓϨ ผʹΫϥυ͡Όͳ͍͍ͯ͘Μ͡ΌͶʢͳ΄͡ʣ ਖ਼ɺͳΜͷతͰͲ͜ʹίετΛ͖͍͔͕ͨ͞ॏཁͰ͔͠ͳ͍ DropboxΫϥυʹҠߦ͚ͨ͠Ͳ݁ہΦϯϓϨʹͨ͠Β͍͠ ͋ΔҰఆͷنΛ͑ΔͱɺΦϯϓϨͷ΄͏͕ίετԼ͕Δ ʢͱࢥ͏ʣ
Infrastructure as Codeͱߏཧ ߏཧͷࣗಈԽͱɺNWϚγϯͷཧΛίʔυϕʔεͰߦ͏͜ͱ AnsibleɺTerraformɺChefͳͲ͍Ζ͍Ζͳπʔϧ͕͋Δ ਓͷखʹΑΔԹ͔Έͷ͋ΔཧϚγϯͷௐୡʮۃྗʯආ͚͍ͨ ߏཧΛίʔυԽˠGitཧ͢Δ͜ͱͰԿ͕͍ͭߦΘΕ͔ͨ໌֬ʹ͢Δ ίϯςφԽɺΫϥυωΠςΟϒԽ͜Εͷ1ͭͷखஈͰ͔͠ͳ͍ ·ͣϩʔΧϧ։ൃڥͱݴͬͨখ͍͞ͱ͜Ζ͔Β͡Ί͍ͯ͘
ϩάͷՄࢹԽɾεέʔϦϯά ߏཧΠϯϑϥΛࣗಈԽ͢Δ͜ͱͰͰ͖Δ͜ͱʹͳΔ͜ͱͷ1ͭ εέʔϥϒϧͳߏʹͰ͖ΔͷͰɺՄ༻ੑ͕୲อ͍͢͠ ϩάΛՄࢹԽπʔϧʹ৯ΘͤΔ͜ͱͰϞχλϦϯάͷίετΛԼ͛Δ ՄࢹԽʹΑͬͯϢʔβʔ֤୲ऀͷಈ͖͕ಡΊΔΑ͏ʹͳΔ ͍Βͳ͍ػೳͷআɺύϑΥʔϚϯεվળͷͨΊͷେ͖ͳࢀߟࢿྉʹͳΔ ʢ͋Μ·Γͷৄ͍͠Ͱͳ͍ͷͰৄ͍͠ਓཔΜͩʣ
3. νʔϜͷߟ͑ํΛม͑Δ
มԽɺࠓ·ͰͷߏѱͰͳ͍ Α͘ੲͷߏʹจ۟Λݴ͏ਓ͕͍Δ͕ɺͦΕҧ͏ 10ޙʹࠓͷʮֵ৽తͳߟ͑ํʯͩͬͯϨΨγʔʹͳ͍ͬͯΔ͔ ࠓ·Ͱͷߏͷྑ͞Λ׆͔͠ͳ͕Βɺ৽͍͠ߏΛߟ͑Δ ਓߏܟҙΛͬͯࣄ͍ͨ͠
νʔϜϏϧσΟϯά Έ͕มΘΔͱ͍͏͜ͱɺਓͷߟ͑ํม͑Δඞཁ͕͋Δ ࣗಈԽѱɺมԽѱͩͱࢥ͍ͬͯΔਓͨͪʹมԽΛڧཁ͢Δͷ͍͠ ͳͥͦ͏͖͢ͳͷ͔ɺ͖ͪΜͱ্ʢ͞Βʹͦͷ্ʣͳͲަ͑ͯ ਅʹ࣌ؒΛॻ͚ͯٞ͢Δ֮ޛඞཁ ՄೳͰ͋ΕʑͷΠϯϑϥͱผͷ෦ୂΛ࡞ͬͯঃʑʹҠߦ͢Δͷ͕ ·͍͜͠ͱ͋ΔʢʑͷۀͷӨڹ͋ΔͷͰʣ
·ͱΊ
·ͱΊ DevOpsɺ։ൃ͕։ൃʹɺӡ༻͕ӡ༻ʹूத͢ΔͨΊʹޓ͍ʹ औΒͳ͚ΕͳΒͳ͍าΈدΓͷಈ͖ ܧଓతʹՁΛఏڙ͠ଓ͚Δ͖αʔϏε͔Ͳ͏͔ݟۃΊΔ ࣾʹཧղͯ͘͠ΕΔਓΛΊΔ ։ൃɾӡ༻ͷڠྗମ੍Λ࡞Δ طଘҊ݅ʹ͓͚ΔDevOps࣮ݱͷಓͷΓ͍
࠷ޙʹ͏Ұ
DevOpsจԽʂʂʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ