Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はてなシステム構想 / The concept of Hatena System

はてなシステム構想 / The concept of Hatena System

ペパボ・はてな技術大会@福岡

Yuuki Tsubouchi (yuuk1)

October 07, 2017
Tweet

More Decks by Yuuki Tsubouchi (yuuk1)

Other Decks in Research

Transcript

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

    View Slide

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

    View Slide

  3. ͸ͯͳγεςϜ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  8. ͦͯ͠ɺ1೥൒ܦա

    View Slide

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

    View Slide

  10. 1.΍Γ͍ͨ͜ͱ

    View Slide

  11. ΤϯδχΞ͕ӡ༻ʹർฐͤͣʹ
    ૑଄ੑΛൃشͯ͠
    ָ͘͠։ൃͰ͖ΔΑ͏ʹ͍ͨ͠

    ※ಛʹɺSREɺWebΦϖϨʔγϣϯΤϯδχΞɺΠϯϑϥΤϯδχΞΛࢦ͢

    View Slide

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

    View Slide

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

    View Slide

  14. 2. ͸ͯͳγεςϜͱ͸

    View Slide

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

    View Slide

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

    View Slide

  17. http://hatenacorp.jp/information/mission

    View Slide

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

    View Slide

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

    View Slide

  20. αʔϏε਺ 100+
    ϩʔϧ਺ 1000+
    ఏڙ೥਺ 10years+

    ※͜͜Ͱ͸಺෦γεςϜ΍εςʔδϯά؀ڥΛؚΜͩγεςϜ୯Ґ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. 3. Repairable
    Infrastructure

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. ෼ղͱ࠶ߏங

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  40. Repairable
    Infrastructure

    View Slide

  41. 4. Experimentable
    Infrastructure

    View Slide

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

    View Slide

  43. αʔϏε਺͕ଟ͍
    αʔϏεͷྺ࢙͕௕͍

    ෳࡶ౓ =

    View Slide

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

    View Slide

  45. Mackerel
    https://mackerel.io

    View Slide

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

    View Slide

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

    View Slide

  48. ୯ͳΔ؂ࢹͰ͸ͳ͍

    View Slide

  49. ؍ଌ
    Observation

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  54. ࣮ݧ
    Experiment

    View Slide

  55. ϑΟʔυόοΫ੍ޚ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  59. ຊ൪؀ڥΛյ͢ͷ͸ෆ҆

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  63. Experimentable
    Infrastructure

    View Slide

  64. 5. ·ͱΊ

    View Slide

  65. ͸ͯͳγεςϜ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide