ペパボ・はてな技術大会@福岡
ͯͳγεςϜߏͯͳ id:y_uukiϖύϘɾͯͳٕज़େձ@Ԭ
View Slide
id:y_uuki / @y_uuk1TSUBOUCHI Yuukihttps://yuuk.io/גࣜձࣾͯͳWebΦϖϨʔγϣϯΤϯδχΞ / γχΞΤϯδχΞ/ ςοΫϦʔυ / ج൫։ൃνʔϜϦʔμʔ
ͯͳγεςϜ
https://twitter.com/y_uuk1/status/722085103166296065
https://twitter.com/matsumotory/status/722085980375621632
https://twitter.com/matsumotory/status/722232813668274177
https://twitter.com/kentaro/status/722233495632764928
ͦͯ͠ɺ1ܦա
ͯͳγεςϜߏɾ1. Γ͍ͨ͜ͱɾ2. ͯͳγεςϜͱɹɾ3. Repairable Infrastructureɹɾ4. Experimentable Infrastructureɹɾ5. ·ͱΊɹ
1.Γ͍ͨ͜ͱ
ΤϯδχΞ͕ӡ༻ʹർฐͤͣʹੑΛൃشָͯ͘͠͠։ൃͰ͖ΔΑ͏ʹ͍ͨ͠※※ಛʹɺSREɺWebΦϖϨʔγϣϯΤϯδχΞɺΠϯϑϥΤϯδχΞΛࢦ͢
Γ͍ͨ͜ͱ• ઓज़తͳγεςϜվળͷݶք͕Έ͖͑ͯͨ• ΤϯδχΞͷٕज़ʹΑΔղܾೳྗ͋͘͢͝ΔͷͰɺγεςϜӡ༻ͷτΠϧ(࿑ۤ)ΛͬͱݮΒ͍ͨ͠• γεςϜӡ༻͔Βղ์͞Εɺతͳ։ൃΛ͍͖͍ͬͯͨ
ͳͥϏδϣϯ͔• γεςϜʹର͢ΔϏδϣϯ͕·ͣඞཁͩͱײͨ͡• ϏδϣϯͱͦΕʹجͮ͘ઓུΛܾఆ͢Δ͜ͱͰޮՌతʹγεςϜΛվળ͍ͯ͘͠• ͋͑ͯநతࢥߟΛਪ͠ਐΊΔ͜ͱͰݶքΛಥഁ͢Δ• ͳΊΒ͔ͳγεςϜ͕͖
2. ͯͳγεςϜͱ
ͯͳͷϏδϣϯ͔Βಋग़
http://hatenacorp.jp/information/missionʮΔʯʮͭͳ͕Δʯʮදݱ͢ΔʯͰ৽͍͠ମݧΛఏڙ͠ɺਓͷੜ׆Λ๛͔ʹ͢Δ
http://hatenacorp.jp/information/mission
ޠ۟ͷΈൈਮΑΓଟ͘ͷΫϦΤΠλʔଟ༷ͳٕज़ਓͷੜ׆දݱ͢Δ
ਓͷੜ׆े => αʔϏεͷ࣌ؒతӬଓੑදݱखஈଟ༷ => αʔϏεͷଟ༷ੑ
αʔϏε 100+ϩʔϧ 1000+ఏڙ 10years+※※͜͜Ͱ෦γεςϜεςʔδϯάڥΛؚΜͩγεςϜ୯Ґ
૿͑ଓ͚ΔαʔϏεΛޮΑ͘Քಇͤ͞ΔαʔϏεΛ10୯ҐͰՔಇͤ͞ଓ͚Δ
αʔϏεͷʮݸʯͱʮ࣌ؒʯʹରͯ͠εέʔϧ͢Δ͜ͱΛࢦ͢
ͯͳʹ͢Ͱʹଘࡏ͢Δཁૉٕज़͔Β۩ମతͳϏδϣϯΛߟ͑Δ
3. RepairableInfrastructure
Droothttps://github.com/yuuki/droot
Droot• DockerΞʔΧΠϒΛchrootͰ࣮ߦ͢Δ͚ͩͷܰྔΞϓϦέʔγϣϯίϯςφΤϯδϯ• Docker͕ఏএ͢ΔBuild -> Ship -> Runͷ֓೦Λղ͠ɺίϯςφΤϯδϯ෦ͷΈΛͯͳΒ࣮ͨ͘͠͠ͷ
ڊେͳج൫ιϑτΣΞʹର͢ΔΞϯνςʔθ
ڊେͳج൫ιϑτΣΞ• طଘͷج൫ιϑτΣΞ܈ͱͷ࿈ܞ͕͍͠• ෆ҆ఆʹͳͬͨͱ͖ʹରॲͮ͠Β͍• όʔδϣϯΞοϓ࣌ͷӨڹൣғ͕େ͖͍• ͕ܦա͢Δͱɺ৽͍͠ͷೖΕସ͑ͨΓɺఫୀ͢ΔՄೳੑ͋Δ• ӡ༻͢ΔΠϯϑϥετϥΫνϟʹ͔ͳ͍
ղͱ࠶ߏங
Γ͍ͨ͜ͱΛখ͞ͳཁૉʹղ͠ɺ࠶ߏங͢ΔUNIXֶͷΑ͏ͳߟ͑ํ
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫBuild RunShip
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫArchive RegistryArchive BuilderArchive UploaderDeploy ServerArchive FetcherArchive ExtracterContainerEngineσϓϩΠλʔήοτCIαʔόServiceDiscovery
ΞϓϦέʔγϣϯσϓϩΠϝϯτͷྫArchive RegistryArchive BuilderArchive UploaderDeploy ServerArchive FetcherServiceDiscoveryArchive ExtracterContainerEngineσϓϩΠλʔήοτCIαʔό
۩ମతͳ࣮ΛஔAmazon S3droot buildawsclifuroshikistretcherMackerelcapzedroot runσϓϩΠλʔήοτCIαʔό
ղͱ࠶ߏங• ଟͷαʔϏεΛޮΑ͘ӡ༻͢Δʹڞ௨ج൫͕ඞཁ• ظӡ༻͢ΔαʔϏεมԽ͠ଓ͚Δ• ιϑτΣΞΛখ͘͞γϯϓϧʹղ͠ɺকདྷͷมߋʹదԠͰ͖ΔΑ͏ʹ͓ͯ͘͠
Repairableमਖ਼ͷ༰қͳܽؕ෦Λमਖ਼͢ΔͨΊͷมߋΛہॴతʹԡ͑͞Δ͜ͱ͕Ͱ͖,݁Ռͱͯ͠,ଞͷϓϩάϥϜϞδϡʔϧ,ଐจॻʹ࠷খݶͷӨڹ͔͠༩͑ͳ͍Α͏ͳιϑτΣΞʹؔͯ͠༻͍Δ༻ޠ.http://ejje.weblio.jp/content/repairable
RepairableInfrastructure
4. ExperimentableInfrastructure
Q. ࠷࣌ؒΛͱΒΕ͍ͯΔ͜ͱʁA. γεςϜͷߏঢ়گ͕Θ͔Βͳ͍ͱ͖ͷௐࠪ
αʔϏε͕ଟ͍αʔϏεͷྺ࢙͕͍☓ෳࡶ =
γεςϜͷঢ়ଶͱৼΔ͍Λଊ͑ଓ͚Δ͜ͱͷॏཁੑʹؾͮ͘
Mackerelhttps://mackerel.io
Mackerel• αʔόཧɾࢹαʔϏε• ͱͱͯͳͷࣾπʔϧͩͬͨ• 2007લޙʹଟͷαʔϏεΛޮΑ͘ߏங͢ΔͨΊʹXen HypervisorΛಋೖ• Ծϗετ͕૿େ͠ɺExcelͰཧͰ͖ͳ͘ͳͬͨ• ϗετใΛϓϩάϥϚϒϧʹѻ͏MackerelΛ։ൃ
MackerelαʔϏεͷଟ༷ੑΛղܾ͢ΔͨΊʹൃୡ͖ͯͨ͠
୯ͳΔࢹͰͳ͍
؍ଌObservation
؍ଌࢮ׆ঢ়ଶ ϝτϦοΫ ϩάΠϕϯτ αʔόߏཁૉཁૉಉ࢜ͷؔ
ܧଓతͳ؍ଌʹΑΓաڈΛΓɺݱࡏΛଊ͑Δ
͜͜·Ͱݟ͍͑ͯΔͦͷ࣍ʹΓͨ͘ͳΔ͜ͱ
ະདྷΛ༧ଌ͠ɺରԠ͢Δ
࣮ݧExperiment
ϑΟʔυόοΫ੍ޚ
ϑΟʔυόοΫ੍ޚɺେنͰෳࡶͳγεςϜΛɺͨͱ͑γεςϜ͕֎ཚʹӨڹΛड͚Α͏ͱɺ͋Δ͍ɺݶΒΕͨࢿݯΛ༗ޮར༻ͭͭ͠ɺͦͷੑೳΛอͬͯಈ࡞ͤ͞ΔͨΊͷख๏Ͱ͢ɻPhilipp K. Janert ஶ, ʮΤϯδχΞͷͨΊͷϑΟʔυόοΫ੍ޚೖʯ,ΦϥΠϦʔɾδϟύϯ, 2014/07
ϑΟʔυόοΫ੍ޚͷ• ੍ޚରϒϥοΫϘοΫεͰ͋Γɺதෆ໌ͰΑ͍• OpsΤϯδχΞ͕ΞϓϦέʔγϣϯͷதΛΒͣʹϞχλϦϯά݁Ռ͚ͩΛΈͯোରԠ͢Δ༷ࢠʹࣅ͍ͯΔ• ॻ੶ʹαʔόͷͷௐΩϟογϡώοτͷԠ༻ྫ͕͋Δ• WebγεςϜෳࡶ͗ͯ͢ཧϞσϧΛಋग़͢Δͷ͍ͨ͠Ίɺύϥϝʔλͷܾఆʹʮ࣮ݧʯʹΑΔܭଌ͕ඞཁ
ϑΟʔυόοΫ੍ޚͷಋೖΠϝʔδ• ੍ޚೖྗ: αʔόͷɺαʔόͷϝϞϦྔͳͲ• ੍ޚग़ྗ: ϨεϙϯελΠϜɺΤϥʔͳͲ• ੍ޚग़ྗΛࢹ͠ଓ͚ɺඪ͔Β֎ΕͨΒ੍ޚೖྗΛมߋ͠ɺݩʹ͢Α͏ͳૢ࡞Λ͢Δ• ੍ޚೖྗʹରͯ͠ୡؔΛద༻͠ɺ੍ޚग़ྗΛಘΔ• ୡؔͷಉఆͱνϡʔχϯάɺ࣮γεςϜͰԠΛΈΔඞཁ͕͋Δ
ຊ൪ڥΛյ͢ͷෆ҆
ຊ൪ʹ͍ۙڥΛ࡞Δٕज़Λൃୡͤ͞ύϥϝʔλΛ͔࣮͑ͯݧΛ܁Γฦ͠ɺϞσϧΛߏங͢ΔContainer, Serverless Architecture,Shadow Proxyɺ
ຊ൪ڥ࣮ݧڥ؍ଌγεςϜ࣮ݧಈ࡞ԠϞσϧϑΟʔυόοΫ੍ޚ
࣮ݧΛݩʹະདྷͷ؍ଌΛ͢Δ
ExperimentableInfrastructure
5. ·ͱΊ
αʔϏεͷʮݸʯͱʮ࣌ؒʯʹରͯ͠εέʔϧͤ͞ΔͨΊʹ
ղͱ࠶ߏஙʹΑΓRepairableʹߏங͞Ε؍ଌͱ࣮ݧͷϧʔϓΛߴʹճ͠ͳ͕Βࣗతʹಈ࡞͢ΔExprimentableͳγεςϜ
http://hatenacorp.jp/recruit/career/operation-engineerWebΦϖϨʔγϣϯΤϯδχΞੵۃืूத