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

full test also want to end within 50ms

full test also want to end within 50ms

Tatasuro Hisamori

September 21, 2013
Tweet

More Decks by Tatasuro Hisamori

Other Decks in Technology

Transcript

  1. ϑϧςετ΋
    NTͰऴΘΒ͍ͤͨ
    :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    13೥9݄22೔೔༵೔

    View Slide

  2. :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    ςετ؀ڥͱ$*
    13೥9݄22೔೔༵೔

    View Slide

  3. U6UJMT
    full  test  also  want  to  end  within  50ms
    • ςετΛḿΒͤΔϢʔςΟϦςΟ
    • ઀ଓઌDBΛςετ༻ʹஔ͖׵͑Δ
    • ςετຖʹىಈ͢Δmemcached౳ͷport൪߸Λஔ͖׵͑
    Δ
    • ͳͲɺPerlҎ֎ͷϛυϧ΢ΣΞ࿈ܞΛαϙʔτ͢Δ
    13೥9݄22೔೔༵೔

    View Slide

  4. UVUJMT.BLF)FMQFS
    full  test  also  want  to  end  within  50ms
    • ϔϧύϞδϡʔϧ
    • खݩͰmake  testΛ૸ΒͤΔ࣌ʹTest::Prettyʹ੾Γସ͑ͨ
    ͍ͳͲͷཁٻΛٵऩ͢Δ
    • runtests  ʹςετҰཡΛ౉͢લʹγϟοϑϧ͢Δ
    • ͳͲͷॲཧΛߦ͏
    13೥9݄22೔೔༵೔

    View Slide

  5. UVUJMT.BLF)FMQFS
    full  test  also  want  to  end  within  50ms
    • ςετ࣮ߦॱংͷγϟοϑϧ
    • ͓͢͢Ί
    • ஌Βͳ͍ؒʹॱংʹґଘ͢ΔςετΛॻ͍ͯ͠·ͬͯ΋
    ؾ͚ͮΔ
    • DBͷcleanup࿙Ε͕ൃੜ͢Δͷʹؾ͔ͮͳ͍έʔε
    • ಉ͡ϑΝΠϧ໊Λҧ͏ςετ͔Βࢀর͢Δέʔε
    13೥9݄22೔೔༵೔

    View Slide

  6. :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    6LJHVNPͱͷ͖͍ͭ͋
    13೥9݄22೔೔༵೔

    View Slide

  7. • ಛʹखೖΕ͸ͤͣͦͷ··ར༻
    • ͦͷඞཁ΋ͳ͍ͷͰ
    6LJHVNP4FSWFS
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  8. • ར༻͍ͯ͠ͳ͍
    • ಠࣗͷ࣮૷Λͯ͠·͢
    6LJHVNP$MJFOU
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  9. • CIΛ։࢝͢ΔͨΊͷ࿮૊Έ
    • ςετະ࣮ߦͷϒϥϯνΛ୳࣮ͯ͠ߦ
    • SQLiteʹ࣮ߦͨ͠ϒϥϯν໊/ϦϏδϣϯΛه࿥
    • ςετ݁ՌΛUkigumo::ServerҎ֎ʹpost͢Δ
    • ࠓͷͱ͜Ζϝʔϧ͘Β͍
    '0VU5FTUFS
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  10. :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    ૿͑ͨςετͷ࣮ߦߴ଎Խ
    13೥9݄22೔೔༵೔

    View Slide

  11. • ͔͔࣌ؒΓ͗͢
    • ϒϥϯν͕͍ͭ͘΋͋Δͱ݁Ռ͕Θ͔Δ·Ͱ଴ͨ͞ΕΔ
    • ϝϯόʔ  /  ։ൃҊ͕݅૿͑Ε͹૿͑Δ΄Ͳ଴ͨ͞ΕΔ
    • ଴ͨ͞Εͨ຤ʹ  fail  ͱ͔ͯͨ͠Β΍Δؾ͕ͳ͘ͳΔ
    • ࣄނϦεΫ͕ߴ·Δ
    • ʮ஗͍͔ΒखݩͰमਖ਼ͨ͠෼͚ͩςετͯ͠ϦϦʔεʯ
    • ͦͯ͠୭΋ϑϧςετΛ͠ͳ͘ͳͬͯ…
    ໰୊఺
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  12. εέʔϧ͢Δ
    ΍ΓํʹมΘΔඞཁ͕͋Δ
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  13. ߴ଎Խʹ͋ͨͬͯ
    :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    13೥9݄22೔೔༵೔

    View Slide

  14. • طଘͷςετΛॻ͖׵͑ͳ͍
    • ॻ͔Εͨςετ͕ͦͷ··ಈ͘͜ͱ
    • طଘͷCIαʔόͱ਌࿨ੑ͕ߴ͍
    • Ukigumo::Server  ͸ܧଓͯ͠࢖͍͍ͨ
    • εέʔϧ͢Δ͜ͱ
    • ςετ਺͕10ഒʹͳͬͯ΋ػೳ͢Δ࢓૊ΈͰ͋Δ͜ͱ
    ߴ଎Խͷલఏ
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  15. • ෼ࢄ࣮ߦͤ͞Δ
    • ෳ਺ͷαʔόͰ෼ࢄ࣮ߦ͠ɺϊʔυ௥ՃͰεέʔϧ͢Δ
    Α͏ʹ͍ͨ͠
    • αʔόͷ௥Ճ/ϝϯς͕༰қ
    • ؆୯ͳconfigͰ؅ཧͯ͠ΏΔ;Θʹ௥Ճ/ϝϯς͍ͨ͠
    • ࠶࣮ߦ΋؆୯ʹग़དྷΔΑ͏ʹ͍ͨ͠
    • ෳ਺ͷαʔόʹ౤͛ΔͷͰɺ໰୊͕͋ͬͨ࣌ʹ͸࠶࣮ߦ
    Λ͙͢Ͱ͖ΔΑ͏ʹ͍ͨ͠
    ࣮૷ํ਑
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  16. ෼ࢄ࣮ߦͷ࿮૊Έ
    :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    13೥9݄22೔೔༵೔

    View Slide

  17. Ϛελϊʔυ
    Ϋϥελϊʔυ
    'test1.t'
    'test2.t'
    'test3.t'
    'test4.t'
    'test5.t'
    'test6.t'
    ࣮ߦର৅ςετ
    'test1.t', 'test6.t'
    'test2.t', 'test4.t'
    'test3.t', 'test5.t'
    ෼ࢄ࣮ߦͷ࿮૊Έ
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  18. • ςετͷϐοΫΞοϓ/γϟοϑϧ/ׂ౰
    • File::Find,  List::MoreUtils  Ͱऔಘͯ͠Ϋϥελʹׂ౰
    • Ϋϥελϊʔυ΁ͷ࣮ߦ໋ྩ  /݁Ռडऔ
    • Parallel::ForkManager,  Net::OpenSSH  Ͱฒྻ࣮ߦ
    • ݁Ռͷύʔεͱ  Ukigumo  ΁ͷ  post
    • fail਺ͷΧ΢ϯτ,  LWP  Ͱ  post
    • ࣮ߦ
    • ϊʔυଆͰ  TAP::Harness::runtests  ʹςετΛ౉࣮ͯ͠ߦ
    ࣮૷
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  19. ࠶࣮ߦ
    :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    13೥9݄22೔೔༵೔

    View Slide

  20. • ϚελϊʔυͰ࠶࣮ߦWebAppΛىಈ
    • ࣮ࢪঢ়گΛอଘ͍ͯ͠ΔSQLite͔Β౰֘ϒϥϯν৘ใΛ
    ফ͚ͩ͢
    • Chrome  ֦ுͰ  Ukigumo  ʹϘλϯ௥Ճ
    • Ukigumo  ͦͷ΋ͷʹखΛೖΕͨ͘ͳ͍
    ࣮૷
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  21. ݁Ռ
    :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    13೥9݄22೔೔༵೔

    View Slide

  22. ߴ଎Խͷ݁Ռ
    full  test  also  want  to  end  within  50ms
    OPEF TFDT
    ˣ
    OPEF TFD
    13೥9݄22೔೔༵೔

    View Slide

  23. • ૉ௚ʹαʔόΛ଍ͤ͹εέʔϧ͢Δ
    • αʔόΛηοτΞοϓͯ͠ɺ୯ಠͰmake  test͕௨Ε͹Ϋ
    ϥελʹ౤ೖՄೳ  -­‐>  PuppetͰOK
    • ࠶࣮ߦϘλϯ͕ؾܰʹԡͤΔ
    • ͍͍ͩͨ180ඵͰ݁Ռ͕ฦͬͯ͘ΔͷͰɺԿΒ͔ͷࣦഊ
    ͕͋ͬͯ΋͙͢࠶࣮ߦͰ͖Δ
    • खݩͰ΍ΔΑΓpushͨ͠΄͏͕଎͍
    • ଞͷਓͷ։ൃΞΫςΟϏςΟ͕ݟ͑΍͘͢ͳΔ
    ݁Ռ
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  24. • “खݩͰ΍ΔΑΓpushͨ͠΄͏͕଎͍”
    • ʮͱΓ͋͑ͣpush͢ΔʯΈ͍ͨͳจԽʹ࢓޲͚Δ
    • νʔϜϝϯόʔʹର͢ΔποίϛϏϦςΟ্͕͕Δ
    • ݁Ռɺ඼࣭଎౓ͷ޲্͕ਤΕΔ
    خ͍͠ޡࢉ
    full  test  also  want  to  end  within  50ms
    13೥9݄22೔೔༵೔

    View Slide

  25. خ͍͠ޡࢉ
    full  test  also  want  to  end  within  50ms
    ߴ଎ͳςετ͸
    ։ൃจԽΛม͑Δ
    13೥9݄22೔೔༵೔

    View Slide

  26. ͓ΘΓʹ΋͏ͻͱͭ
    :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz
    13೥9݄22೔೔༵೔

    View Slide

  27. ςετ͸
    ͲΜͲΜॻ͜͏
    ͓ΘΓʹ
    13೥9݄22೔೔༵೔

    View Slide

  28. ͓ΘΓʹ
    13೥9݄22೔೔༵೔

    View Slide

  29. ΋͏QVTIຖʹ
    ϑϧςετ͠Α͏
    ͓ΘΓʹ
    13೥9݄22೔೔༵೔

    View Slide

  30. ͓ΘΓʹ
    full  test  also  want  to  end  within  50ms
    ߴ଎ͳςετ͸
    ։ൃจԽΛม͑·͢
    13೥9݄22೔೔༵೔

    View Slide