Slide 1

Slide 1 text

͸ͯͳγεςϜߏ૝ ͸ͯͳ id:y_uuki ϖύϘɾ͸ͯͳٕज़େձ@෱Ԭ

Slide 2

Slide 2 text

id:y_uuki / @y_uuk1 TSUBOUCHI Yuuki https://yuuk.io/ גࣜձࣾ͸ͯͳ WebΦϖϨʔγϣϯΤϯδχΞ / γχΞΤϯδχΞ / ςοΫϦʔυ / ج൫։ൃνʔϜϦʔμʔ

Slide 3

Slide 3 text

͸ͯͳγεςϜ

Slide 4

Slide 4 text

https://twitter.com/y_uuk1/status/722085103166296065

Slide 5

Slide 5 text

https://twitter.com/matsumotory/status/722085980375621632

Slide 6

Slide 6 text

https://twitter.com/matsumotory/status/722232813668274177

Slide 7

Slide 7 text

https://twitter.com/kentaro/status/722233495632764928

Slide 8

Slide 8 text

ͦͯ͠ɺ1೥൒ܦա

Slide 9

Slide 9 text

͸ͯͳγεςϜߏ૝ ɾ1. ΍Γ͍ͨ͜ͱ ɾ2. ͸ͯͳγεςϜͱ͸ɹ ɾ3. Repairable Infrastructureɹ ɾ4. Experimentable Infrastructureɹ ɾ5. ·ͱΊɹ

Slide 10

Slide 10 text

1.΍Γ͍ͨ͜ͱ

Slide 11

Slide 11 text

ΤϯδχΞ͕ӡ༻ʹർฐͤͣʹ ૑଄ੑΛൃشͯ͠ ָ͘͠։ൃͰ͖ΔΑ͏ʹ͍ͨ͠ ※ ※ಛʹɺSREɺWebΦϖϨʔγϣϯΤϯδχΞɺΠϯϑϥΤϯδχΞΛࢦ͢

Slide 12

Slide 12 text

΍Γ͍ͨ͜ͱ • ઓज़తͳγεςϜվળͷݶք͕Έ͖͑ͯͨ • ΤϯδχΞͷٕज़ʹΑΔ໰୊ղܾೳྗ͸͋͘͢͝Δͷ ͰɺγεςϜӡ༻ͷτΠϧ(࿑ۤ)Λ΋ͬͱݮΒ͍ͨ͠ • γεςϜӡ༻͔Βղ์͞Εɺ૑଄తͳ։ൃΛ΍͍ͬͯ ͖͍ͨ

Slide 13

Slide 13 text

ͳͥϏδϣϯ͔ • γεςϜʹର͢ΔϏδϣϯ͕·ͣඞཁͩͱײͨ͡ • ϏδϣϯͱͦΕʹجͮ͘ઓུΛܾఆ͢Δ͜ͱͰޮՌత ʹγεςϜΛվળ͍ͯ͘͠ • ͋͑ͯந৅తࢥߟΛਪ͠ਐΊΔ͜ͱͰݶքΛಥഁ͢Δ • ͳΊΒ͔ͳγεςϜ͕޷͖

Slide 14

Slide 14 text

2. ͸ͯͳγεςϜͱ͸

Slide 15

Slide 15 text

͸ͯͳͷϏδϣϯ͔Βಋग़

Slide 16

Slide 16 text

http://hatenacorp.jp/information/mission ʮ஌Δʯʮͭͳ͕Δʯʮදݱ͢Δʯ Ͱ৽͍͠ମݧΛఏڙ͠ɺ ਓͷੜ׆Λ๛͔ʹ͢Δ

Slide 17

Slide 17 text

http://hatenacorp.jp/information/mission

Slide 18

Slide 18 text

ޠ۟ͷΈൈਮ ΑΓଟ͘ͷΫϦΤΠλʔ ଟ༷ͳٕज़ ਓͷੜ׆ දݱ͢Δ

Slide 19

Slide 19 text

ਓͷੜ׆͸਺े೥ => αʔϏεͷ࣌ؒతӬଓੑ දݱखஈ͸ଟ༷ => αʔϏεͷଟ༷ੑ

Slide 20

Slide 20 text

αʔϏε਺ 100+ ϩʔϧ਺ 1000+ ఏڙ೥਺ 10years+ ※ ※͜͜Ͱ͸಺෦γεςϜ΍εςʔδϯά؀ڥΛؚΜͩγεςϜ୯Ґ

Slide 21

Slide 21 text

૿͑ଓ͚ΔαʔϏεΛޮ཰Α͘Քಇͤ͞Δ αʔϏεΛ10೥୯ҐͰՔಇͤ͞ଓ͚Δ

Slide 22

Slide 22 text

αʔϏεͷ ʮݸ਺ʯͱʮ࣌ؒʯʹରͯ͠ εέʔϧ͢Δ͜ͱΛ໨ࢦ͢

Slide 23

Slide 23 text

͸ͯͳʹ ͢Ͱʹଘࡏ͢Δཁૉٕज़͔Β ۩ମతͳϏδϣϯΛߟ͑Δ

Slide 24

Slide 24 text

3. Repairable Infrastructure

Slide 25

Slide 25 text

Droot https://github.com/yuuki/droot

Slide 26

Slide 26 text

Droot • DockerΞʔΧΠϒΛchrootͰ࣮ߦ͢Δ͚ͩͷ௒ܰྔΞϓ ϦέʔγϣϯίϯςφΤϯδϯ • Docker͕ఏএ͢ΔBuild -> Ship -> Runͷ֓೦Λ෼ղ͠ɺ ίϯςφΤϯδϯ෦෼ͷΈΛ͸ͯͳΒ࣮͘͠૷ͨ͠΋ͷ

Slide 27

Slide 27 text

ڊେͳج൫ιϑτ΢ΣΞʹ ର͢ΔΞϯνςʔθ

Slide 28

Slide 28 text

ڊେͳج൫ιϑτ΢ΣΞ • طଘͷج൫ιϑτ΢ΣΞ܈ͱͷ࿈ܞ͕೉͍͠ • ෆ҆ఆʹͳͬͨͱ͖ʹରॲͮ͠Β͍ • όʔδϣϯΞοϓ࣌ͷӨڹൣғ͕େ͖͍ • ೥਺͕ܦա͢Δͱɺ৽͍͠΋ͷ΁ೖΕସ͑ͨΓɺఫୀ͢ ΔՄೳੑ΋͋Δ • ௕೥ӡ༻͢ΔΠϯϑϥετϥΫνϟʹ͸޲͔ͳ͍

Slide 29

Slide 29 text

෼ղͱ࠶ߏங

Slide 30

Slide 30 text

΍Γ͍ͨ͜ͱΛখ͞ͳཁૉʹ ෼ղ͠ɺ࠶ߏங͢Δ UNIX఩ֶͷΑ͏ͳߟ͑ํ

Slide 31

Slide 31 text

ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Build Run Ship

Slide 32

Slide 32 text

ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive Fetcher Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό Service Discovery

Slide 33

Slide 33 text

ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive Fetcher Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό Service Discovery

Slide 34

Slide 34 text

ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive Fetcher Service Discovery Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό

Slide 35

Slide 35 text

ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive Fetcher Service Discovery Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό

Slide 36

Slide 36 text

ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫ Archive Registry Archive Builder Archive Uploader Deploy Server Archive Fetcher Service Discovery Archive Extracter Container Engine σϓϩΠλʔήοτ CIαʔό

Slide 37

Slide 37 text

۩ମతͳ࣮૷Λ഑ஔ Amazon S3 droot build awscli furoshiki stretcher Mackerel capze droot run σϓϩΠλʔήοτ CIαʔό

Slide 38

Slide 38 text

෼ղͱ࠶ߏங • ଟ਺ͷαʔϏεΛޮ཰Α͘ӡ༻͢Δʹ͸ڞ௨ج൫͕ඞཁ • ௕ظӡ༻͢ΔαʔϏε͸มԽ͠ଓ͚Δ • ιϑτ΢ΣΞΛখ͘͞γϯϓϧʹ෼ղ͠ɺকདྷͷมߋʹ దԠͰ͖ΔΑ͏ʹ͓ͯ͘͠

Slide 39

Slide 39 text

Repairable मਖ਼ͷ༰қͳ ܽؕ෦෼Λमਖ਼͢ΔͨΊͷมߋΛہॴతʹԡ͑͞Δ͜ ͱ͕Ͱ͖,݁Ռͱͯ͠,ଞͷϓϩάϥϜϞδϡʔϧ,෇ଐจ ॻʹ͸࠷খݶͷӨڹ͔͠༩͑ͳ͍Α͏ͳιϑτ΢ΣΞ ʹؔͯ͠༻͍Δ༻ޠ. http://ejje.weblio.jp/content/repairable

Slide 40

Slide 40 text

Repairable Infrastructure

Slide 41

Slide 41 text

4. Experimentable Infrastructure

Slide 42

Slide 42 text

Q. ࠷΋࣌ؒΛͱΒΕ͍ͯΔ͜ͱ͸ʁ A. γεςϜͷߏ੒΍ঢ়گ͕Θ͔Βͳ͍ͱ ͖ͷௐࠪ

Slide 43

Slide 43 text

αʔϏε਺͕ଟ͍ αʔϏεͷྺ࢙͕௕͍ ☓ ෳࡶ౓ =

Slide 44

Slide 44 text

γεςϜͷঢ়ଶͱৼΔ෣͍Λ ଊ͑ଓ͚Δ͜ͱͷॏཁੑ ʹؾͮ͘

Slide 45

Slide 45 text

Mackerel https://mackerel.io

Slide 46

Slide 46 text

Mackerel • αʔό؅ཧɾ؂ࢹαʔϏε • ΋ͱ΋ͱ͸͸ͯͳͷࣾ಺πʔϧͩͬͨ • 2007೥લޙʹଟ਺ͷαʔϏεΛޮ཰Α͘ߏங͢ΔͨΊ ʹXen HypervisorΛಋೖ • Ծ૝ϗετ਺͕૿େ͠ɺExcelͰ͸؅ཧͰ͖ͳ͘ͳͬͨ • ϗετ৘ใΛϓϩάϥϚϒϧʹѻ͏MackerelΛ։ൃ

Slide 47

Slide 47 text

Mackerel͸ αʔϏεͷଟ༷ੑΛ ղܾ͢ΔͨΊʹൃୡ͖ͯͨ͠

Slide 48

Slide 48 text

୯ͳΔ؂ࢹͰ͸ͳ͍

Slide 49

Slide 49 text

؍ଌ Observation

Slide 50

Slide 50 text

؍ଌ ࢮ׆ঢ়ଶ ϝτϦοΫ ϩά Πϕϯτ αʔό ߏ੒ཁૉ ཁૉಉ࢜ ͷؔ܎

Slide 51

Slide 51 text

ܧଓతͳ؍ଌʹΑΓ աڈΛ஌ΓɺݱࡏΛଊ͑Δ

Slide 52

Slide 52 text

͜͜·Ͱ͸ݟ͍͑ͯΔ ͦͷ࣍ʹ΍Γͨ͘ͳΔ͜ͱ

Slide 53

Slide 53 text

ະདྷΛ༧ଌ͠ɺରԠ͢Δ

Slide 54

Slide 54 text

࣮ݧ Experiment

Slide 55

Slide 55 text

ϑΟʔυόοΫ੍ޚ

Slide 56

Slide 56 text

ϑΟʔυόοΫ੍ޚ͸ɺେن໛Ͱෳࡶ ͳγεςϜΛɺͨͱ͑γεςϜ͕֎ཚ ʹӨڹΛड͚Α͏ͱ΋ɺ͋Δ͍͸ɺݶ ΒΕͨࢿݯΛ༗ޮར༻ͭͭ͠ɺͦͷੑ ೳΛอͬͯಈ࡞ͤ͞ΔͨΊͷख๏Ͱ͢ɻ Philipp K. Janert ஶ, ʮΤϯδχΞͷͨΊͷϑΟʔυόοΫ੍ޚೖ໳ʯ,ΦϥΠϦʔɾδϟύϯ, 2014/07

Slide 57

Slide 57 text

ϑΟʔυόοΫ੍ޚͷ஫໨఺ • ੍ޚର৅͸ϒϥοΫϘοΫεͰ͋Γɺத਎͸ෆ໌ͰΑ͍ • OpsΤϯδχΞ͕ΞϓϦέʔγϣϯͷத਎Λ஌ΒͣʹϞχ λϦϯά݁Ռ͚ͩΛΈͯো֐ରԠ͢Δ༷ࢠʹࣅ͍ͯΔ • ॻ੶ʹαʔόͷ਺ͷௐ੔΍Ωϟογϡώοτ཰΁ͷԠ༻ྫ ͕͋Δ • WebγεςϜ͸ෳࡶ͗ͯ͢ཧ࿦ϞσϧΛಋग़͢Δͷ͸೉͠ ͍ͨΊɺύϥϝʔλͷܾఆʹ͸ʮ࣮ݧʯʹΑΔܭଌ͕ඞཁ

Slide 58

Slide 58 text

ϑΟʔυόοΫ੍ޚͷಋೖΠϝʔδ • ੍ޚೖྗ: αʔόͷ୆਺ɺαʔόͷϝϞϦྔͳͲ • ੍ޚग़ྗ: ϨεϙϯελΠϜɺΤϥʔ਺ͳͲ • ੍ޚग़ྗΛ؂ࢹ͠ଓ͚ɺ໨ඪ஋͔Β֎ΕͨΒ੍ޚೖྗΛมߋ ͠ɺݩʹ໭͢Α͏ͳૢ࡞Λ͢Δ • ੍ޚೖྗʹରͯ͠఻ୡؔ਺Λద༻͠ɺ੍ޚग़ྗΛಘΔ • ఻ୡؔ਺ͷಉఆͱνϡʔχϯά͸ɺ࣮γεςϜͰԠ౴ΛΈΔ ඞཁ͕͋Δ

Slide 59

Slide 59 text

ຊ൪؀ڥΛյ͢ͷ͸ෆ҆

Slide 60

Slide 60 text

ຊ൪ʹ͍ۙ؀ڥΛ࡞Δٕज़Λൃୡͤ͞ ύϥϝʔλΛ͔࣮͑ͯݧΛ܁Γฦ͠ɺ ϞσϧΛߏங͢Δ Container, Serverless Architecture, Shadow Proxyɺ

Slide 61

Slide 61 text

ຊ൪؀ڥ ࣮ݧ؀ڥ ؍ଌγεςϜ ࣮ݧ ಈ࡞Ԡ౴Ϟσϧ ϑΟʔυόοΫ ੍ޚ

Slide 62

Slide 62 text

࣮ݧΛݩʹະདྷͷ؍ଌΛ͢Δ

Slide 63

Slide 63 text

Experimentable Infrastructure

Slide 64

Slide 64 text

5. ·ͱΊ

Slide 65

Slide 65 text

͸ͯͳγεςϜ

Slide 66

Slide 66 text

αʔϏεͷ ʮݸ਺ʯͱʮ࣌ؒʯʹରͯ͠ εέʔϧͤ͞ΔͨΊʹ

Slide 67

Slide 67 text

෼ղͱ࠶ߏஙʹΑΓRepairableʹߏங͞Ε ؍ଌͱ࣮ݧͷϧʔϓΛߴ଎ʹճ͠ͳ͕Β ࣗ཯తʹಈ࡞͢ΔExprimentableͳγεςϜ

Slide 68

Slide 68 text

http://hatenacorp.jp/recruit/career/operation-engineer WebΦϖϨʔγϣϯΤϯδχΞੵۃืूத