Slide 1

Slide 1 text

ӡ༻ٕज़ऀ૊৫ͷઃܭͱӡ༻ ߴଜ ੒ಓʢ@nari_exʣ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex)

Slide 2

Slide 2 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 2

Slide 3

Slide 3 text

about:me ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 3

Slide 4

Slide 4 text

about:me • גࣜձࣾϋʔτϏʔπ • ιʔγϟϧήʔϜɺeϥʔχϯάɺECɺಈը഑৴ͳͲ༷ʑͳӡ༻Λܦݧ • ΤϯδχΞϦϯά૊৫ͷ੹೚ऀͱͯ͠ϚωδϝϯτΛܦݧ • ిؾ௨৴େֶ ৘ใཧ޻ֶ෦ֶ࢜ ֶ࢜ • ଔݚͰ͸ Linux ΧʔωϧʹखΛՃ͑ɺI/O εέδϡʔϥͷվળఏҊΛߦ͏ • άϩʔϏεܦӦେֶӃ ܦӦݚڀՊܦӦઐ߈ म࢜ • ܦӦ΍ϚωδϝϯτͷΠϩϋΛֶͿ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 4

Slide 5

Slide 5 text

ΞδΣϯμ • ։ൃɾӡ༻ʹؔ͢ΔύϥμΠϜͷมԽ • ӡ༻૊৫ͷઃܭ • ӡ༻૊৫ͷӡ༻ͱਐԽ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 5

Slide 6

Slide 6 text

1. ։ൃɾӡ༻ʹؔ͢ΔύϥμΠϜͷมԽ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 6

Slide 7

Slide 7 text

৘ใγεςϜΛऔΓר͘؀ڥͷٸ଎ͳมԽ • ސ٬ͱϢʔβʔͷཁٻมԽ • αʔϏεͷେن໛Խ • ςΫϊϩδʔͷมԽ => ։ൃʙӡ༻ʹ্͓͍ͯهͷมԽʹରԠ͢Δ࢓૊Έ͕ඞཁʹ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 7

Slide 8

Slide 8 text

؀ڥͷมԽʹΑͬͯු͖ூΓʹͳͬͨ՝୊ • 1. ։ൃ૊৫ͱӡ༻૊৫ͷαΠϩԽ • 2. ϦϦʔεαΠΫϧͷݶք • ཁٻ࢓༷ͷมߋʹ௥ैͮ͠Β͍ैདྷͷ։ൃٕ๏ • ϞϊϦεΞʔΩςΫνϟʹΑΔେن໛։ൃͷݶք • 3. ӡ༻૊৫ͷංେԽ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 8

Slide 9

Slide 9 text

՝୊1: ։ൃ૊৫ͱӡ༻૊৫ͷαΠϩԽ => ૊৫ؒͷڥքͷมԽ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 9

Slide 10

Slide 10 text

૊৫ؒͷڥքͷมԽ: DevOps1 2 ։ൃ୲౰ऀͱӡ༻୲౰ऀ͕࿈ܞͯ͠ڠྗ͢Δʢ͞Βʹ྆୲౰ऀͷڥ໨΋͍͋·͍ʹ͢Δʣ։ൃख๏ 2 Kharnagy, Devops-toolchain, 2016 1 John Allspaw, 10+ Deploys per Day: Dev and Ops Cooperation at Flickr, 2009 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 10

Slide 11

Slide 11 text

՝୊2: ϦϦʔεαΠΫϧͷݶք ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 11

Slide 12

Slide 12 text

ཁٻ࢓༷ͷมߋʹ௥ैͮ͠Β͍ैདྷͷ։ൃٕ๏ => ΞδϟΠϧܕ։ൃͷొ৔ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 12

Slide 13

Slide 13 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 13

Slide 14

Slide 14 text

ϞϊϦεΞʔΩςΫνϟʹΑΔେن໛։ൃͷݶք => ϚΠΫϩαʔϏεͷొ৔ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 14

Slide 15

Slide 15 text

ΞʔΩςΫνϟͷมԽ: ϚΠΫϩαʔϏε3ͷొ৔ 3 James Lewis, Microservices, 2014 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 15

Slide 16

Slide 16 text

ϚΠΫϩαʔϏεͷొ৔ • ૊৫ύϑΥʔϚϯεͷ࠷େԽ͕໨త • େن໛Խͯ͠΋খ͞ͳಠཱͨ͠૊৫ʹΑͬͯܧଓతͳϦϦʔεΛߦ͏͜ͱ ͕Ͱ͖Δ • ͦͷଞ • ো֐఺ͷہॴԽ • ։ൃɾӡ༻είʔϓͷݶఆ • εέʔϥϏϦςΟͷ࠷దԽ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 16

Slide 17

Slide 17 text

enabling continuous delivery/deployment 4 4 The microservice architecture is a means to an end: enabling continuous delivery/deployment, 2017 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 17

Slide 18

Slide 18 text

Continuous Delivery 5 5 Melanie Cebula, Developing Kubernetes Services at Airbnb Scale, 2018 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 18

Slide 19

Slide 19 text

ิ଍: SOA ͷ࣮૷ʹΑΔ૊৫αΠϩͷղফ • SOA = αʔϏεࢦ޲ΞʔΩςΫνϟ • ϚΠΫϩαʔϏε΋͜ͷΞʔΩςΫνϟͷҰͭ • ϞϊϦεΞʔΩςΫνϟͰ͸ɺ໾ׂ෼୲ʹΑ֤ͬͯ૊৫ͷ໨త ͸ͦͷ໾ׂʢ։ൃɺӡ༻ͳͲʣͩͬͨ • SOA ʹมߋ͢Δ͜ͱͰɺνʔϜ಺ͷ໨త͕౷Ұ͞ΕαΠϩԽ ͕ղফ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 19

Slide 20

Slide 20 text

ิ଍: ίϯ΢ΣΠͷ๏ଇͷԠ༻: ٯίϯ΢ΣΠઓུ • ίϯ΢ΣΠͷ๏ଇʢConway’s Lawʣ • ʮγεςϜΛઃܭ͢Δ૊৫͸ɺͦͷߏ଄Λͦͬ͘Γ·Ͷͨߏ ଄ͷઃܭΛੜΈग़ͯ͠͠·͏ʯ • ٯίϯ΢ΣΠઓུʢInverse Conway Maneuverʣ • ʮιϑτ΢ΣΞͷߏ଄͕૊৫ͷߏ଄ʹ൓ө͢Δʯ => ૊৫ߏ଄ΛΞʔΩςΫνϟ΁ੵۃతʹدͤΔͱ͍͏఺͕ॏཁ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 20

Slide 21

Slide 21 text

՝୊3: ӡ༻૊৫ͷංେԽ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 21

Slide 22

Slide 22 text

SRE: Site Reliability Engineering ͷొ৔ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 22

Slide 23

Slide 23 text

SRE ͷ஀ੜ • DevOps ͱ͸ผͷจ຺Ͱ 2000೥୅ʹ Google ͷࣾ಺χʔζΛຬ ͨͨ͢Ίʹੜ·Εͨ • ೔ຊͰ͸2015೥લޙ͔Βঃʑʹ޿·Γ͸͡Ίͨ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 23

Slide 24

Slide 24 text

SRE ͱ͸ • 2ͭͷݴ༿ͷུޠ • Site Reliability EngineeringʢSREʣ • ద੾ͳαΠτ৴པੑΛ࣮ݱ͢ΔͨΊͷٕज़ख๏ɾٕज़ྖҬ • ఻౷తͳ ops ͱ͸ҰઢΛը͢ • Site Reliability EngineerʢSREsʣ • ্هख๏Λ࣮ݱ͢Δ৬छ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 24

Slide 25

Slide 25 text

఻౷తͳ ops • جຊతʹख࡞ۀʹཔΔ • γεςϜվળͷͨͼʹखॱॻʹखॱ͕௥Ճ͞ΕɺͲΜͲΜ޻਺ ͕૿͍͑ͯ͘ • ҆ఆՔಇΛॏࢹ͠ա͗Δ͋·ΓɺੵۃతͳػೳվળΛߦ͓͏ͱ ͢Δ Dev ͱରཱ͕ͪ͠ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 25

Slide 26

Slide 26 text

SRE ͕ੜ·Εͨഎܠ • Motivation • େن໛ͷෳࡶͳίϯϐϡʔλγεςϜΛӡ༻͢Δͱ͖ɺγεςϜͷ੒௕ɾ֦େʹൺྫͯ͠ӡ༻ܥΤϯδχΞ ͷਓ਺͕૿͑Δঢ়ଶΛղফ͍ͨ͠ • ։ൃνʔϜʢDevʣͱӡ༻νʔϜʢOpsʣͷରཱΛղܾ͍ͨ͠ • Basic Concepts • γεςϜɾମ੍Λιϑτ΢ΣΞΤϯδχΞϦϯάͱͯ͋͠Δ΂͖࢟ʹ͢Δ • ૊৫ߏ଄తͳରཱΛͳ͘͢ • Core Practices • ιϑτ΢ΣΞΤϯδχΞʹΑΔ఻౷త ops ͷ࠶ఆٛɾஔ׵ • ্هͷཤߦɾਪਐɾҡ࣋ʹ͓͍ͯձ͕ࣾ SRE Λࢧ࣋ɾࢧԉ͢Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 26

Slide 27

Slide 27 text

DevOpsʁSREʁ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 27

Slide 28

Slide 28 text

class SRE implements DevOps6 • DevOps ͱ͸ؔ܎ͳ͘ SRE ͸ੜ·Ε͕ͨɺ݁Ռతʹ DevOps ͷ఩ֶΛ ମݱ͍ͯͨ͠ͱ͍͏ྲྀΕ • SRE ͷϓϥΫςΟε͸ DevOps ͷൣғ֎ͷ΋ͷ΋ؚΜͰ͍Δ͕ɺൣғ ಺ͷ΋ͷʹ͍ͭͯ͸۩ମతͳख๏͕ఏҊ͞Ε͍ͯΔͱ͍͏࿩ • ͜ͷؔ܎ੑΛҰݴͰද͢ͱ class SRE implements DevOps • DevOps ͱ SRE ͸ڝ߹͢Δख๏Ͱ͸ͳ͘਌͍͠༑ͩͪ 6 SRE vs. DevOps: competing standards or close friends? ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 28

Slide 29

Slide 29 text

ิ଍: DevOps ͱ SRE ͷؔ܎ੑ6 ͨͱ͑͹ 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 6 SRE vs. DevOps: competing standards or close friends? ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 29

Slide 30

Slide 30 text

ҙ༁ DevOps SRE ૊৫ͷαΠϩΛݮΒ͢ ૊৫ؒͰΦʔφʔγοϓΛڞ༗͢Δ ΤϥʔͷൃੜΛલఏͱ͢Δ SLO Λఆٛ͠ɺඇ೉Λ൐Θͳ͍ϙετϞ ʔςϜΛߦ͏ ஈ֊తʹมߋ͢Δ ࣦഊ࣌ͷίετΛݮΒ͢ πʔϧͱࣗಈԽΛ׆༻͢Δ ໨ͷલͷ࢓ࣄͷࣗಈԽΛߦ͏ શͯΛܭଌ͢Δ τΠϧͱ৴པੑͷܭଌΛߦ͏ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 30

Slide 31

Slide 31 text

৘ใγεςϜΛऔΓר͘؀ڥͷٸ଎ͳมԽ΁ͷରԠ • ैདྷख๏ɾΞʔΩςΫνϟʹΑΔ૊৫ͷαΠϩԽ • => ૊৫ؒͷڥքͷมԽʢڥքΛᐆດԽɺ૊৫໨తͷڞ௨Խʣ • ϦϦʔεαΠΫϧͷݶք • => ܧଓతσϦόϦΛ࣮ݱ͢Δ։ൃٕ๏ɾΞʔΩςΫνϟΛಋೖ • ӡ༻૊৫ͷංେԽ • => Site Reliability Engineering ʹΑͬͯ఻౷తͳӡ༻Λ࠶ఆٛ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 31

Slide 32

Slide 32 text

2. ӡ༻૊৫ͷઃܭ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 32

Slide 33

Slide 33 text

৽ͨͳύϥμΠϜ͸૊৫՝୊ͷສೳༀͰ͸ͳ͍ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 33

Slide 34

Slide 34 text

Microservices Architecture ΍ DevOps ͱ͍ͬͨύϥμΠϜͰॳظ͔ Βಈ͍͍ͯΔए͍૊৫΋͋Γ·͕͢ɺैདྷͷ Monolithic Architecture ΍ Server Client Model ͰͷچདྷͷγεςϜΞʔΩςΫ νϟʹແཧ͕ग़͖ͯͯ΋ɺ࠶ߏஙΛ͢Δʹ͸૊৫Λࢧ͑Δج൫Խ ͞Εͯ͠·͕ͬͨނͷ੍໿ʹۤ͠Ή૊৫΋͋Γ·͢ɻ 7 7 ୈ12ճΠϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ ։࠵झࢫ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 34

Slide 35

Slide 35 text

ϚΠΫϩαʔϏεͷ೉఺ • ෼ࢄͨ͠σʔλͷҰ؏ੑ୲อͷ໰୊ • ෼ࢄͨ͠αʔϏε΍ॲཧͷՄ؍ଌੑͷ໰୊ • αʔϏε෼ׂڥքͷ໰୊ • ... => ϝϦοτɾσϝϦοτΛצҊͨ݁͠Ռɺ͋͑ͯϚΠΫϩαʔϏ εΛ࠾༻͠ͳ͍ͱ͍͏બ୒ࢶ͸े෼͋Γ͏Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 35

Slide 36

Slide 36 text

ΞʔΩςΫνϟɾ૊৫ߏ଄ͷܾఆ൛͕ͳ͍தɺ զʑ͸ͲͷΑ͏ʹӡ༻૊৫ΛσβΠϯ͢Ε͹Α͍ͷ͔ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 36

Slide 37

Slide 37 text

ਓతࢿݯ؅ཧʢHRMʣ͔ΒώϯτΛಘΔ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 37

Slide 38

Slide 38 text

HRMΛߏ੒͢Δ3ͭͷཁૉ • HRઓུ • ٻΊΔਓࡐ૾΍૊৫ͷن໛ͳͲΛߟ͑Δ • ૊৫ߏ଄ • ෦໳ɺࢦش໋ྩܥ౷ɺ৬੹ɺݖݶͳͲΛܾΊΔ • HRMγεςϜʢࠓճ͸৮Ε·ͤΜʣ • ࠾༻ʙୀ৬·Ͱͷ੍౓Λઃܭɾӡ༻͢Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 38

Slide 39

Slide 39 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 39

Slide 40

Slide 40 text

HR ઓུͷ࣮ફ • ӡ༻ٕज़ऀ͕ͦΕͧΕݸਓͱͯ͠Ͳ͏͋Δ΂͖͔Λ໌֬ʹ͢Δ • ૊৫શମͷจԽৢ੒ɺҙࢥ౷Ұʹͭͳ͕Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 40

Slide 41

Slide 41 text

͋Δ΂͖࢟ͷ໌จԽ: ϋʔτϏʔπࣾͷྫ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 41

Slide 42

Slide 42 text

͋Δ΂͖࢟ͷ໌จԽ: ϋʔτϏʔπࣾͷྫ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 42

Slide 43

Slide 43 text

૊৫ߏ଄ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 43

Slide 44

Slide 44 text

͜Ε·ͰͷύϥμΠϜ͔Βͷ஌ݟΛநग़͢Δ • ։ൃٕ๏ͷมભ͔Βͷֶͼ • ࡉ͔͍αΠΫϧΛܧଓతʹߦ͏࢓૊Έ͕ඞཁ • νʔϜͱ͍͏୯ҐͰͷ׆ಈ͕ϕετϓϥΫςΟε • ϞϊϦε͔ΒϚΠΫϩαʔϏε΁ͷมભ͔Βͷֶͼ • ੹೚ൣғͷڞ௨Խɺ࠷దԽ ʹΑͬͯαΠϩԽΛ๷͙ • ڥքΛࡉ෼Խ͢Δ ͜ͱͰεέʔϥϏϦςΟΛอͭ • ιϑτ΢ΣΞͷڥքͱ૊৫ͷڥքΛҙࣝతʹἧ͑Δ ͜ͱͰύϑΥʔϚϯε͸޲্͢Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 44

Slide 45

Slide 45 text

૊৫࿦͔ΒώϯτΛಘΔ ૊৫ͷఆٛ: 2ਓҎ্ͷਓʑͷɺҙࣝతʹௐ੔͞Εͨॾ׆ಈɺॾྗͷମܥ8 όʔφʔυͷ૊৫࿦ʹ͓͚Δ૊৫ͷఆ͔ٛΒಘΒΕͨॏཁͳؚҙ͸ҎԼͷ௨Γɻ • ૊৫Λߏ੒͢Δཁૉ͸ɺਓؒͦͷ΋ͷͰ͸ͳ͘ɺਓ͕ؒఏڙ͢Δ׆ಈ΍ྗͰ ͋Δ͜ͱ • ૊৫Λߏ੒͢Δॾ׆ಈɾॾྗ͸ɺମܥʢγεςϜʣͱͯ͠ޓ͍ʹ૬ޓ࡞ ༻Λ΋ͭ͜ͱ 8 Barnard, ܦӦऀͷ໾ׂ, 1938 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 45

Slide 46

Slide 46 text

૊৫ͷઃܭͱ͸ όʔφʔυͷఆٛʹରͯ͠৘ใγεςϜͱ͍͏จ຺ͷ௥Ճͯ͠࠶ఆٛ • ૊৫ͱ͸ • ਓͱٕज़ͷ૬ޓ࡞༻ʹΑͬͯܗ੒͞ΕΔΤίγεςϜ • ૊৫ͷઃܭͱ͸ • ʢগͳ͘ͱ΋ʣ૊৫ͷαΠζɺ഑ஔɺڥքʢ੹೚ൣғʣɺ͓Α ͼ૬ޓ࡞༻ΛܾΊΔ͜ͱ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 46

Slide 47

Slide 47 text

૊৫ͷαΠζ • νʔϜͱ͍͏୯ҐΛ࠾༻ • αΠζ͸ɺ7ʙ9ਓνʔϜͷू߹ମͱͯ͠ߏ੒͢Δ • μϯόʔ਺9Λϕʔεͱͨ͠ߟ͑ํ 9 Dunbar's number, Dunbar, R. I. M. (1992) ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 47

Slide 48

Slide 48 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 48

Slide 49

Slide 49 text

ڥքͷछྨ Ұൠతͳ૊৫ਤͷఆٛҎ֎ʹ΋׆ಈൣғ͝ͱʹఆٛ͞ΕΔ2ͭͷڥք͕͋Δ10 ૊৫ͷू߹ମͷύϑΥʔϚϯε͸ୈೋɺୈࡾͷڥքΛ͍͔ʹίϯτϩʔϧ͢Δ͔͕ ॏཁͱͳΔ11 1. ୈҰڥք: ݫີͳʮ૊৫ʯ֓೦ʹ΋ͱͮ͘ڥք 2. ୈೋڥք: υϝΠϯͱͯ͠ͷڥք 3. ୈࡾڥք: ҙࣝతௐ੔ͷٴͿൣғͱͯ͠ͷڥք 11 Niels Pflaeging, Organize for Complexity, 2014 10 ܂ాߞଠ࿠ɾాඌխ෉, "૊৫࿦", 2010 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 49

Slide 50

Slide 50 text

૊৫ͷڥք ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 50

Slide 51

Slide 51 text

Team Topologies12 • Organizing business and technology team for fast flow. • 2019/09/17 ʹग़൛͞Εͨຊ 12 Team Topology, Matthew SkeltonɾManuel Pais, 2019 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 51

Slide 52

Slide 52 text

Team Topologies ͷ֓ཁ • ૊৫ઃܭͷͨΊͷڧྗͳςϯϓϨʔτΛఏҊ • 4ͭͷνʔϜλΠϓͱ3ͭͷ૬ޓ࡞༻λΠϓ • → ڥքͱ૬ޓ࡞༻ͷσβΠϯʹ໾ཱͭ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 52

Slide 53

Slide 53 text

4ͭͷνʔϜλΠϓ Stream-Aligned Team ͸૊৫ͷओཁͳνʔϜλΠϓͰ͋ΓɺଞͷνʔϜ͸ɺStream-Aligned Team ͷෛ୲Λܰݮ͢Δ • Stream-AlignedʢSAʣ Team • ୯Ұͷ੡඼·ͨ͸αʔϏεɺ୯Ұͷػೳηοτɺ·ͨ͸୯ҰͷϢʔβʔϖϧιφͷ࡞ۀϑϩʔΛ୲౰͢Δ • Enabling Team • ಛఆͷٕज़·ͨ͸੡඼؅ཧ෼໺ͰɺStream-Aligned Team ʹෆ଍͍ͯ͠ΔػೳΛ֫ಘͰ͖ΔΑ͏ʹࢧԉ͢Δ • ex. Infrastructure-as-Code enablement team • Complicated-Subsystem Team • ෳࡶͳαϒγεςϜΛར༻͢Δ Stream-Aligned Team ͷࢧԉΛ୲౰͢Δ • ex. ϏσΦॲཧίʔσοΫɺ਺ֶϞσϧɺϦΞϧλΠϜऔҾௐ੔ΞϧΰϦζϜɺۚ༥αʔϏεͷτϥϯβΫγϣϯใࠂγεςϜ... • Platform Team • ηϧϑαʔϏεAPIɺπʔϧɺαʔϏεɺ஌ࣝɺαϙʔτͷج൫Λ୲౰͢Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 53

Slide 54

Slide 54 text

Stream-Aligned Team ʹඞཁͳػೳηοτ • Application security • Commercial and operational viability analysis • Design and architecture • Development and coding • Infrastructure and operability • Metrics and monitoring • Product management and ownership • Testing and quality assurance • User experience (UX) ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 54

Slide 55

Slide 55 text

3ͭͷ૬ޓ࡞༻ͷλΠϓ • Collaboration • ผͷνʔϜͱۓີʹ࿈ܞ͢Δ • X-as-a-Service • ࠷খݶͷίϥϘϨʔγϣϯͰԿ͔Λফඅ·ͨ͸ఏڙ͢Δ • Facilitating • ଞͷνʔϜΛࢧԉʢ·ͨ͸ࢧԉʣͯ͠ো֐Λղফ͢Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 55

Slide 56

Slide 56 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 56

Slide 57

Slide 57 text

νʔϜؒʹ͓͚Δ૬ޓ࡞༻ͷଳҬ੍ޚ12 12 Team Topology, Matthew SkeltonɾManuel Pais, 2019 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 57

Slide 58

Slide 58 text

࣮૷ྫ 12 12 Team Topology, Matthew SkeltonɾManuel Pais, 2019 ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 58

Slide 59

Slide 59 text

ӡ༻૊৫ͷઃܭྫ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 59

Slide 60

Slide 60 text

Microservices + SRE: ڥքͱ૬ ޓ࡞༻ • ֤ϚΠΫϩαʔϏεͷڥքΛ Stream-Aligned Team ͷڥքͱͯ͠ѻ͏ • খن໛ͳαʔϏεͷӡ༻੹೚͸֤αʔϏενʔ Ϝɺେن໛ͳαʔϏεͷӡ༻͸SREνʔϜͱ͢Δ • SRE νʔϜ͸1ͭҎ্ͷϚΠΫϩαʔϏενʔϜ ͱڧ͍ؔ܎Λ࣋ͭ • SRE νʔϜͰͷࢧԉ͕ෆཁͳ৔߹͸ɺϚΠΫ ϩαʔϏενʔϜ͕ SREs Λॴ༗͢Δ͜ͱ͕ ͋Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 60

Slide 61

Slide 61 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 61

Slide 62

Slide 62 text

Microservices + SRE: ੹೚ൣғͷӡ༻ • ։ൃνʔϜɾαʔϏενʔϜ͕։ൃͨ͠ιϑτ΢ΣΞΛ SRE ͕ αϙʔτ͢Δ/͠ͳ͍Λ൑அ͢ΔͨΊͷਫ४Λ༧Ίنఆ͠ɺα ϙʔτࠔ೉ͳ৔߹ʹӡ༻੹೚ΛαʔϏενʔϜʹ໭͢ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 62

Slide 63

Slide 63 text

Microservices + SRE: ίϥϘϨʔγϣϯίετͷ௿ݮ • ϓϥοτϑΥʔϜνʔϜ͸ɺηϧϑαʔϏεԽΛ࣮ݱ͢Δ͜ͱ ͰɺX-as-a-Service ʹΑΔ૬ޓ࡞༻Λߦ͏ • ίϥϘϨʔγϣϯίετͷ࠷খԽ͕Ͱ͖Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 63

Slide 64

Slide 64 text

૊৫ͷઃܭͷ·ͱΊ • HRM ͷϑϨʔϜϫʔΫʹج͍ͮͯਐΊΔ • HRઓུɺ૊৫ߏ଄ɺHRMγεςϜ • ૊৫ߏ଄ͷઃܭͰ͸ҎԼ4఺Λఆٛ͢Δ • ૊৫ͷαΠζɺ഑ஔɺڥքɺ૬ޓ࡞༻ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 64

Slide 65

Slide 65 text

3. ӡ༻૊৫ͷӡ༻ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 65

Slide 66

Slide 66 text

఻౷తͳӡ༻૊৫ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 66

Slide 67

Slide 67 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 67

Slide 68

Slide 68 text

఻౷తͳ૊৫ʹ͓͚Δτϙϩδͷબ୒ • ఻౷తͳ૊৫Ͱ͸ɺCollaborationʢಛʹߴίετʣ΍ Platform- as-a-Service ͱ͍͏τϙϩδΛબ୒͢Δඞཁ͕͋Δ • ఻౷తͳ૊৫͸؆қͳίϥϘϨʔγϣϯ΋೉͍͠΄ͲʹαΠϩ Խ͍ͯ͠Δ৔߹͕͋Δ • ࠓճ͸͜ͷέʔεΛର৅ʹஈ֊తͳνʔϜͮ͘ΓΛߟ͑Δ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 68

Slide 69

Slide 69 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 69

Slide 70

Slide 70 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 70

Slide 71

Slide 71 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 71

Slide 72

Slide 72 text

ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 72

Slide 73

Slide 73 text

ӡ༻૊৫ͷӡ༻ • ӡ༻ʹऴΘΓ͸ͳ͍ • ৽ٕज़ɺ৽ύϥμΠϜͳͲɺ؀ڥͷมԽʹ௥ै͢ΔͨΊͷ࢓૊Έ͕ඞ ཁʹͳΔ • ex. ૬ޓ࡞༻ͷλΠϓมߋɺνʔϜͷ࠶ฤɺੵۃతͳ Enabling νʔ Ϝͷߏங • X-as-a-Service ԽʹΑͬͯෆཁͳίϥϘϨʔγϣϯΛऔΓআ͘͜ͱ͸ ύϑΥʔϚϯε޲্ͷΧΪͱͳΔ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 73

Slide 74

Slide 74 text

X-as-a-Service ԽͷՌͯ • X-as-a-Service ԽʢνʔϜAPIԽʣΛ௥ٻͨ͠ઌʹӡ༻ʹ͓͚Δσδλ ϧτϥϯεϑΥʔϝʔγϣϯʢDXʣͷੈք͕͋Δ • DXͷੈքʹ͓͚Δӡ༻ٕज़ऀͷՁ஋͸ɺਓ΍ػցͱ Collaboration ͠ ͳ͕Βຊ࣭తͳ՝୊Λղܾ͢Δ͜ͱʢAPIԽͰ͖ͳ͍͜ͱʣʹऩଋ͢ Δ • ݪҼΑΓࠜڌɺ༧ଌΑΓఏҊɺࣄ࣮ΑΓ݁࿦ • ӡ༻ٕज़ऀ͕շదʹΤϯδχΞϦϯάΛߦ͏͜ͱ͕Ͱ͖Δੈքઢ΁ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 74

Slide 75

Slide 75 text

࣋ଓతʹਐԽ͢Δ૊৫Λ໨ࢦͯ͠ • ਐԽͷτϦΨʔͷݕ஌ख๏ͷ໛ࡧ • ex. ૊৫ؒͷ૬ޓ࡞༻ʹ͓͚Δ Observability ͷ௥ٻͱ૬ޓ࡞ ༻ͷมߋΛ൑அ͢ΔͨΊͷ͖͍͠஋ͷݕ౼ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 75

Slide 76

Slide 76 text

·ͱΊ • ։ൃɾӡ༻ʹؔ͢ΔύϥμΠϜͷมԽΛ͓͞Β͍ • ૊৫ύϑΥʔϚϯεΛ࠷େԽ͢ΔͨΊʹ༷ʑͳٕ๏ɾΞʔΩςΫνϟ͕ొ ৔ • ύϥμΠϜɺHRM΍૊৫࿦ͷ஌ݟΛݩʹӡ༻૊৫ͷઃܭɾӡ༻Λߟ࡯ • αΠζɺ഑ஔɺڥքɺ૬ޓ࡞༻͕૊৫ઃܭͷ؊ • ϚΠΫϩαʔϏε+SREɺ఻౷తͳ૊৫Ͱͷద༻ྫΛ঺հ • ӡ༻ʹ͓͚Δ DX ʹର͢Δߟ࡯ͱ࣋ଓతʹਐԽ͢Δ૊৫ʹ͓͚Δ՝୊Λڞ༗ ୈ12ճ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ (2019/12/05) | Takamura Narimichi (@nari_ex) 76