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

15万人の作家を支えるサービス開発の裏側 / back-of-the-service-development-to-support-150000-creators

15万人の作家を支えるサービス開発の裏側 / back-of-the-service-development-to-support-150000-creators

「minne」技術戦略カンファレンスの資料です
https://www.youtube.com/watch?v=uYti3xbCVBQ

monochromegane

October 24, 2015
Tweet

More Decks by monochromegane

Other Decks in Technology

Transcript

  1. 15ສਓͷ࡞ՈΛࢧ͑Δ
    αʔϏε։ൃͷཪଆ
    minneࣄۀ෦ ϓϥοτϑΥʔϜνʔϜ
    GMO Pepabo, Inc

    View Slide

  2. MIYAKE Yusuke
    @monochromegane

    View Slide

  3. Platform Team

    View Slide

  4. Fukuoka

    View Slide

  5. Web application
    Infrastructure
    and

    View Slide

  6. Ձ஋ʹ࣌ؒΛ࢖͏

    View Slide

  7. ΞλϦϚΤΛ
    ΞλϦϚΤʹ

    View Slide

  8. Infrastructure
    Team
    Development

    View Slide

  9. νʔϜͷΞλϦϚΤ

    View Slide

  10. ౰ࣄऀҙࣝΛ࣋ͯΔ

    View Slide

  11. ΍Δؾͷ໰୊΍Ζ͏΋Μʁ
    ஫ɿ΍Δؾͷ໰୊Ͱ͸ͳ͍Ͱ͔͢ʁ

    View Slide

  12. ౰ࣄऀҙࣝΛҭͯΔ

    View Slide

  13. ໨తͷڞ༗
    Kickoff
    Break-
    down
    Daily
    stand-up
    MTG
    • શһࢀՃ
    • ϓϩδΣΫτͷ໨తΛڞ༗
    • ΑΓΑ͍ղܾࡦͷݕ౼

    View Slide

  14. શମ૾ͷڞ༗
    Kickoff
    Break-
    down
    Daily
    stand-up
    MTG
    λεΫ΁ͷམ͠ࠐΈ

    View Slide

  15. ਐḿͷڞ༗
    Kickoff
    Break-
    down
    Daily
    stand-up
    MTG
    ظݶͱ༏ઌॱҐ

    View Slide

  16. ج൫ͷΞλϦϚΤ

    View Slide

  17. ن໛Λҙࣝͤ͞ͳ͍

    View Slide

  18. minne
    Client
    App
    Load
    Balancer
    Data Store
    OKARA
    CDN
    Job Worker
    Batch
    Memcached
    Search
    Request
    Image
    Request
    Dynamic
    Image Transformation
    Cache
    Data
    Job
    Job
    Job
    Data
    Indexing
    Notification
    Search

    View Slide

  19. Infrastructure as Code

    View Slide

  20. Puppet
    Packer
    Serverspec

    View Slide

  21. Deployment

    View Slide

  22. Don’t miss it !

    View Slide

  23. ։ൃͷΞλϦϚΤ

    View Slide

  24. γϯϓϧʹอͭ

    View Slide

  25. Code LOC
    2012/01
    2,662

    View Slide

  26. Code LOC
    2013/01
    5,508
    2,662

    View Slide

  27. Code LOC
    2014/01
    7,984
    2,662
    5,508

    View Slide

  28. Code LOC
    2015/01
    12,085
    2,662
    5,508
    7,984

    View Slide

  29. Code LOC
    2015/10
    15,771
    2,662
    5,508
    7,984
    12,085

    View Slide

  30. Rails

    View Slide

  31. • Ruby 2.2.3
    • Rails 4.2.4

    View Slide

  32. • RailsͷϨʔϧʹ৐Γଓ͚Δ

    View Slide

  33. Microservices

    View Slide

  34. ػೳΛγϯϓϧʹอͭ

    View Slide

  35. • ಛԽͨ͠αʔϏεಋೖʹΑΔૣظ՝୊ղܾ
    • αʔϏε෼ׂʹΑΔػೳɾϊ΢ϋ΢ͷڞ༗

    View Slide

  36. Solr
    • ࡞Ոͱ࡞඼ͷݕࡧػೳ
    • Solr 4 (master-slave) + sunspot
    Master
    Slave
    App Job Worker
    Update item Indexing Job
    Indexing
    Replication
    Search

    View Slide

  37. OKARA
    • ࡞඼ը૾ͷಈతը૾αΠζม׵
    • Nginx + ngx_small_light + ngx_mruby + CDN
    OKARA
    CDN
    Image
    Request
    Dynamic
    Image Transformation
    ngx_mruby
    • URL transformation
    • Hash validation
    ngx_small_light

    View Slide

  38. See also
    https://speakerdeck.com/yano3/dynamic-image-transformation-server-okara-beta
    https://speakerdeck.com/mizor/better-search-for-minne-with-ruby-and-solr
    @mizor
    minneͷݕࡧΛRubyͱSolrͰͪΐͬͱศརʹͨ͠࿩
    @yano3
    ngx_small_lightͱngx_mrubyͰ࡞Δಈతը૾ม׵αʔό

    View Slide

  39. CI

    View Slide

  40. ςετΛγϯϓϧʹอͭ

    View Slide

  41. Multi-containers CI
    test-queue
    worker
    test-queue
    worker
    test-queue
    master
    docker
    MySQL
    test-queue
    worker
    Docker
    in
    Docker
    Drone
    • Drone + RSpec + test-queue
    • Docker in Docker
    • 27min -> 8min

    View Slide

  42. ϨϏϡʔΛγϯϓϧʹอͭ

    View Slide

  43. Coding rule spec
    it do
    default, $stdout = $stdout, StringIO.new
    begin
    status = RuboCop::CLI.new.run(['--lint', file])
    unless status.zero?
    raise "status: #{status}\n" + $stdout.string
    end
    ensure
    $stdout = default
    end
    end
    • Rubocop CLI
    • Ruby, Slim

    View Slide

  44. Next ΞλϦϚΤ

    View Slide

  45. • ϓϩδΣΫτେن໛Խ΁ͷରԠ
    • ۀ຿ϩδοΫෳࡶԽ΁ͷରԠ

    View Slide

  46. ΞλϦϚΤΛ
    ΞλϦϚΤʹ

    View Slide

  47. ͓ΘΓ

    View Slide