$30 off During Our Annual Pro Sale. View Details »

カヤックのゲーム開発・運用の「今」 力技と効率化の先に我々が目にしたものとは / YAPC Kansai 2017 Development of the Bokura No Koshien Pocket

mackee
March 04, 2017

カヤックのゲーム開発・運用の「今」 力技と効率化の先に我々が目にしたものとは / YAPC Kansai 2017 Development of the Bokura No Koshien Pocket

YAPC::Kansai OSAKA 2017
2017-03-04 #yapcjapan #yapcjapanB

mackee

March 04, 2017
Tweet

More Decks by mackee

Other Decks in Programming

Transcript

  1. ΧϠοΫͷήʔϜ
    ։ൃɾӡ༻ͷʮࠓʯ
    ྗٕͱޮ཰Խͷઌʹ
    զʑ͕໨ʹͨ͠΋ͷͱ͸
    @mackee_w a.k.a macopy
    YAPC::Kansai 2017 OSAKA 2017-03-04

    View Slide

  2. ͓લ୭ʁʁʁʁʁ

    View Slide

  3. ͓લ୭ʁʁʁʁʁ
    ͓࢓ࣄιʔγϟϧήʔϜͷαʔ
    όαΠυͷ։ൃͱӡ༻ 1FSM

    HJUIVCNBDLFF
    UXJUUFS!NBDLFF@X
    1"64&."$01:
    ࢓ࣄ͸1FSM͕
    झຯ͸(P͕ ΄΅

    Α͘পʹؕΓ͕ͪ ࠷ۙ͸73

    View Slide

  4. ࠓ೔ͷ࿩:
    ʮ΅͘ΒͷߕࢠԂϙέοτʯͷ
    ӡ༻ͱ։ൃͷ࿩

    View Slide

  5. టष͍࿩Λ΍͍ͬͯͧ̇͘

    View Slide

  6. ΅͘ΒͷߕࢠԂϙέοτͱ͸ʁ

    View Slide

  7. ΅͘ΒͷߕࢠԂϙέοτͷಛ௃
    • 1೔4ճͷന೤ͨ͠ࢼ߹ʂɹ܅ͷεΩϧͱΤʔϧ
    ͕উഊΛ෼͚Δʂʂʂ
    -> 1೔4ճόοναʔό͕age㽉age㽉͢Δ
    • ͻ͖ͬΓͳ͠ʹ։࠵͞ΕΔ༷ʑͳϛχήʔϜΠϕ
    ϯτʂʂʂɹ໺ٿҎ֎΋ָ͠ΊΔͧʂ
    ɹ-> ຖ೔σϓϩΠຖ೔։ൃʘ(^o^)ʗ

    View Slide

  8. ΅͘ΒͷߕࢠԂϙέοτͷಛ௃
    • 1೔4ճͷന೤ͨ͠ࢼ߹ʂɹ܅ͷεΩϧͱΤʔϧ
    ͕উഊΛ෼͚Δʂʂʂ
    -> 1೔4ճόοναʔό͕age㽉age㽉͢Δ
    • ͻ͖ͬΓͳ͠ʹ։࠵͞ΕΔ༷ʑͳϛχήʔϜΠϕ
    ϯτʂʂʂɹ໺ٿҎ֎΋ָ͠ΊΔͧʂ
    ɹ-> ຖ೔σϓϩΠຖ೔։ൃʘ(^o^)ʗ

    View Slide

  9. ͱ͍͏ͷΛͲ͏৐Γ੾͍ͬͯΔ͔Λ
    ྺ࢙Λަ͑ͯ঺հ͠·͢

    View Slide

  10. ࠓ͔Β࿩͢͜ͱ
    1. ߏ੒ͷมભͱDBICͱDateTime.pm
    2.ΨϯΨϯ΍ͬͯ͘ΔΠϕϯτΛӈ͔Βࠨ΁΍ͬ
    ͍͖ͯ͢Δख๏ʹ͍ͭͯ
    3. 30ݸҎ্։ൃ༻ίϯςφཱ͕͍ͬͯͯ

    ͍ͭ΋ɹ͕ɹ͍ͬͯΔ࿩
    +FOLJOTMPHPCZ+FOLJOT1SPKFDUIUUQTKFOLJOTJP

    View Slide

  11. ߏ੒ͷมભͱDBICͱ
    DateTime.pm

    View Slide

  12. Πϯϑϥʹ͍ͭͯ͸ͪ͜Β͕ৄ͍͠
    IUUQTTQFBLFSEFDLDPNULVDIJLJOJBOKJBOZVOZPOHTJUFJSVTPTJZBSVHFNVGBMTFTBCBHPVDIFOHGBMTFCJBORJBO

    View Slide

  13. ݱࡏͷΠϯϑϥߏ੒

    View Slide

  14. ϦϦʔε౰ॳͷΠϯϑϥߏ੒
    • உؾ͋;ΕΔγϯάϧϚελʔɾϊʔεϨʔϒ
    • ؅ཧը໘͸εϨʔϒ
    • RDS for MySQL(5.6)
    • ElastiCache RedisͰ͸ͳ͘Redis SentinelͰӡ༻
    • WebAppͱBatchपΓ͸ߏ੒ʹมԽͳ͠
    • deploy͕Archer͔Βstretcherʹͳͬͨ͘Β͍
    • ϩάͷྲྀΕ͸͍ͩͿมΘ͍ͬͯΔ

    View Slide

  15. ϦϦʔε౰ॳͷ໰୊:
    ࢼ߹͕ॏ͍

    View Slide

  16. ݱࡏͷ͋Δ೔ͷreq/sec

    View Slide

  17. ݱࡏͷ͋Δ೔ͷreq/sec
    ϩʔΧϧϓογϡͰ௚લͷഒͰۦ্͚͕Δ

    View Slide

  18. ͜Ε͕1೔4ճ㽉㽉㽉㽉

    View Slide

  19. ىͬͨ͜͜ͱ
    • όοναʔό͕ॏ͘ࢼ߹ਐߦ͕͔͔Γ͗͢Δ
    • DBͷෛՙͰଞͷAPI΋஗Ԇ࢝͠ΊΔ
    • ࢼ߹த͸εϨʔϒ஗ԆͰ؅ཧը໘͕10෼஗Ε
    ͱ͔ʹͳΔ
    • Redisͷసૹྔʘ(^o^)ʗ

    View Slide

  20. ΍ͬͨ͜ͱ
    • ໷ͷࢼ߹Λ੢೔ຊͱ౦೔ຊͰ2෼ׂʹ͢Δ
    • ήʔϜ಺ͷνʔϜ͸஍ҬʹΑͬͯ෼ׂ͞Εͯ
    ͍Δ
    • 18࣌ͱ22࣌ͩͬͨͷΛ18/19࣌ͱ22/23࣌ʹ

    View Slide

  21. 1೔4ճ㽉㽉㽉㽉

    1೔6ճ㽉㽉㽉㽉㽉㽉

    View Slide

  22. ϚελDBͷΫΤϦൃߦ਺

    View Slide

  23. ͦͷଞ
    • DBICͰͷPrefetchͷ׆༻
    • N + 1ΫΤϦΛpt-query-digestͱ͔Ͱݟ͚ͭͯҰͭͷ
    ΫΤϦʹ·ͱΊΔ
    • RedisʹΩϟογϡ͍ͯ͠Δࢼ߹σʔλΛlz4Ͱѹॖͯ͠
    ऩΊΔ
    • WebAppαʔό͸ԣʹฒ΂ΒΕΔ͔ΒগʑͷCPUίε
    τ͸෷͏

    View Slide

  24. ͦͷଞ
    • εϨʔϒ஗Ԇ͸IOPS͕଍Γͳ͔ͬͨͷͰIOPS
    Λ૿΍͢
    • ͓ۚ͸͔͔Δ
    • ؅ཧը໘ʹ࢖͍ͬͯͨεϨʔϒʹ޲͚Δ࢓૊
    ΈΛຊ൪ΞϓϦʹ΋ద༻ͯ͠Ϛελ΁ͷෛՙ
    Λ࡟ݮ͢Δ

    View Slide

  25. ͍͍ͩͨDBͰࠔ͍ͬͯΔ
    • RedisͰͷΩϟογϡ͸Ͱ͖Δ͚ͩ࢖Θͳ͍ํ਑
    • ύʔςΟγϣϯʹΑΔ࣮ߦܭըͷ༳Ε
    • TEXTͷΧϥϜʹΊͪΌͰ͔͍JSONಥͬࠐΜͰ
    సૹྔ௓ͶΔ
    • RDSͷϝϯςφϯε

    View Slide

  26. Perlͷ࿩

    View Slide

  27. WebAppͰ࢖͍ͬͯΔ΍ͭ
    • Perl 5.16.3 EOLͳͷͰ͍͋͛ͨ
    • Ark + DBIx::Class + DateTime.pm…
    • ΫϥεϏϧμ͸MouseΛଟ༻͍ͯ͠Δ

    View Slide

  28. ʮAPI͸΍͍͓ͨ͘͠ʙʯ
    • DBIC͸ศརɺ͔͠͠஗͍
    • ҎલDevel::NYTProfΛ͔͚ͨΒ΄΅DBICͱ͍͏݁Ռ͕ग़ͨ
    ͜ͱ΋

    View Slide

  29. DateTime.pm
    • DateTime.pm͸ඇৗʹଟػೳ͕ͩੜ੒ίετ
    ͕ߴ͍
    • $row->created_atͰऔΔͱDateTimeʹͳͬ
    ͪΌ͏ͷͰ$row->get_column(“created_at”)
    Ͱऔͬͯeq΍Βlt/gtͰൺֱ͢ΔςΫ΋͋Δ
    • (Θ͔Γʹ͍͘)

    View Slide

  30. DateTime.pmͱ͏Δ͏ඵ
    • Perl ͷ DateTime ར༻্ͷ஫ҙ఺
    • https://shogo82148.github.io/blog/2015/12/09/perl-datetime/
    • ςετதͷϩάʹ08:59:60ͱ͍͏จࣈΛݟ͚ͭͯɺͦͷ࣌ʹݪҼෆ
    ໌ͩͬͨ࣍ͷ0࣌ͪΐ͏Ͳʹࢼ߹ΛಥͬࠐΉσόοά͕ΤϥʔͰࢮΜ
    Ͱ͍ͨͷ͕͏Δ͏ඵͱ෼Γमਖ਼ΛࢼΈΔ
    • ͔͠͠ίϯύΠϧ࣌ʹ͏Δ͏ඵΛຒΊࠐΜͰ͍ΔͷͰզʑϢʔβʹ
    ͸Ͳ͏͢Δ͜ͱ΋ग़དྷͶ͑
    • ͏Δ͏ඵΛ஌Βͳ͍όʔδϣϯʹμ΢ϯάϨʔυͯ͠ରԠorz

    View Slide

  31. ͠Ύͬ͠Ύʔ໰୊

    View Slide

  32. ͠Ύͬ͠Ύʔ໰୊
    • ʮͳ͔ͬͨΒINSERT͍ͨ͠͠ɺ͋ΔͳΒϩοΫऔ
    Γ͍ͨ΍Μ?ʯ
    • http://ichirin2501.hatenablog.com/entry/
    2015/08/23/191500
    • INSERT͠Α͏ͱ͢Δͱdupͬͯɺ͡Ό͋͋Δ΍
    ΜͬͯSELECT͠Α͏ͱ͢ΔͱREPEATABLE
    READͷ᠘Ͱݟ͑ͳ͍ɻҰମͲ͏͢Ε͹

    View Slide

  33. ͠Ύͬ͠Ύʔ໰୊͕ى͜Δͱ
    • Α͘Πϕϯτ։࢝࣌ʹى͜Γ͕ͪ
    • Πϕϯτ༻ͷνʔϜ಺ڞ௨ϢʔβσʔλΛΠ
    ϕϯτͷγʔϯʹೖͬͨ࣌ʹ࡞Δͱ͔΍Δ
    • σʔλΛࣄલ౤ೖ͢Δͷ΋ޮՌత
    • ͔͠͠ޙ͔Β࡞ΒΕͨϢʔβ΍νʔϜʹ͸ޮ
    Ռ͕ͳ͍

    View Slide

  34. ࠓͷͱ͜Ζͷରࡦํ๏
    • τϥϯβΫγϣϯ֎(ίϯτϩʔϥͷ௚Լ͔Β
    ಡΜͩผͷϞσϧͷϝιουͳͲ)ͰॳظԽ͞
    ΕͨߦΛ౤ೖ͢Δ
    • ͦͷޙͷຊମͷϝιουͰ͸ͦͷߦͷϩοΫ
    Λऔͬͯߦ͕͔ͳΒͣ͋ΔલఏͰॲཧΛଓ͚Δ
    • ͢ΔͱϩοΫऔΕΔ͠޾ͤ

    View Slide

  35. ΨϯΨϯ΍ͬͯ͘ΔΠϕϯτΛ
    ӈ͔Βࠨ΁΍͍͖͍ͬͯͯ͘͠
    ख๏ʹ͍ͭͯ
    1IPUPCZ$BUXBMLIUUQTqJDLSQ(87V

    View Slide

  36. ͋ΔҰिؒͷ։ൃ

    View Slide

  37. ͋ΔҰिؒͷ։ൃ
    ݟʹ͍͘ͷͰ
    ਅͬೋͭʹ͠
    ·͚ͨ͠ΕͲ
    ຊ౰͸͜Μͳ
    ײ͡Ͱ͢
    ݄Րਫ໦ۚ

    View Slide

  38. ͜ͷύΠϓϥΠϯΛ
    ଺Γͳ͘εϜʔζʹ΍͍͖ͬͯ
    ग़དྷΔΑ͏ʹ͢Δͷ΋
    ΤϯδχΞͷ࢓ࣄ

    View Slide

  39. ࠓ೔օ͞Μʹ
    ֮͑ͯ΄͍͜͠ͱ:
    ֮ޛͱؾ߹

    View Slide

  40. ֮ޛ:
    αʔόʹσϓϩΠ͞ΕΔ΋ͷ͸
    શͯαʔόΤϯδχΞ͕໨Λ௨͢

    View Slide

  41. ͳͥͳΒ
    ͳΜ͔τϥϒͬͨͱ͖͸
    αʔόΤϯδχΞ͕΍Δ͔Β

    View Slide

  42. αʔόʹσϓϩΠ͞ΕΔ΋ͷ
    • Perlͷίʔυ
    • CSVͰಥͬࠐΉϚελσʔλ
    • Unity͕ಡΉAsset Bundle
    • chefͷrecipe

    View Slide

  43. αʔόʹσϓϩΠ͞ΕΔ΋ͷ
    • Perlͷίʔυ
    • CSVͰಥͬࠐΉϚελσʔλ
    • Unity͕ಡΉAsset Bundle
    • chefͷrecipe
    ͜ΕΒશͯΛ
    αʔόΤϯδχΞ͕
    ೺Ѳ͢Δඞཁ͕͋Δ

    View Slide

  44. ΋͘͠͸୭͕஌͍ͬͯΔ͔Λ
    ೺Ѳ͍ͯ͠Δඞཁ͕͋Δ
    -> ॿ͚Λݺ΂Δ

    View Slide

  45. ؾ߹:
    పఈͨࣗ͠ಈԽ

    View Slide

  46. ։ൃ͸
    ͢΂ͯPull RequestͰ
    ճ͍ͬͯΔ

    View Slide

  47. ϒϥϯνΛ੾ΔBOT
    • ఆܗͷ໋໊نଇͱϒϥϯνπϦʔΛ࣋ͬͨ
    topicϒϥϯνΛࣗಈੜ੒͢ΔBOT
    • اըଆ͚ͩͰ࡞ۀΛ։࢝Ͱ͖Δ
    • hotfixϒϥϯν΋੾ΕΔΑ͏ʹͳ͍ͬͯΔͷͰ
    मਖ਼ͯ͠։ൃ؀ڥσϓϩΠ·Ͱ͸ΤϯδχΞ
    Ҏ֎͕ग़དྷΔΑ͏ʹͳ͍ͬͯΔ

    View Slide

  48. ͔͠͠؆୯ʹPRΛ࡞ΕΔͱ
    • No description…
    • ԿΛ໨తʹ͜ͷPR͕࡞ΒΕͨͷ͔ॻ͔Εͣ
    ʹճ͖ͬͯͯࠔΔ

    View Slide

  49. ԿΛ͔ͨ͠:
    ϙΤϜΛॻ͍ͨ

    View Slide

  50. View Slide

  51. View Slide

  52. Τϥʔϝοηʔδ͸ 2W1H ͕͍͍Μ͡Όͳ͍͔
    - @bayashi Daily
    https://bayashi.net/diary/2016/0719
    2W1H
    What? Why? How?

    View Slide

  53. Pull Request΋2W1HͰ
    ͍͍Μ͡Όͳ͍͔ʁ
    ·ͩ΍ͬͯͳ͍͚ΕͲ13ͷςϯϓϨʹೖΕΔͷ΋ྑͦ͞͏

    View Slide

  54. اըͷਓ͕ԿΛ੍࡞͢Δͷ͔ʁ

    View Slide

  55. Ϛελʔσʔλ

    View Slide

  56. Ϛελσʔλ
    • DB΍੩తϦιʔε্ͷϢʔβʹมߋ͞Εͳ͍
    σʔλ
    • ରٛޠ͸Ϣʔβσʔλ
    • ϦϙδτϦ಺ʹ͸CSVͰσϓϩΠ࣌ʹDB΍Ϋ
    ϥΠΞϯτʹ౉͢όΠφϦʹͳͬͨΓ͢Δ

    View Slide

  57. Ϛελσʔλ
    • DBʹೖΔͷ͕େ൒ͳͷͰߗ͍εΩʔϚܗࣜ
    • CSVΛฤू͍ͯ͠ΔΘ͚Ͱ͸ͳ͘Google
    SpreadsheetΛ༻͍͍ͯΔɻ͜ΕΛCSVԽ͢Δ
    -> BOT͕CSVʹམͱͯ͠Pull Requestʹͯ͘͠
    ΕΔ

    View Slide

  58. ԿނGoogle SpreadsheetͰ΍Δ͔:
    ͍͡Δਓ͕ίϯτϩʔϧͰ͖Δ

    View Slide

  59. ΤΫηϧతͳ΍ͭͷ͍͍ͱ͜Ζ
    • දܭࢉͷؔ਺͕࢖͑Δ
    • ؔ਺͸ΘΓ͔͠Θ͔Γ΍͍ࣗ͢ಈԽݴޠ
    • εΫϦϓτ͕࢖͑Δ
    • σΟϨΫλʔ͕Կਓ͔GASॻ͍ͯࣗಈԽ͠
    ͯΔ

    View Slide

  60. ࣗಈԽΛ཰ઌͯ͠΍Δ͜ͱͰ
    ଞͷਓʹ΋ࣗಈԽΛଅ͢

    View Slide

  61. ྫ͑͹Next IDൃߦ܅

    View Slide

  62. ͖ͬ͞ͷ͜Ε
    ࡞ۀதͷ΋ͷ͕ฒྻ

    View Slide

  63. ͖ͬ͞ͷ͜Ε
    ࡞ۀதͷ΋ͷ͕ฒྻ
    ͦΕͧΕʹϚελ
    σʔλ͕ଘࡏ͢Δ

    View Slide

  64. ͳͷͰ

    View Slide

  65. શͯͷγʔτΛ·͍ͨͰͲͷIDʹ
    ͢΂͖͔Λڭ͑ͯ͘ΕΔ܅͕ඞཁ

    View Slide

  66. શͯͷγʔτʁʁʁ

    View Slide

  67. ͖ͬ͞ͷ͜Ε
    ࡞ۀதͷ΋ͷ͕ฒྻ
    ͦΕͧΕʹϚελ
    σʔλ͕ଘࡏ͢Δ

    View Slide

  68. ͖ͬ͞ͷ͜Ε
    ࡞ۀதͷ΋ͷ͕ฒྻ
    ͦΕͧΕʹಠཱͨ͠
    εϓϨουγʔτ͕
    ଘࡏ͢Δ

    View Slide

  69. ࣮ࡍʹCSVʹ͢Δͱ͖

    View Slide

  70. ࣮ࡍʹCSVʹ͢Δͱ͖
    ຊ൪ʹೖ͍ͬͯΔϚελͷ
    γʔτ

    View Slide

  71. ࣮ࡍʹCSVʹ͢Δͱ͖
    ຊ൪ʹೖ͍ͬͯΔϚελͷ
    γʔτ
    ΠϕϯτͰ࢖͍͍ͨ
    Ϛελσʔλͷγʔτ

    View Slide

  72. ࣮ࡍʹCSVʹ͢Δͱ͖

    View Slide

  73. ࣮ࡍʹCSVʹ͢Δͱ͖

    View Slide

  74. ࣮ࡍʹCSVʹ͢Δͱ͖
    ࠓσϓϩΠ͞ΕΔͱͲ͏ͳΔ͔$47

    View Slide

  75. ͭ·Γ
    εϓϨουγʔτͷ
    ϒϥϯν؅ཧ

    View Slide

  76. େྔͷΠϕϯτΛճͨ͢Ίʹ
    • పఈͨࣗ͠ಈԽ
    • PullRequestͱγʔτͰݟ͑ΔԽͱ͍͡ΕΔԽ
    Λ͢Δ
    • γʔτΛࠩ෼؅ཧͯ҆͠શʹ։ൃ
    • BOTͰ΍ͬͯ୭͕ԿΛ΍͍ͬͯΔ͔ΛSlackͰ
    ஌ΕΔ

    View Slide

  77. ͦΕͱେྔͷ։ൃ؀ڥ

    View Slide

  78. ։ൃ؀ڥͱ͸
    • ຊ൪ͱ͸ಠཱͨ͠ಛఆͷϒϥϯνͷίʔυͱϚ
    ελσʔλͱΞηοτ͕σϓϩΠ͞Εͨαʔό
    • ϗετ͕ৼΒΕͯ։ൃ൛ΞϓϦ͔Βܨ͛ΒΕΔ
    • ੲ͸ϩʔΧϧͰplackup͚ͯͨ͠ΕͲࠓͱͳͬ
    ͯ͸Perl؀ڥ͋Δਓ΋ϩʔΧϧ͡Όͳͯ͘։ൃ
    ؀ڥΛ্ཱͪ͛ͯ֬ೝ͢Δ͜ͱ͕ଟ͍

    View Slide

  79. ੲ(৽ن։ൃ౰ॳ)͸
    ʮmacopy: ϒϥϯνhogehogeΛݟΕΔΑ͏ʹ
    ͯ͠ʯ
    ʮ͸ʔ͍ʯ
    ͬͯ΍͔ͬͯΒdevelopmentαʔόʹϩάΠϯ
    ͯ͠ϒϥϯνΛ੾Γସ͑ͯεΩʔϚద༻ͯ͠Ϛ
    ελಥͬࠐΜͰWebAppΛ࠶ىಈͯ͠…

    View Slide

  80. ؾ͍ͮͨΒͣͬͱϒϥϯνσ
    ϓϩΠ৬ਓʹͳ͍ͬͯͨ

    View Slide

  81. ΞΧϯͷͰBOTʹ΍ΒͤΔ
    • ಉ͜͡ͱΛBOTʹ΍ΒͤΔ
    • UnazuSanͱ͍͏ϞδϡʔϧΛ࢖༻ͯ͠IRC͔
    ΒҰ࿈ͷσϓϩΠίϚϯυΛ࣮ߦ͢ΔΑ͏ʹ
    ͨ͠
    • ͜ΕͰίʔυ͕ॻ͚ΔΑ͏ʹͳͬͯϋοϐʔ

    View Slide

  82. ͔͜͠͠͏ͳͬͯ͘Δͱ

    View Slide

  83. ಉ࣌ʹෳ਺ͷਓ͕ผʑͷ
    ؀ڥΛݟ͍ͨͱ͍͏ཁ๬͕

    View Slide

  84. ͠Ό͋ͳ͍ͷͰෳ਺؀ڥΛ࡞Δ
    • devφϯτΧ͍ͬͯ͏αʔό͚ͩͩͬͨͷ͕ɺ
    dev01, dev02, dev03ͱ૿͑Δ
    • ͔͠͠࢖͍ͬͯΔͷʹଞਓ͕࢖͓͏ͱͯ͠ফ
    ͢
    • εϓϨουγʔτ΍ΒϗϫΠτϘʔυͰ؅ཧ
    ࢝͠ΊΔ

    View Slide

  85. ͳ͓ಉ͡ঢ়گʹஔ͔Εͨ
    ผͷνʔϜ͸
    ࢖͍ͬͯΔਓͷ্ʹ෩ધ
    ͕͋Δͱ͍͏Ṗͷӡ༻Λ
    ͍ͯͨ͠Β͍͠
    IUUQUFDICMPHLBZBDDPN@NJSBHF@JO@EPDLFSIUNM

    View Slide

  86. ͠ΐ͏͕ͳ͍ͷͰ؀ڥΛ૿΍͢
    • ʮ؀ڥμϒͬͯ΋͏͠ΜͲ͍ͷͰͳΜͱ͔ͳΓ·
    ͤΜ͔ʯ
    • ʮ͠ΐ͏͕ͳ͍૿΍͔͢……ʯ
    Ұϲ݄ޙ
    ʮdev14·Ͱ࡞ΔͨΊʹdevͰchefճ͠·͢ʯ
    ΠϯϑϥʮͳΜͰͦΜͳ͜ͱʹʂʁʯ

    View Slide

  87. ૿΍ͯ͠΋ॴḨ͸༗ݶͳͷͰ͢

    View Slide

  88. ͋”͋”
    ແݶʹ։ൃ؀ڥΆ͜Ά͜
    ཱ͍͓ͯͨʙ

    View Slide

  89. + mirage

    View Slide

  90. (Ϧιʔε͕ڐ͢ݶΓͷ)
    ແݶͷ։ൃ؀ڥ
    • Docker಺Ͱϒϥϯν੾Γସ͑ͱcarton installͱDBϚ
    ΠάϨʔγϣϯΛߦͬͯplackup
    • Procletศར(ࢼ߹༻ʹgearmanͳͲ΋ཱͬͯΔ)
    • DBͱRedis͸લ͸ίϯςφ಺ʹཱ͍͕ͯͯͨɺϝϞϦ
    ͱσΟεΫ৯͏ͷͱίϯςφམͱ͢ͱશͯͳ͘ͳΔͷ
    ͰɺϗετʹRedisཱͯͯDB͸AuroraͰσʔλϕʔε
    Λ෼͚ͯಉډ͍ͯ͠Δ

    View Slide

  91. (Ϧιʔε͕ڐ͢ݶΓͷ)

    View Slide

  92. BOTͰ؀ڥΛ্ཱͪ͛ΕΔ
    ཪͰ͸Jenkins͕mirageͷAPIΛୟ͍ͯίϯςφ
    ىಈ͍ͯ͠Δ

    View Slide

  93. ͢ΔͱΈͳ͞Μ
    ޷͖์୊ͳ͞ΕΔ

    View Slide

  94. ίϯςφେരൃ

    View Slide

  95. ίϯςφ΍Πϝʔδ࡟আͱ͔͸
    සൟʹ΍͍ͬͯΔ͕0%ʹͳͬͯdev͕ࢮ๢ͨ͠
    ͜ͱ͸Կ౓΋͋Δ
    σΟεΫ͸༗ݶ

    View Slide

  96. ͱΓ͋͑ͣσΟεΫΛ
    εέʔϧΞοϓͨ͠ͷͱ
    ίϯςφͷμΠΤοτ

    View Slide

  97. ͋ͱࣥࣄౖ͕Δ
    ͜ΕݟͯΈΜͳʮ͋ʙ࢖ͬͯͳ͍ͷ͋ͬͨΘʯͬͯݴͬͯ
    མͱ࢝͠ΊΔͷͰศར
    ͋ͱ࣌ؒΞΫηε͕ͳ͚Ε͹མͱ͢ͱ͔
    ݄༵ேʹશ෦མͱ͢ िӽ͠ͷίϯςφ͸࣋ͨͳ͍
    ͱ͔
    ΍ͬͯΔ
    +FOLJOTMPHPCZ+FOLJOT1SPKFDUIUUQTKFOLJOTJP

    View Slide

  98. ϝϞϦͱCPU΋༗ݶ

    View Slide

  99. ݪҼ͸σόοά༻εΫϦϓτ͕
    ϝϞϦόΧ৯͍͔ͭฒྻ࣮ߦ
    • QAͳͲͰ࢖͑ΔΑ͏ʹεΫϦϓτΛ࣮ߦ͢Δ
    WebUIΛ༻ҙ͍ͯ͠Δ͕ɺͦͷҰͭʹര஄͕
    ͋ͬͨ
    • ͍ΘΏΔμϛʔσʔλ࡞Δܥɻ͜͏͍͏ͷ͸
    ίʔυϨϏϡʔ͕ૄ͔ʹͳΓ͕ͪͩ͠ɺຊ൪
    ͱ͸ҧ͏ෛՙʹͳΓ͕ͪ

    View Slide

  100. ͦΜͳ͜ΜͳͰେྔʹ؀ڥΛཱͯΕ
    Δ͜ͱʹΑͬͯ
    ਺ेฒྻͷ։ൃ͕Մೳʹͳ͍ͬͯΔ

    View Slide

  101. ·ͱΊ
    • Perl͸ݱ໾Ͱಈ͍͍ͯ·͋͢ɻӡ༻͍ͯ͠·͋͢ɻ
    • ։ൃύΠϓϥΠϯΛਂͯ͘͠εέʔϧͤ͞Δͱαʔ
    Ϗεͷӡ༻ͷ෯͕޿͕Γ·͢
    • ͦΜͳΘ͚ͰوॏͳPerlΤϯδχΞ΍߈Ίӡ༻͢
    ΔͨΊʹύΠϓϥΠϯ૊Έ͍ͨΤϯδχΞ͞Μ͍
    ·ͤΜ͔ʔʔʔʔʔʂʂʂʂ[Ad]↓

    View Slide

  102. ͦͷଞൃද͖͠Εͳ͔ͬͨ΍ͭ
    • ͋ͱ͔ΒϚϧνςφϯτʹ͢Δͱ͖ͷۤ࿑
    • σϓϩΠʹ͍ͭͯ(papix͕௚લʹ͍Ζ͍Ζ΍ͬͯ
    ͍ΔΜ͡Όͳ͍͔ʁ)
    • ௕͍͜ͱ΍͍ͬͯΔͱϞδϡʔϧͷޙํޓ׵ഁյ
    ʹ೰·͞ΕΔ͕ΞάϨογϒʹ্͛Δ
    • ςετ͕20෼͔͔ΔͷͰۚͰԥΔ༧ఆͷ࿩

    View Slide