Save 37% off PRO during our Black Friday Sale! »

DevOps for beginners

Ad22fcf5773b906c08330f4d57242212?s=47 Kohei Ota
June 30, 2018
420

DevOps for beginners

Ad22fcf5773b906c08330f4d57242212?s=128

Kohei Ota

June 30, 2018
Tweet

Transcript

  1. DevOps ͜ͱ͸͡Ί(ॳڃฤ) At Πϯϑϥษڧձ
 Presented by inductor

  2. ͋͐͡Μͩ ࣗݾ঺հ DevOpsͱ͸ ·ͱΊ

  3. ࣗݾ঺հ inductor (Twitter: @_inductor_) Z◦Z◦φϯτΧ͍ͬͯ͏ձࣾͷ
 ΠϯϑϥΤϯδχΞ(AWS) աڈͷ৬৔Ͱ։ൃɾӡ༻ͷ
 ܦݧ͋Γ

  4. DevOpsͬͯͳ͋ʹʁ

  5. ࠓ೔͸͜Ε͚֮ͩ͑ͯؼ͍ͬͯͩ͘͞

  6. DevOps͸จԽʂʂʂ

  7. ʁʁʁ

  8. ࡢࠓͷITۀքʹ͓͚Δମ࣭ͷมԽ ΞϓϦέʔγϣϯ΍Πϯϑϥͷ։ൃεΩʔϜ͕มԽͭͭ͋͠Δ ύοέʔδΛ1౓͖ΓͰ౉ͯ͠ऴΘΓͰࡁ·ͳ͍͜ͱ͕૿͖͑ͯͨ ITͷਐԽͷ଎౓ʹ଱͑͏ΔΑ͏ʹ͍ͨ͠(e.g. ੬ऑੑରԠ, ػೳ௥Ճ etc) ΞδϟΠϧͳ։ൃΛऔΓೖΕΔۀքɾϏδωε͕૿͑ͨ Ϗδωεʹର͢Δεϐʔυײ΍ɺ৽͍͠΋ͷͰΞϐʔϧ͍ͨ͠ͱ͍͏
 ϚʔέςΟϯάઓུతଆ໘ͳͲͷاըαΠυͷཁ๬ʹ଱͑ΒΕΔ࿮૊Έͮ͘Γ

  9. ͭ·ΓɺΞϓϦ։ൃ͸ػೳ௥Ճ΍
 ࢓༷มߋͳͲʹର͢Δ
 εϐʔυΛٻΊΒΕͯେมʂ

  10. Πϯϑϥӡ༻ͷؾ࣋ͪ΋೷͍ͯΈ·͠ΐ͏

  11. ӡ༻ʹ΋େ͖ͳෛ୲͕ൃੜ͢Δ ӡ༻ͷۀ຿͸ʮ೔ʑͷ࡞ۀʯΛԁ׈ʹਐΊΔ͜ͱ มԽ͕͋Δͱ࡞ۀऀͷίετ্͕͕ͬͯ͠·͏ ࡞ۀ಺༰ɺ࢓༷มߋʹର͢ΔϚχϡΞϧͳͲͷυΩϡϝϯτͷ௥ै σϓϩΠ࡞ۀ͕िʹ1ճʁͳΊͯΜͷʁ ͦ΋ͦ΋ӡ༻ʹίετ͔͚ͨ͘ͳ্͍ͬͯͷਓୡ͕ݴ͏͔Βͦ͜ɺ
 ೔ʑͷۀ຿ͷͨΊʹͦͦ͜͜ΪϦΪϦͷίετͰճͯ͠ΔΜͰ͕͢

  12. ӡ༻͸ɺ೔ʑͷۀ຿Λ
 ҆શʹ͜ͳ͍ͨ͠ʂ
 ༨ܭͳมԽ͸ɺ
 ۃྗՃ͑ͳ͍Ͱཉ͍͠ʂ

  13. όνόνͯ͠·͢Ͷ

  14. Ͱ΋଴ͬͯʁ

  15. ։ൃ΍ӡ༻ͷຊདྷͷ໨తΛߟ͑Δ ։ൃ͸ɺʮՁ஋ʯΛʮ࡞Γଓ͚Δ͜ͱʯʹҙຯ͕͋Δ ӡ༻͸ɺʮՁ஋ʯΛʮಧ͚ଓ͚Δ͜ͱʯʹҙຯ͕͋Δ ͲͪΒ΋ɺϏδωεʹԠ͑ΔͨΊͷखஈͰ͋Δ ӡ༻΋։ൃ΋ɺຊདྷͷ໨త͸ಉ͡ͳΜͰ͢ʂ

  16. ͦ͜ͰZOZOSUITDevOpsͰ͢Α

  17. DevOpsͬͯͳ͋ʹʁ

  18. DevOpsͰΑࣖ͘ʹ͢Δݴ༿ ΞδϟΠϧ։ൃ ϚΠΫϩαʔϏεΞʔΩςΫνϟ Ϋϥ΢υ Infrastructure as Code ߏ੒؅ཧ ࣗಈԽ CI/CDύΠϓϥΠϯ

    ϩάɾσʔλͷՄࢹԽ
  19. DevOpsͱ͸ ϏδωεͷՁ஋Λސ٬ʹಧ͚ΔͨΊʹɺʮ։ൃ(Dev)ʯͱʮӡ༻(Ops)ʯ͕ Ұؙͱͳͬͯಈ͜͏ͱ͢ΔҰͭͷߟ͑ํ ۩ମతʹ͸ڠྗ͠߹͏͜ͱͰɺνʔϜײͰੜ͡Δຎࡲ΍Φʔόʔϔου ΛݮΒͨ͢Ίʹಈ͘͜ͱΛࢦ͢ ʮ۩ମతͳʯఆٛ͸ͳ͍ ͜͜10೥ऑͰɺେମͷ࿮૊Έ͕ܾ·Γͭͭ͸͋Δ

  20. DevOpsʹΑ͋͘Δצҧ͍ DevOps͸۩ମతͳख๏Ͱ͸ͳ͍ CI/CDɺίϯςφɺΫϥ΢υͳͲΛಋೖ͢Δʹ͸ʮ४උʯ͕ඞཁ ͍͖ͨͩͳΓಥͬࠐΜͰ΋޾ͤʹ͸ͳΕͳ͍ ͨͩͷແܭըͳࣗಈԽ͸ଐਓԽΛੜΉͷͰةݥ ൿ఻ͷλϨࣗಈԽεΫϦϓτ

  21. DevOpsΛཧղͨ͠ਓ͕ɺ૊৫΍νʔϜͷ
 ࢓૊ΈΛগͣͭ͠ม͍͑ͯ͘ඞཁ͕͋Γ·͢

  22. 1. ΞϓϦέʔγϣϯ։ൃͷ࢓૊ΈΛม͑Δ

  23. ϚΠΫϩαʔϏεΞʔΩςΫνϟ ܧଓతʹมߋΛՃ͑ΔͨΊʹ͸ɺΞϓϦέʔγϣϯઃܭ΋ॏཁ 1ίʔυͷมԽ͕10ݸͷΞϓϦʹӨڹ͢Δͷ͸ ʮૄ݁߹ʯͰɺʮ੹຿Λ෼͚ͨʯίʔυΛॻ͔ͳ͍ͱ͍͚ͳ͍ 1ϑΝΠϧͷindex.phpͰશͯΛॲཧ͢Δͷ͸ɾɾɾ ೝূपΓͳͲͷॲཧ͸ͪΌΜͱ࣮੷ͷ͋ΔϑϨʔϜϫʔΫΛ࢖͏ͳͲͳͲ ύοέʔδ؅ཧγεςϜॏཁ

  24. ςετΛॻ͜͏ ن໛͕େ͖͍΄Ͳɺςετͷن໛΋େ͖͘ͳΔ ਓతෛ୲Λগ͠Ͱ΋ݮΒͨ͢Ίʹ΋ɺςετΛ͖ͪΜͱॻ͍ͯෆཁͳϛεΛݮΒͦ͏ ςετࣗಈԽʹΑͬͯʮ׬શʹʯόάΛ๷͛ΔΘ͚Ͱ͸ͳ͍͕ɺجຊతͳϛεͷ
 େ෦෼͸๷͙͜ͱ͕Ͱ͖Δ ͩ͘Βͳ͍ϛεΛݮΒͯ͠ɺʮຊདྷͷۀ຿ʯʹूதͰ͖ΔΑ͏ʹ ςετͦͷ΋ͷΛॻ͘ίετ͸͔͔ΔͷͰɺΧόϨοδͲ͜·ͰऔΔ͔͸
 όϥϯεେࣄ

  25. GitͳͲͷόʔδϣϯ؅ཧγεςϜ ͳͲͱॻ͍͕ͨɺن໛͕େ͖͚Ε͹େ͖͍΄ͲGitʹͨ͠΄͏͕͈́ ෳ਺ਓͰͷ։ൃΛ࠷ॳ͔Βҙࣝͨ͠෼ࢄܕͷόʔδϣϯ؅ཧγεςϜ ࣮੷: LinuxΧʔωϧɺओཁͳΞϓϦέʔγϣϯϑϨʔϜϫʔΫͷଟ͘ ʮ୭͕ʯʮ͍ͭʯʮͳΜͷͨΊʹʯมߋΛՃ͔͑ͨཤྺΛ࢒͢ ໰୊͕͋ͬͨ৔߹ʹ؆୯ʹ੾Γ໭͕͠Ͱ͖Δ GitHubɺGitHub Enterprise(ΦϯϓϨ༻)ɺGitLabɺGiteaͳͲ
 ͍Ζ͍ΖͳGitϗεςΟϯάαʔϏεͷબ୒ࢶ͸͋Δ

  26. CIπʔϧΛಋೖ͠Α͏ Gitɺςετίʔυͱ࿈ܞͯ͠ɺίʔυʹมߋ͕Ճ͑ΒΕͨΒࣗಈͰςε τ͕૸ΔΑ͏ͳ࢓૊ΈΛ࡞Δ͜ͱ͕Ͱ͖Δ ܧଓతΠϯςάϨʔγϣϯʹΑͬͯɺʮมߋ͸ѱͩʯͱ͍͏ؾ࣋ͪΛେ ෯ʹ௿ݮͤ͞Δ͜ͱ͕Ͱ͖Δ CIπʔϧ͕૸Δ࢟ΛΈ͍ͯΔͱ৺͕҆Β͔ʹͳΔ

  27. 2. ΞϓϦέʔγϣϯσϓϩΠͷ࢓૊ΈΛม͑Δ

  28. σϓϩΠͷࣗಈԽ CIπʔϧʹ͸ʮύΠϓϥΠϯʯ΍ʮϫʔΫϑϩʔʯͱ͍ͬͨػೳ͕͋Δ ͋Δಈ࡞Λ࣮ߦͤͯ͞੒ޭͨ͠Β࣍ͷॲཧʹߦ͘ͳͲ ςετ͕૸ͬͯ໰୊ͳ͚Ε͹։ൃ؀ڥʹσϓϩΠ͢Δɺͱ͔ ਓͷखʹΑΔԹ͔Έͷ͋ΔσϓϩΠ͸࣌ؒ΋͔͔Δ͠ϛε΋͋Δ

  29. 3. Πϯϑϥͷ࢓૊ΈΛม͑Δ

  30. Ϋϥ΢υ vs ΦϯϓϨ ผʹΫϥ΢υ͡Όͳͯ͘΋͍͍Μ͡ΌͶʢ͸ͳ΄͡ʣ ਖ਼௚ɺͳΜͷ໨తͰͲ͜ʹίετΛ͖͍͔͕ͨ͞ॏཁͰ͔͠ͳ͍ Dropbox͸Ϋϥ΢υʹҠߦ͚ͨ͠Ͳ݁ہΦϯϓϨʹ໭ͨ͠Β͍͠ ͋ΔҰఆ਺ͷن໛Λ௒͑ΔͱɺΦϯϓϨͷ΄͏͕ίετ͸Լ͕Δ
 ʢͱࢥ͏ʣ

  31. Infrastructure as Codeͱߏ੒؅ཧ ߏ੒؅ཧͷࣗಈԽͱ͸ɺNW΍Ϛγϯͷ؅ཧΛίʔυϕʔεͰߦ͏͜ͱ AnsibleɺTerraformɺChefͳͲ͍Ζ͍Ζͳπʔϧ͕͋Δ ਓͷखʹΑΔԹ͔Έͷ͋Δ෺ཧϚγϯͷௐୡ͸ʮۃྗʯආ͚͍ͨ ߏ੒؅ཧΛίʔυԽˠGit؅ཧ͢Δ͜ͱͰԿ͕͍ͭߦΘΕ͔ͨ໌֬ʹ͢Δ ίϯςφԽɺΫϥ΢υωΠςΟϒԽ͸͜Εͷ1ͭͷखஈͰ͔͠ͳ͍ ·ͣ͸ϩʔΧϧ΍։ൃ؀ڥͱݴͬͨখ͍͞ͱ͜Ζ͔Β͸͡Ί͍ͯ͘

  32. ϩάͷՄࢹԽɾεέʔϦϯά ߏ੒؅ཧ΍ΠϯϑϥΛࣗಈԽ͢Δ͜ͱͰͰ͖Δ͜ͱʹͳΔ͜ͱͷ1ͭ εέʔϥϒϧͳߏ੒ʹ΋Ͱ͖ΔͷͰɺՄ༻ੑ͕୲อ͠΍͍͢ ϩάΛՄࢹԽπʔϧʹ৯ΘͤΔ͜ͱͰϞχλϦϯάͷίετΛԼ͛Δ ՄࢹԽʹΑͬͯϢʔβʔ΍֤୲౰ऀͷಈ͖͕ಡΊΔΑ͏ʹͳΔ ͍Βͳ͍ػೳͷ࡟আ΍ɺύϑΥʔϚϯεվળͷͨΊͷେ͖ͳࢀߟࢿྉʹͳΔ ʢ͋Μ·Γ๻ͷৄ͍͠෼໺Ͱ͸ͳ͍ͷͰৄ͍͠ਓཔΜͩʣ

  33. 3. νʔϜͷߟ͑ํΛม͑Δ

  34. มԽ΋ɺࠓ·Ͱͷߏ੒΋ѱͰ͸ͳ͍ Α͘ੲͷߏ੒ʹจ۟Λݴ͏ਓ͕͍Δ͕ɺͦΕ͸ҧ͏ 10೥ޙʹ͸ࠓͷʮֵ৽తͳߟ͑ํʯͩͬͯϨΨγʔʹͳ͍ͬͯΔ͔΋ ࠓ·Ͱͷߏ੒ͷྑ͞Λ׆͔͠ͳ͕Βɺ৽͍͠ߏ੒Λߟ͑Δ ਓ΋ߏ੒΋ܟҙΛ෷ͬͯ࢓ࣄ͍ͨ͠

  35. νʔϜϏϧσΟϯά ࢓૊Έ͕มΘΔͱ͍͏͜ͱ͸ɺਓͷߟ͑ํ΋ม͑Δඞཁ͕͋Δ ࣗಈԽ͸ѱɺมԽ͸ѱͩͱࢥ͍ͬͯΔਓͨͪʹมԽΛڧཁ͢Δͷ͸೉͍͠ ͳͥͦ͏͢΂͖ͳͷ͔ɺ͖ͪΜͱ্௕ʢ͞Βʹͦͷ্௕ʣͳͲ΋ަ͑ͯ
 ਅ݋ʹ࣌ؒΛॻ͚ͯٞ࿦͢Δ֮ޛ͸ඞཁ ՄೳͰ͋Ε͹೔ʑͷΠϯϑϥͱ͸ผͷ෦ୂΛ࡞ͬͯঃʑʹҠߦ͢Δͷ͕
 ๬·͍͜͠ͱ΋͋Δʢ೔ʑͷۀ຿΁ͷӨڹ౓΋͋ΔͷͰʣ

  36. ·ͱΊ

  37. ·ͱΊ DevOps͸ɺ։ൃ͕։ൃʹɺӡ༻͕ӡ༻ʹूத͢ΔͨΊʹޓ͍ʹ
 औΒͳ͚Ε͹ͳΒͳ͍าΈدΓͷಈ͖ ܧଓతʹՁ஋Λఏڙ͠ଓ͚Δ΂͖αʔϏε͔Ͳ͏͔ݟۃΊΔ ࣾ಺ʹཧղͯ͘͠ΕΔਓΛ޿ΊΔ ։ൃɾӡ༻ͷڠྗମ੍Λ࡞Δ طଘҊ݅ʹ͓͚ΔDevOps࣮ݱ΁ͷಓͷΓ͸௕͍

  38. ࠷ޙʹ΋͏Ұ౓

  39. DevOps͸จԽʂʂʂ

  40. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ