2021.04.26 Pepabo Tech Talk -入社1年以内のメンバーが語る、ペパボのSREチームの取り組み-
ϖύϘͷSREͱͯ͠ಇ͖͔͚ͬ͘ྮ ྑ / GMO PEPABO inc.2021.04.26 Pepabo Tech Talk-ೖࣾ1Ҏͷϝϯόʔ͕ޠΔɺϖύϘͷSREνʔϜͷऔΓΈ-1
View Slide
2ࠓ͓͢Δ͜ͱϖύϘʹೖࣾͯ͠͏͙͢Ͱ1ɻͱͱະܦݧ͔Β͜ͷۀքʹඈͼࠐΜͰɺͲΜͳ͖͔͚ͬͰΠϯϑϥपΓͷ͓ࣄʹڵຯΛ࣋ͬͯɺͳͥࠓϖύϘͰSREͱͯ͠ಇ͍͍ͯΔ͔ͱ͍ͬͨͱ͜Ζɺೖ͔ࣾͯ͠Βͷۤ࿑ͨ͠ܦݧͳͲΛɺࣗͷ͜Ε·ͰͷΩϟϦΞΛ৫Γަ͓͍͖͍ͥͯͯͨ͠ͱࢥ͍·͢ɻ
3ࣗݾհٕज़෦ϓϥοτϑΥʔϜάϧʔϓʢSREʣ2021 த్ೖࣾྮɹྑ Ryo Nakamine● ࣾͰ naryo ͱݺΕ͍ͯΔ● ओʹminneͷΠϯϑϥج൫Λ୲● ԭೄग़🌴● झຯ͓স͍ɾόϥΤςΟ൪ΛݟΔ͜ͱTwitter : @r_nakaminee
1. ͜Ε·Ͱͷҟ৭ͳܦྺ4
51. ͜Ε·Ͱͷҟ৭ͳܦྺ25ࡀ͙Β͍·Ͱ͍ΖΜͳ͜ͱͬͯͨ• ֶੜ࣌ΨιϦϯελϯυͰόΠτ• ଔۀޙWeb੍࡞ձࣾͰσβΠϯۀ• αʔλʔΞϯμΪʔ͞ΜͰશࠃΛճͬͨΓָͦ͠͏ͳ͜ͱΛͻͨ͢Β͍ͬͯͨ࣌
1. ͜Ε·Ͱͷҟ৭ͳܦྺ݁ࠗΛ͖͔ͬʹʹԭೄͰಇ͘͜ͱʹ͜ͷλΠϛϯάͰࢠڙत͔Γɺࠓ·ͰΈ͍ͨʹ͍ΖΜͳͱ͜ΖͰಇ͘͜ͱ͕Ͱ͖ͳ͘ͳͬͨɻ6
71. ͜Ε·Ͱͷҟ৭ͳܦྺSIerͱͯ͠ಇ͘ωοτϫʔΫΤϯδχΞͱͯ͠ۈ• ߦػؔපӃɺຽؒاۀͳͲͷωοτϫʔΫΛߏஙɾӡ༻ɾอक• جװܥͷαʔόʔɾADαʔόʔͷϦϓϨΠε ( Windows Server )• େֶிࣷʹPCΛ500~1000نͰΒ·͍ͨΓ͢Δ͜ͱ
1. ͜Ε·Ͱͷҟ৭ͳܦྺݩͰ։࠵͞Ε͍ͯͨϓϩάϥϛϯάεΫʔϧʹ௨͏8
91. ͜Ε·Ͱͷҟ৭ͳܦྺϓϩάϥϚͱͯ͠ͷΩϟϦΞΛελʔτҿ৯ళ͚ͷελʔτΞοϓͰϓϩάϥϚͱͯ͠ಇ͘• Microsoft AzureͷαʔόʔϨεΛ༻͍ͨγεςϜͷ։ൃ• PHP(Laravel) / PythonͰWebΞϓϦΛվमͨ͠Γ• ੵۃతʹΠϯϑϥΛཧ͢Δਓ͕͍ͳ͔ͬͨ
2. Πϯϑϥͷ͓ࣄʹڵຯΛ࣋ͭ10
112. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭΤϯδχΞͱͯ͠ͷΩϟϦΞΛελʔτҿ৯ళ͚ͷελʔτΞοϓͰΤϯδχΞͱͯ͠ಇ͘• Microsoft AzureͷαʔόʔϨεΛ༻͍ͨ։ൃ• PHP(Laravel) / PythonͰWebΞϓϦΛվमͨ͠Γ• ੵۃతʹΠϯϑϥΛཧ͢Δਓ͕͍ͳ͔ͬͨ
122. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭΤϯδχΞͱͯ͠ͷΩϟϦΞΛελʔτҿ৯ళ͚ͷελʔτΞοϓͰΤϯδχΞͱͯ͠ಇ͘• Microsoft AzureͷαʔόʔϨεΛ༻͍ͨ։ൃ• PHP(Laravel) / PythonͰWebΞϓϦΛվमͨ͠Γ• ੵۃతʹΠϯϑϥΛཧ͢Δਓ͕͍ͳ͔ͬͨ
2. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭੵۃతʹΠϯϑϥΛཧ͢Δਓ͕͍ͳ͔ͬͨ● ΤϯδχΞશମͷਓ3~5ਓఔ● AzureΛ༻͍ͨϓϥοτϑΥʔϜͷઃఆɾཧCI/CDͷඋ● ͱΓ͋͑ͣɺଞࣾͷࣄྫΛݟͳ͕Β͋Ε͜ΕͬͯΈΔ→ ͜ͷࠒ͔ΒΠϯϑϥपΓͷ͓ࣄʹڵຯΛ࣋ͭΑ͏ʹ13
2. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭΠϯϑϥΤϯδχΞͱͯ͠ͷΩϟϦΞ14https://speakerdeck.com/udzura/be-infra-engineer
2. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭΠϯϑϥΤϯδχΞͱͯ͠ͷΩϟϦΞ15https://speakerdeck.com/udzura/be-infra-engineer?slide=23
162. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭ•ϖύϘΛΔ͖͔͚ͬʹͳͬͨ•OpenStack༻͍ͯࣗࣾͰϓϥΠϕʔτΫϥυΛ։ൃɾӡ༻•ιϑτΣΞΤϯδχΞϦϯάΛ༻͍ͨΠϯϑϥͷ։ൃӡ༻ʹڵຯ͕͋ͬͨ
172. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭhttps://pepabo.connpass.com/eventhttps://tech.pepabo.com
182. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭ͜͏͍͏ํʑͷ͍ΔڥͰಇ͍ͯΈ͍ͨ
192. ϖύϘͷΠϯϑϥʹڵຯΛ࣋ͭ͜͏͍͏ํʑͷ͍ΔڥͰಇ͍ͯΈ͍ͨࡢͷ7݄ʹೖࣾ 🎉🎉
3. ೖࣾޙͷΈ20
213. ೖࣾޙͷΈ͔Βͳ͍͜ͱଟ͗͢
ѻ͍ͬͯΔ͜ͱͷઐੑ͕ߴͯ͘ɺશવख͕ग़ͳ͔ͬͨɻ͋Δఔษڧͯ͠ΔͭΓ͕ͩͬͨɺ͜͜ʹ͖ͯ΄ͱΜͲԿΘ͔Βͳ͍ঢ়ଶʹɻ3. ೖࣾޙͷΈ22KubernetesԿΘ͔Βͳ͍ϞχλϦϯάԿΘ͔Βͳ͍Linux / UnixԿΘ͔Βͳ͍22
233. ೖࣾޙͷΈLinuxԿΘ͔Βͳ͍• ΄ͱΜͲ৮ͬͨ͜ͱͳ͔ͬͨ○ cd / ls / mkdir / cat ͱ͔جຊతͳͭΛ͍͔ͭ͘...• ϩά͕Ͳ͜Ͱు͔ΕΔͷ͔Θ͔ͬͯͳ͍• τϥϒϧγϡʔςΟϯάͰ͖ͳ͍ʢํ͕Θ͔ͬͯͳ͍ʣ○ োରԠͰશ͘ʹཱͯͳ͍
243. ೖࣾޙͷΈϞχλϦϯάԿΘ͔Βͳ͍• ϞχλϦϯάπʔϧ (mackerelɺ grafana) ͷݟํ͕Θ͔Βͳ͍○ ͦͦϝτϦΫεҰͭҰͭͷҙຯΛͪΌΜͱཧղͯ͠ͳ͍○ stealͬͯͳʹʁΈ͍ͨͳϨϕϧ• ϝτϦΫεϩάΛݟͯͲ͏ΞϓϩʔνΛऔΕྑ͍͔Θ͔Βͳ͍• ϘτϧωοΫʹͳ͍ͬͯΔՕॴΛಛఆ͢Δͷʹ͕͔͔࣌ؒΔ
253. ೖࣾޙͷΈKubernetesԿΘ͔Βͳ͍• ͦͦશ͘৮ͬͨ͜ͱͳ͍• KuberenetesࣗମͷΤίγεςϜ͕ڊେ͗ͯ͢ɺͲ͔͜ΒखΛ͚ͨΒྑ͍͔Θ͔Βͳ͍• पลπʔϧͨ͘͞Μ͋ͬͯɺΩϟονΞοϓ͕େม
263. ೖࣾޙͷΈ• nginxɺApacheɺMySQLɺPostfixɺPowerDNSɺRedisɺMemcached• php-fpmɺunicorn• AWSɺGCPɺOpenStack• TerraformɺPuppetɺChefɺ• ConsulɺConsul TemplateɺConsul Alertsɺͦͷଞ....ଞʹΩϟονΞοϓ͠ͳ͍ͱ͍͚ͳ͍͜ͱ͕ͨ͘͞Μ...
273. ೖࣾޙͷΈ͔Βͳ͍͜ͱଟ͗͢
283. ೖࣾޙͷΈपΓͱͷࠩΛ͍͢͝ײ͡Δ
293. ೖࣾޙͷΈ• ܦݧٕज़ྗͪΖΜ• Ұ൪ڻ͍ͨͷεϐʔυײ○ ͋ͬͱ͍͏ؒʹ՝ͳ͍͗ͯ͘͠ಉ྅ୡ○ ҰํͰ՝Λཧղ͢Δͱ͜Ζ͔Β࢝·Δࢲ...• શવ͍͚ͭͳ͍पΓͱͷࠩΛ͍͢͝ײ͡Δ
303. ೖࣾޙͷΈͲ͏ͬͯΓΔ͔
313. ೖࣾޙͷΈͻͨ͢Βಉ྅ͷਅࣅΛͨ͠ΓɺࣗͷϓϥΠϕʔτͳڥΛཱͯͯݕূ͠·͘Δ• ಉ྅͕ௐࠪʹ༻͍ͯͨ͠ίϚϯυͳͲΛҰͭҰͭਅࣅͯ͠ݕূ• ࣗͷϓϥΠϕʔτͳڥΛߏங (AWS, GCP, DigtalOcean...)○ ۀͰ༻͍ͯ͠ΔιϑτΣΞΛͻͨ͢Βݕূͯ͠ߟͨ͠Γ○ k8sΫϥελΛߏஙͯ͠ɺڍಈΛ֬ೝͨ͠ΓʢΫϥυഁ࢈ҙ...ʣ• ಉ྅͕ॻ͍ͨίʔυΛΑ͘؍ͨ͠Γࣸܦͨ͠Γͯ͠σβΠϯύλʔϯͳͲΛΔ
323. ೖࣾޙͷΈͰ͖Δ͜ͱΛগͣͭ͠૿ͯ͠ɺՌग़͍ͯͬͨ͠࠷ॳখ͍͞ͱ͜Ζ͔Β• ߏཧπʔϧΛ༻͍ͯΞϥʔτͷᮢΛมߋ͢Δ• nginxͷssl_protocolsͷઃఆΛม͑Δ○ σϓϩΠ͕ΊͪΌͪ͘Όා͍...• ݹ͔͘Β՝ͱͳ͍ͬͯΔՕॴͷվળ׆ಈ͔Βੜͯ͠ɺ͍ΖΜͳͱ͜ΖʹऔΓΜͰ͍ͬͨ
333. ೖࣾޙͷΈӡ༻ͷվળʹ͚ͯࣗಈԽΛߦͬͨΓσϓϩΠϑϩʔͷվળͳͲʹऔΓΜͰ͍Δ• ͋ΔαʔϏεͰ୯Ұোͱͳ͍ͬͯͨॏཁͳϩʔϧΛഇࢭͨ͠○ ωοτϫʔΫपΓͷઃܭ͔Β• ӡ༻վળʹ͏ج൫ͷඋ• ΞϓϦέʔγϣϯΤϯδχΞͷੜ࢈ੑ্ʹ͚ͯ○ σϓϩΠϑϩʔͷվળ○ ΞϓϦέʔγϣϯͷbuildߴԽ
343. ೖࣾޙͷΈͰ͖Δ͜ͱΛগͣͭ͠૿͍ͯͬͨ͠
35ࠓͨ͜͠ͱ● ҟ৭ͳܦྺ͔ΒΤϯδχΞʹͳͬͨ● ιϑτΣΞΛ༻͍ͯΠϯϑϥͷ՝ʹཱ͔ͪ͏͜ͱʹ͘͢͝ڵຯΛ࣋ͬͨ● ೖࣾޙʹนΛײͨ͡○ ·ͣڥΛੜ͔ͯ͠पΓͷ༏लͳಉ྅Λਅࣅ͢Δͱ͜Ζ͔Β࢝Ίͨ○ Ͱ͖Δগͣͭ͠૿͍ͯͬͨ͠
36Thank You!ͬͱͰ͖Δ͜ͱΛ૿ͯ͠ѹతΛݟ͚ͤͭΔͧʂ