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
MSP ʹ͓͚Δ Site Reliability Engineering ͷ࣮ફ גࣜձࣾϋʔτϏʔπ MSPࣄۀ෦ ߴଜ ಓʢ@nari_exʣ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 1
Slide 2
Slide 2 text
ࣗݾհ • Takamura Narimchi / ߴଜ ಓ • @nari_ex • גࣜձࣾϋʔτϏʔπ • औక VP of Engineering • MSPࣄۀ෦ΤϯδχΞϦϯάάϧʔ ϓγχΞϚωʔδϟʔ • MSPࣄۀ෦ӡ༻άϧʔϓγχΞϚ ωʔδϟʔ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 2
Slide 3
Slide 3 text
גࣜձࣾϋʔτϏʔπ • 2005ۀ • ࣄۀ༰ • MSP ࣄۀ • Πϯϑϥӡ༻ͷΞτιʔαʔ • ࢹɺઃܭɺߏஙɺΫϥυಋೖࢧ ԉɺίϯαϧςΟϯά • ։ൃࣄۀ • ࣾһ: 76໊ʢΤϯδχΞ: 60໊ʣ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 3
Slide 4
Slide 4 text
ࢀߟ: ఏڙαʔϏε 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 4
Slide 5
Slide 5 text
ࢀߟ: αʔϏεಋೖޙͷମ੍ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 5
Slide 6
Slide 6 text
࣮ࡍʹӡ༻͍ͯ͠Δ Web αʔϏε 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 6
Slide 7
Slide 7 text
2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 7
Slide 8
Slide 8 text
͝ҙ • SRE ͷઆ໌Ͱ͖Δ͚ͩ SRE ຊʹج͍͍ͯ·͕͢ݸਓతͳղऍ ΛؚΉ෦͕͋Γ·͢ • ݫີͳఆٛΛ֬ೝ͍ͨ͠߹ɺGoogle ͷॻ੶υΩϡϝϯτ Λࢀর͍ͩ͘͞ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 8
Slide 9
Slide 9 text
SRE ͱ • 2ͭͷݴ༿ͷུޠ • Site Reliability EngineeringʢSREʣ • దͳαΠτ৴པੑΛ࣮ݱ͢ΔͨΊͷٕज़ख๏ɾٕज़ྖҬ • ౷తͳ ops ͱҰઢΛը͢ • Site Reliability EngineerʢSREsʣ • ্هख๏Λ࣮ݱ͢Δ৬छ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 9
Slide 10
Slide 10 text
౷తͳ ops • جຊతʹख࡞ۀʹཔΔ • γεςϜվળͷͨͼʹखॱॻʹखॱ͕Ճ͞ΕɺͲΜͲΜ ͕૿͍͑ͯ͘ • ҆ఆՔಇΛॏࢹ͠ա͗Δ͋·ΓɺੵۃతͳػೳվળΛߦ͓͏ͱ ͢Δ Dev ͱରཱ͕ͪ͠ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 10
Slide 11
Slide 11 text
SRE ͕ੜ·Εͨഎܠ • Motivation • େنͷෳࡶͳίϯϐϡʔλγεςϜΛӡ༻͢Δͱ͖ɺγεςϜͷɾ֦େʹൺྫͯ͠ӡ༻ܥΤϯδχΞ ͷਓ͕όϯόϯ૿͑ΔͷΛΊ͍ͨ • ։ൃνʔϜʢDevʣͱӡ༻νʔϜʢOpsʣͷରཱΛղܾ͍ͨ͠ • Basic Concepts • γεςϜɾମ੍ΛιϑτΣΞΤϯδχΞϦϯάͱͯ͋͠Δ͖࢟ʹ͢Δ • ৫ߏతͳରཱΛͳ͘͢ • Core Practices • ιϑτΣΞΤϯδχΞʹΑΔ౷త ops ͷ࠶ఆٛɾஔ • ্هͷཤߦɾਪਐɾҡ࣋ʹ͓͍ͯձ͕ࣾ SRE Λࢧ࣋ɾࢧԉ͢Δ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 11
Slide 12
Slide 12 text
DevOps ͱ SRE Ͳ͏͍͏ؔʁ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 12
Slide 13
Slide 13 text
class SRE implements DevOps 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 13
Slide 14
Slide 14 text
class SRE implements DevOps1 • DevOps ͱؔͳ͘ SRE ੜ·Ε͚ͨͲɺ݁Ռతʹ DevOps ͷֶ Λମݱ͍ͯͨ͠ͱ͍͏ྲྀΕ • SRE ͷϓϥΫςΟε DevOps ͷൣғ֎ͷͷؚΜͰ͍Δ͕ɺൣғ ͷͷʹ͍ͭͯ۩ମతͳख๏͕ఏҊ͞Ε͍ͯΔͱ͍͏ • ͜ͷؔੑΛҰݴͰද͢ͱ class SRE implements DevOps • DevOps ͱ SRE ڝ߹͢Δख๏Ͱͳ͍͘͠༑ͩͪ 1 SRE vs. DevOps: competing standards or close friends? 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 14
Slide 15
Slide 15 text
ิ: DevOps ͱ SRE ͷؔੑ1 ͨͱ͑ DevOps ͷ 5 ͭͷப SRE ͷϓϥΫςΟεͱରԠͤ͞Δ͜ͱ͕Ͱ͖Δ DevOps SRE Reduce Organization Silos Share ownership Accept Failure as Normal SLOs & Blameless PMs Implement Gradual Change Reduce costs of failure Leverage Tooling & Automation Automate this year's job away Measure Everything Measure toil and reliablity 1 SRE vs. DevOps: competing standards or close friends? 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 15
Slide 16
Slide 16 text
ҙ༁ DevOps SRE ৫ͷαΠϩΛݮΒ͢ ʢ৫ؒͰʣॴ༗ݖΛڞ༗͢Δ ΤϥʔͷൃੜΛલఏͱ͢Δ SLO Λఆٛ͠ɺඇΛΘͳ͍ϙετϞ ʔςϜΛߦ͏ ஈ֊తʹมߋ͢Δ ࣦഊ࣌ͷίετΛݮΒ͢ πʔϧͱࣗಈԽΛ׆༻͢Δ ͷલͷࣄͷࣗಈԽΛߦ͏ શͯΛܭଌ͢Δ τΠϧͱ৴པੑͷܭଌΛߦ͏ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 16
Slide 17
Slide 17 text
ϋʔτϏʔπʹ͓͚Δ SRE ͷ࣮ફ ʙࣗࣾۀΛιϑτΣΞΤϯδχΞϦϯάͰ࠶ఆٛɾஔʙ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 17
Slide 18
Slide 18 text
ʑͷۀΛιϑτΣΞΤϯδχΞϦϯάͰվળ ͕ඇৗʹଟ͍ҎԼͷۀΛιϑτΣΞΤϯδχΞϦϯάͰ ࠶ఆٛɾஔ • ࢹɾϞχλϦϯάͷઃఆ࡞ۀ • ༷ॻ࡞ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 18
Slide 19
Slide 19 text
Before... • ࢹɾϞχλϦϯάͷઃఆ࡞ۀ • ࢹΤʔδΣϯτઃఆ: ֤αʔόϩάΠϯͯ͠ख࡞ۀͰઃఆهड़ • ࢹ߲ݕ౼: ىಈϓϩηεΛ֬ೝͯ͠ࢹ߲ΛϦετΞοϓ • ࢹαʔόઃఆ: ࢹαʔόʹϩάΠϯͯ͠3ͭҎ্ͷઃఆϑΝΠϧΛߋ৽ • ઃఆө: ֻ͚Λ͠ͳ͕ΒԹ͔Έͷ͋Δө࡞ۀ • ༷ॻ࡞ • ϑΥʔϚοτ: Word • ૢ࡞: ͯ͢ख࡞ۀ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 19
Slide 20
Slide 20 text
happo • ࢹɾϝτϦΫεઃఆΛதԝཧɾҰ੍ׅޚ͢ΔΞʔΩςΫνϟ • ઃఆϑΝΠϧΛࣗಈੜɺYAMLʹͯཧ • ࢮ׆ࢹ͚ͩͰͳ͘ϝτϦΫεऩूߦ͏ΤʔδΣϯτϓϩάϥϜΛ2 • Golang ͳͷͰόΠφϦΛஔ͚ͩ͘Ͱ࣮ߦՄೳ • ࢮ׆ࢹ Nagios ޓ • ΦʔτεέʔϦϯάʹରԠ • ϝτϦΫεऩू sensu-plugin ޓ => mackerel-agent-plugins ޓ 2 https://github.com/heartbeatsjp/happo-agent 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 20
Slide 21
Slide 21 text
kinjiro • ςϯϓϨͱϢʔβࢦఆͷύϥϝʔλʹ ج͍ͮͯࢹ༷ॻͷࣗಈੜΛߦ͏ • Markdown ϕʔεͰهड़ • Git Ͱཧ • ίϛοτϑοΫͰࣗಈతʹ PDF ʹม => Google Drive อଘ • ߋ৽ Gitlab ্ʹͯϓϧϦΫΤετ ϕʔεͰߦΘΕΔ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 21
Slide 22
Slide 22 text
kinjiro ೖྗ߲ • ֤छҊ݅ใ • ར༻ج൫ʢAWS, Azure, GCP...ʣ • OS • Autoscaling ༗ແ • ϛυϧΣΞ • ... 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 22
Slide 23
Slide 23 text
ܶతϏϑΥʔΞϑλʔ Before After ࢹΤʔδΣϯτઃఆ ֤αʔόϩάΠϯͯ͠ख࡞ۀͰઃఆه ड़ தԝཧͷͨΊෆཁ ࢹ߲ݕ౼ ىಈϓϩηεΛ֬ೝͯ͠ࢹ߲ΛϦε τΞοϓ େΛࣗಈੜ ࢹαʔόઃఆ ෳͷࢹαʔόͰෳͷઃఆϑΝΠϧ Λ࡞ େΛࣗಈੜ ઃఆө ֻ͚Λ͠ͳ͕ΒԹ͔Έͷ͋Δखॱʹ ج͍ͯө ίϚϯυҰൃͰө ༷ॻϑΥʔϚοτ Word Markdown ༷ॻߋ৽ૢ࡞ ͯ͢ख࡞ۀ େΛࣗಈੜ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 23
Slide 24
Slide 24 text
ϋʔτϏʔπʹ͓͚Δ SRE ͷ࣮ફ ʙސ٬ͷΠϯϑϥڥʹ͓͚ΔιϑτΣΞΤϯδχΞϦϯάʙ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 24
Slide 25
Slide 25 text
ϋʔτϏʔπͰʑͷαʔϏεӡ༻Λߦ͍ͳ͕Β طଘͷΠϯϑϥ՝ͷൃݟˠղܾʹऔΓΜͰ͍·͢ɻ ͜Ε͔Βհ͢Δͷۙ1Ҏʹ͋ͬͨऔΓΈͷҰ෦Ͱ͢ɻ ※ސ٬ͷΠϯϑϥڥͳͷͰৄࡉল͖·͢ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 25
Slide 26
Slide 26 text
ϦϦʔεΤϯδχΞϦϯάͷࢧԉ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 26
Slide 27
Slide 27 text
ϦϦʔεΤϯδχΞϦϯάͷࢧԉ • Aࣾ͞·: HBͷϚωʔδυαʔϏε͝ར༻લͷঢ়گ • ϓϥΠϕʔτΫϥυڥ • rsync ʹΑΔશखಈͷσϓϩΠ • සൃ͢ΔσϓϩΠىҼͷো • ϩʔϧόοΫ͢ΔʹҰۤ࿑ • ίϯςϯπߋ৽ͷͨΊʹຖ 2 ࣌ؒఀࢭ • ॎׂΓͳ Dev ͱ Opsʢଞࣾʣ ͱͦΕΒΛݟकΔ͔͠ͳ͍ BizʢAࣾ͞·ʣ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 27
Slide 28
Slide 28 text
ϦϦʔεΤϯδχΞϦϯάͷࢧԉ • ϋʔτϏʔπͷ׆ಈ • BizɺDevɺOps ͷ3ऀʢ3ࣾʣ߹ಉͷϛʔςΟϯάΛઃఆ • ֤ʑͷࢹ͔Β՝Λચ͍ग़͠ • ༏ઌॱҐ͚ɺ߹ҙܗΛͯ͠ํੑΛܾఆ • Dev ͱڠྗ͠ͳ͕ΒҎԼΛಋೖɾӡ༻ • AWSɺCI/CDπʔϧɺBlue-Green σϓϩΠϝϯτɺηΩϡϦςΟιϦϡʔγϣϯ • σϓϩΠʹؔΘΔιϑτΣΞΛϋʔτϏʔπʹͯ։ൃ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 28
Slide 29
Slide 29 text
ϦϦʔεΤϯδχΞϦϯάࢧԉͷ݁Ռ Before After ఀࢭϝϯςφϯε࣌ؒ ຖؒ 2 ࣌ؒ ͳ͠ σϓϩΠͷ݅ ఀࢭϝϯςඞਢ ΦϯϥΠϯͰ࣮ࢪՄೳ σϓϩΠαΠΫϧ ࠷େͰ11ճ 12ʙ3ճҎ্ ఀࢭϝϯς͕ෆཁʹɻσϓϩΠαΠΫϧߴԽʂ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 29
Slide 30
Slide 30 text
ϩάੳج൫ͷઃܭɾߏங 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 30
Slide 31
Slide 31 text
ϩάੳج൫ͷઃܭɾߏங • Bࣾ͞·: HBͷϚωʔδυαʔϏε͝ར༻લͷঢ়گ • େͳϩάΛඇಉظͰੳج൫సૹ • ඇಉظͳͷͰ͙͢ʹϢʔβಈΛ֬ೝͰ͖ͳ͍ • సૹࣗಈ͕ͩɺ࠶ૹखಈͰߦ͏ඞཁ͋Γ • ϩάྔ૿Ճʹ͍సૹ࣌ͷύϑΥʔϚϯε՝ʹ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 31
Slide 32
Slide 32 text
ϩάੳج൫ͷઃܭɾߏங • ϋʔτϏʔπͷ׆ಈ • ސ٬ͷ SREs ͱ։ൃνʔϜ͔ΒώΞϦϯάΛߦ͍՝Λநग़ • ϩάϑΥʔϚοτɺจࣈίʔυసૹʹ͍ͬͯΔಠࣗϓϥάΠϯͳͲΛ ΨοπϦௐࠪ • αʔϏεαΠυͷطଘͷϫʔΫϑϩʔΛ֬ೝ • ৽ϩάੳج൫ͷఏҊɾߏஙɾӡ༻ • ؊ͱͳΔϩάసૹʹHBʹͯ։ൃͨ͠ fluentd ϓϥάΠϯΛར༻ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 32
Slide 33
Slide 33 text
ϩάੳج൫վળͷ݁Ռ Before After ࠶ૹॲཧ ΤϯδχΞʹΑΔखಈ࡞ۀ ࣗಈ αʔό 9 5 ϩάग़ྗ͔Βσʔλج൫ ೖͷॴཁ࣌ؒ 1࣌ؒ ϦΞϧλΠϜ ݁Ռͱͯ͠ɺίετԽ͕࣮ݱ͞Εͨͱಉ࣌ʹɺ ΧελϚʔαϙʔτ୲ऀ༷͕ 1 ࣌ؒػ͢Δ͜ͱͳ͘ଈ͍߹ΘͤճՄೳʹ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 33
Slide 34
Slide 34 text
MSP ʹ͓͚Δ DevOps / SRE ͷ࣮ફ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 34
Slide 35
Slide 35 text
DevOps / SRE ࣮ફͷϙΠϯτ • ιϑτΣΞΤϯδχΞϦϯά • ར༻πʔϧ • ΧϧνϟʔʢϚΠϯυηοτʣ • MSP ͳΒͰͷಛ͋Γ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 35
Slide 36
Slide 36 text
MSP ʹඞཁͳΧϧνϟʔͱ SRE ࣮ફͷ伴 • MSP ͱΓͱΓ͢Δސ٬ Dev Ҏ֎ʹ BizɺOps SREs ͷ߹͋Δ • ʮΠϯϑϥҎ֎ݟ·ͤΜʂʯͰͳ͘ɺঢ়گʹԠͯ͡ΞϓϦαΠτͦͷ ͷʹ౿ΈࠐΉ • Ωʔϫʔυ ʮઌճΓʯʮओମੑʯʮೳಈੑʯ • MSPͷจ຺Ͱ͋ΒΏΔγʔϯͰ SRE ༗ޮ • ཱΘͣɺαʔϏεͷ৴པੑΛߴΊΔ͜ͱʹযΛͯͯɺओମతʹਂ͘ί ϛοτ͍ͯ͘͜͠ͱ͕࣮ફͷ伴 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 36
Slide 37
Slide 37 text
͋Γ͕ͱ͏͍͟͝·ͨ͠ 2019/05/21ʢਆށ։࠵ʣ, 2019/05/27ʢ౦ژ։࠵ʣ αΠόʔ߈ܸʹඋ͑ΔʮDevOpsʯͱ͍͏બ | @nari_ex 37