デプロイのたびに障害が起こるシステムを安全にした話
by
OMOTO Kenji
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
σϓϩΠͷͨͼʹো͕ى͜ΔγεςϜΛ ҆શʹͨ͠ Sansan×M3 Tech Night ʙϨΨγʔγεςϜʹཱ͔ͪ͑ʂʙ M3 খຊ݈࢘
Slide 2
Slide 2 text
Slide 3
Slide 3 text
• ϓϩάϥϚʔ̒ / ΤϜεϦʔ̏ • ΤϜεϦʔͰɺج൫։ൃνʔϜ • ෳࣄۀͰ༻͢ΔαʔϏεͷ։ൃɾӡ༻ • ࣾͷ։ൃڥͷվળ • ϓϩάϥϛϯάݴޠ: Python, Ruby, Java, Kotlin, Scalaʢͭ·Γશͯʣ খຊ݈࢘ʢ͓ͱ͚Μ͡, doloopwhileʣ
Slide 4
Slide 4 text
ϝʔϧίϯγΣϧδϡ • ͷձһ͚ϝϧϚΨ৴γεςϜ • Ruby on Rails • ߴػೳʢ։෧ܭଌɺA/BςετɺαʔϏεؒ࿈ܞͳͲʣ • ຖ݄500ສ௨Ҏ্ͷϝʔϧΛૹ৴ • ॏཁͳϨΨγʔγεςϜ ͚ͩͲɾɾɾ2016͝Ζ·Ͱ σϓϩΠ͕ਏ͔ͬͨʂʂ
Slide 5
Slide 5 text
͗͢͠ΔσϓϩΠ • αʔόʔʹSSH͠ɺख࡞ۀͰσϓϩΠ • εςοϓ͕ଟ͍ • ϦϦʔε༰ʹΑͬͯ࡞ۀखॱ͕ҟͳΔ • ࣌ؒత੍ʢϝϧϚΨΛࢭΊͯɺͦͷؒʹ࡞ۀ͢Δʣ • खॱυΩϡϝϯτԽ͞Ε͍ͯͳ͍
Slide 6
Slide 6 text
͗͢͠ΔσϓϩΠ • αʔόʔʹSSH͠ɺख࡞ۀͰσϓϩΠ • εςοϓ͕ଟ͍ • ϦϦʔε༰ʹΑͬͯ࡞ۀखॱ͕ҟͳΔ • ࣌ؒత੍ʢϝϧϚΨΛࢭΊͯɺͦͷؒʹ࡞ۀ͢Δʣ • खॱυΩϡϝϯτԽ͞Ε͍ͯͳ͍ →৽ਓ͕࡞ۀ͢ΔͱඞͣোΛى͜͢
Slide 7
Slide 7 text
σϓϩΠͰͯ͘͠։ൃͰ͖ͳ͍ ޭͨ͠߹Ͱ • σϓϩΠத৴Ͱ͖ͳ͍ͷͰɺεέδϡʔϧௐ͕ඞཁ • σϓϩΠ࡞ۀʹ30 • σϓϩΠޙͷ֬ೝ࡞ۀʹ15 ো͕͓͖Δͱ • ௐࠪͱ෮چ࡞ۀʹ30 • ૹΕͳ͔ͬͨѼઌʹ࠶ૹ৴͢Δͷʹ̎ɾ̏࣌ؒ • σϓϩΠͨ͢͠Ίʹɺ͏Ұεέδϡʔϧௐ
Slide 8
Slide 8 text
ʢσϓϩΠ͢Δͷʹ͕͔͔࣌ؒΔ͔Βʣ ͦΜͳখ͞ͳෆ۩߹Λ͢ͷ࣌ؒͷແବͰ͠ΐ ࣌ݴΘΕͨ͜ͱ
Slide 9
Slide 9 text
͜Μͳͷ͓͔͘͠ͳ͍ʁ @2016 य़ Github1175ճσϓϩΠ͍ͯ͠Δͷʹʂʢ2012ࠒͷʣ ͬͱ։ൃ͢Δ͕࣌ؒཉ͍͠ʂ
Slide 10
Slide 10 text
Ͱɺࠓಈ͍͍ͯΔͷࢭΊΒΕͳ͍ • ໌ɺϝϧϚΨͷ৴͕͋Δ • དྷिɺࢪࡦͷͨΊʹػೳΛՃ͢Δ • དྷ݄ɺ৽͍͠ϝϧϚΨΛՃ͢Δ • ͦͦࠓͷঢ়ଶͰԿ͔มߋΛՃ͑Δ͜ͱةݥʂʂ → ࠓ͋ΔͷΛগͣͭ͠վྑ͢Δ͜ͱʹ
Slide 11
Slide 11 text
σϓϩΠखॱॻΛ࡞ͬͨ サーバーにSSHする cd /app/mail_concierge/mail_concierge/ git pull origin master サーバーを再起動 テスト配信する ͦΕ·Ͱͷखॱॻ ۩ମతʹԿΛ͢Ε͍͍ͷʁ ৽ਓʹ͔Βͳ͍
Slide 12
Slide 12 text
ςετ৴͢Δ NBJMDPOUFOUTYMTΛμϯϩʔυ͢Δ ʮࣄલੜίϯςϯπʯը໘͔ΒNBJMDPOUFOUTYMTΛΞοϓϩʔυ͢Δ ͜ͷ࣌ʮʯࠓΛࢦఆ͢Δ ʮ৴ొʯը໘͔ΒҎԼͷ༰Λೖྗ͠ɺʮ৴ొʯ͢Δ αʔϏεʮ৴ςετʯ ϝϧϚΨʮ৴ςετʗ)5.-ʯ ϝʔϧςϯϓϨʔτʮσϓϩΠ࣌ࢼݧ৴ʯʮσϓϩΠ࣌ࢼݧ৴ʯ ৴Ϧετʮ৴ϦετͷछྨΛબ৴ςετ༻Ϧετʯ ৴໊ʮσϓϩΠ࣌ࢼݧ৴::::..%%ʯ ϓϨ৴ʮʯ উऀܾఆϩδοΫʮ։෧ͷΫϦοΫʯ ϓϨ৴։࢝࣌ݱࡏ࣌ࠁ͔Βޙ ຊ৴։࢝࣌ݱࡏ࣌ࠁ͔Βޙ ৴ରϥϯΫʮ৴ରϥϯΫΛࢦఆ͢Δ/0ʯ ৽͍͠खॱॻ ίϐϖ͢Δ͚ͩͰΑ͍ͷͰɺ୭Ͱ҆શʹ࡞ۀͰ͖Δɻ
Slide 13
Slide 13 text
σϓϩΠͷࣗಈԽ • FabricɾCapistranoͳͲΘͳ͔ͬͨ • ϝϯόʔʹ༻ܦݧ͕ͳ͍ʢௐΔ͕͍࣌ؒͬͨͳ͍ʣ • ࣾͰਪ͍ͯ͠Δਓ͍ͳ͍ • ΦʔόʔεϖοΫʢॱʹίϚϯυΛ࣮ߦͰ͖Εेʣ • ֤αʔόʔʹஔ͍ͨBashεΫϦϓτΛSSHͰ࣮ߦ͢Δ • ࣗಈԽͰ͖ΔͷɺRubyίʔυͷσϓϩΠͷΈ
Slide 14
Slide 14 text
νΣοΫ࡞ۀͷࣗಈԽ • DBଓͷ֬ೝ • աڈʹDBଓपΓͰো͕ଟ͔ͬͨ • ֤DBʹଓ͠ΫΤϦ͢ΔεΫϦϓτΛՃ • ςετ৴ΛSeleniumͰࣗಈԽ • σϓϩΠޙͷ֬ೝ࡞ۀ͕ෆཁʹͳͬͨ • ࣦഊ࣌ʹ௨͞ΕΔͷͰσϓϩΠޙ์ஔͰOK
Slide 15
Slide 15 text
վྑ & վྑ • εϐʔυΞοϓ • Git ͷϛϥʔϦϯάϨϙδτϦ • Ruby ͷϥΠϒϥϦΛΩϟογϡ • ͨ·ʹߦ͏ख࡞ۀʹπʔϧΛಋೖ • crontab ͷॻ͖͑ɿ whenever • DBͷϚελʔσʔλߋ৽ɿ seed_fu
Slide 16
Slide 16 text
σϓϩΠ͏ා͘ͳ͍ʂ վળʹཁͨ͠ظؒɿ20164݄ʙ12݄ σϓϩΠ࡞ۀ5Ͱྃ͠·͢ ϝϧϚΨΛࢭΊΔඞཁ͋Γ·ͤΜ ࣄނ΄ͱΜͲى͖·ͤΜ ։ൃʹ࣌ؒΛׂ͚ΔΑ͏ʹͳΓ·ͨ͠
Slide 17
Slide 17 text
ͳ্ͥख͍ͬͨ͘ͷ͔ʁ গͣͭ͠ʮࠓ͙͢ޮՌ͕͋Δͷʯ͔ΒखΛ͚ͭͨ • ʮվળͰ࣌ؒઅ → ༨ͬͨ࣌ؒͰ͞Βʹվળʯ • Ұվળ͢Δͱ৽ͨͳվળ͕ݟ͔ͭΔ • ্࢘ར༻ऀͱͷަব͕ෆཁͩͬͨ
Slide 18
Slide 18 text
ૣ͍ஈ֊Ͱʮݟ͑ΔԽʯ͢Δͷ͕େࣄ ࠷ॳʹʢෆ֨ͰʣखॱॻίʔυΛ࡞ͬͨ • ݟ͑ΔͷվળͰ͖Δ • ϨϏϡʔͰ͖Δ • มߋ͢Εɺϝϯόʔશһ͕ԸܙΛड͚Δ
Slide 19
Slide 19 text
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ https://m3.recruitment.jp/engineer/ ΤϯδχΞؒืूதͰ͢
Slide 20
Slide 20 text