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

フリマアプリ「メルカリ」AIチームの
サービスライフサイクルと、
メルカリにおけるフルサイクルエンジニア / bitvalley2020-devdays-shopetan

Shopetan
September 10, 2020

フリマアプリ「メルカリ」AIチームの
サービスライフサイクルと、
メルカリにおけるフルサイクルエンジニア / bitvalley2020-devdays-shopetan

BIT VALLEY 2020 9/10(木) Developers Days
Track 2 14:55-15:15 @ss_shopetan

Shopetan

September 10, 2020
Tweet

Other Decks in Technology

Transcript

  1. 2 ࣗݾ঺հ !TIPQFUBO !TT@TIPQFUBO  .FSDBSJ1FSTPOBMJ[BUJPO$BNQ3FDPNNFOEBUJPO5FBN &YQFSJFODF   *OUFSOTIJQ.-&OHJOFFS

    .FSDBSJ  1SFTFOU4PGUXBSF&OHJOFFS .FSDBSJ -JLF  &TQPSUT8PSLPVU,BSBPLF$PODFSU
  2. 5 5 ςΫϊϩδʔͷྗͰՁ஋ަ׵ͷ͋ΓํΛม͑ΔαʔϏε ͜Ε·Ͱ େྔੜ࢈ɾେྔফඅ ୭͔ʹͱͬͯඞཁͳ΋ͷͰ΋ ࣺͯΒΕͯ͠·͏ ඞཁͳ΋ͷ͕ඞཁͳਓʹ ඞཁͳ͚ͩಧ͘ ͜Ε͔Β

    ΋ͷ ! ςΫϊϩδʔʹΑͬͯͰ͖Δ҆৺ɾ҆શ ◦ ΤεΫϩʔܾࡁ ◦ AIٕज़Λۦ࢖ͨ͠ҧ൓ݕ஌γεςϜ ! ʮചΔ͜ͱΛۭؾʹ͢ΔʯUXͱςΫϊϩδʔ ◦ όʔίʔυग़඼ ◦ AIը૾ೝࣝ ϝϧΧϦͱ͍͏CtoCϚʔέοτϓϨΠε
  3. 10 ϝϧΧϦͷAIͰղܾ͖ͯͨ͠ྖҬ͸ʮग़඼෺ʯ Πϯετʔϧ/ ձһొ࿥ ͢Δ ചΓͨ͘ͳΔ ௐࠪ͢Δ [஋෇͚ͳͲ] ങ͍ͨ͘ͳΔ ݕࡧ/ൺֱ͢Δ

    ग़඼࡞ۀ͢Δ ަব/ߪೖ͢Δ Attention Search/ Compare Interest Action ഑ૹ࡞ۀ͢Δ डऔධՁ͢Δ Ship/ Evaluate ɾAIग़඼ ɾΧλϩάϚοϐϯά ɾՁ֨αδΣετ ɾݕࡧΞϧΰϦζϜ ɾಉٛޠ֦ு ɾࣸਅݕࡧػೳ ɾҧ൓ग़඼ͷ؂ࢹ ɾҟৗߦಈͷݕ஌ ɾ഑ૹαδΣετ ɾॏྔਪఆ
  4. 12 ͓٬͞·ͷʮಈػ͚ͮʯΛࢧԉ͢Δ Πϯετʔϧ/ ձһొ࿥ ͢Δ ചΓͨ͘ͳΔ ௐࠪ͢Δ [஋෇͚ͳͲ] ങ͍ͨ͘ͳΔ ݕࡧ/ൺֱ͢Δ

    ग़඼࡞ۀ͢Δ ަব/ߪೖ͢Δ Attention Search/ Compare Interest Action ഑ૹ࡞ۀ͢Δ डऔධՁ͢Δ Ship/ Evaluate τϨϯυ / ϥϯΩϯά ͷਪન ͓٬༷ͷߦಈʹԠͨ͡ ঎඼ਪન ϨίϝϯυΛ௨ͯ͡
 ʮಈػ෇͚ʯΛڧԽ͢Δ
  5. 23 ։ൃνʔϜͷMicroserviceԽͱ͸ NJDSPTFSWJDFTQMBUGPSNBUNFSDBSJ Develop Service B Test Deploy Operate Service

    B Team Develop Service A Test Deploy Operate Service A Team Develop Service C Test Deploy Operate Service C Team
  6. 24 ։ൃνʔϜͷMicroserviceԽͱ͸ NJDSPTFSWJDFTQMBUGPSNBUNFSDBSJ Develop Service B Test Deploy Operate Service

    B Team Develop Service A Test Deploy Operate Service A Team Develop Service C Test Deploy Operate Service C Team ։ൃ͔Βӡ༻·ͰϑϧαΠΫϧʹಇ͘
  7. 28 AIνʔϜ΋֤υϝΠϯ͝ͱʹνʔϜ෼ׂͨ͠ Develop Recommend Platform Test Deploy Operate Recommendation Team

    Develop Image search Test Deploy Operate Image search Team ML Engineer MLOps Team Search Team
  8. 33 ϨίϝϯσʔγϣϯνʔϜͷαʔϏεϥΠϑαΠΫϧ Develop Recommend Platform Test Deploy Operate Recommendation Team

    Act as ML, BI, PM Survey Analyze Business Impact Modeling Experiment Design Develop
 Platform
  9. 34 ϨίϝϯσʔγϣϯνʔϜͷαʔϏεϥΠϑαΠΫϧ Develop Recommend Platform Test Deploy Operate Recommendation Team

    Survey Analyze Business Impact Modeling Experiment Design Develop
 Platform ։ൃνʔϜ͕ SWE/SET/SRE/ML/BI/PM 
 ΛϑϧαΠΫϧʹ୲౰͢Δ
  10. 37 Microservice΁Ҡߦͯ͠ಘΒΕͨ͜ͱ γεςϜత ૊৫త Scalability Availability ‐‐‐ Complexity վળ Velocity,

    Agility‐ ਅʹ࣮ݱ͍ͨ͜͠ͱ͸
 ʮΤϯδχΞϦϯάΛ௨͓ͨ͡٬༷΁ͷܧଓతͳՁ஋ఏڙʯ
  11. 49 αʔϏεϥΠϑαΠΫϧʹΦʔφʔγοϓΛ࣋ͯΔͱ͸ Develop Recommend Platform Test Deploy Operate Recommendation Team

    Survey Analyze Business Impact Modeling Experiment Design Develop
 Platform νʔϜ͕End-to-EndͰResponsibilityΛ࣋ͯΔ
  12. 50 αʔϏεϥΠϑαΠΫϧʹΦʔφʔγοϓΛ࣋ͯΔͱ͸ Develop Recommend Platform Test Deploy Operate Recommendation Team

    Survey Analyze Business Impact Modeling Experiment Design Develop
 Platform E2EͰResponsibilityΛ࣋ͯΔࣄͰ
 ϥΠϑαΠΫϧશମͷVelocity্͕͕Δ
  13. 51 αʔϏεϥΠϑαΠΫϧʹΦʔφʔγοϓΛ࣋ͯΔͱ͸ Develop Recommend Platform Test Deploy Operate Recommendation Team

    Survey Analyze Business Impact Modeling Experiment Design Develop
 Platform ʮΤϯδχΞϦϯάΛ௨͓ͨ͡٬༷΁ͷܧଓతͳՁ஋ఏڙʯ
 Λߴ଎ʹ࣮ݱ͠ଓ͚Δ͜ͱ͕ՄೳʹͳΔ
  14. 52 ͱ͸͍͑… Develop Recommend Platform Test Deploy Operate Recommendation Team

    Survey Analyze Business Impact Modeling Experiment Design Develop
 Platform
  15. 53 ͱ͸͍͑… Develop Recommend Platform Test Deploy Operate Recommendation Team

    Survey Analyze Business Impact Modeling Experiment Design Develop
 Platform ։ൃνʔϜ͕ SWE/SET/SRE/ML/BI/PM 
 ΛϑϧαΠΫϧʹ୲౰͢Δ 4VQFS)BSEͰ͸ʜ
  16. 55 ϨίϝϯσʔγϣϯνʔϜͱͯ͠౰࣌ͷTL͕ܾΊͨ͜ͱ ! AI͔Βͱ͍͏໨ઢΛ΍ΊΔ ◦ MLΤϯδχΞͰ͋ΔҎલʹιϑτ΢ΣΞΤϯδχΞͰ͋Δ ◦ ͋͘·ͰखஈͳͷͰඞཁͳλΠϛϯάͰར༻͢Δ ◦ අ༻ରޮՌɼ൚༻ੑΛҙࣝ͠ΠϯύΫτͷ͋Δ෦෼͔ΒMVPʹ࣮ݱ

    ◦ Decide Everything Scientifically ! طଘͷ໾ׂͷڥքΛͳͨ͘͠νʔϜΛ࡞Δ ◦ ݩͷॴଐ͸ҧ͑Ͳ໨త͸ಉ͡ ◦ ڥք͸ෆ৹ΛੜΉ ◦ ௅ઓ͍ͨ͠ਓ͕௅ઓ͍ͨ͠ྖҬʹऔΓ૊ΊΔνʔϜʹ͢Δ ◦ ಘҙྖҬͱνϟϨϯδͷόϥϯεΛอͪͳ͕Β։ൃͨ͠
  17. 56 ͱ͸͍͑ࣗ෼ʹೳྗ͕͋ͬͨͷ͔? ! ݩʑ͸MLΤϯδχΞͱͯ͠Πϯλʔϯ -> ೖࣾ ◦ SWEɼSETɼSREͱͯ͠ͷҰൠతͳڭཆ͢Βͳ͔ͬͨ ◦ Microservice΁ͷMigration΋౰વ͕ͩೖࣾޙॳΊͯܞΘͬͨ

    ! ϝϧΧϦͷจԽͱνʔϜͷํ਑͕ࣗ෼Λٹͬͯ͘Εͨ ◦ GoBoldʹະܦݧͷྖҬʹ௅ઓͯ͠ྑ͍؀ڥͩͬͨ ◦ ͓٬༷΁ͷՁ஋ఏڙΛୈҰʹߟ͑ͯɼ
 Ұ࿈ͷαʔϏεϥΠϑαΠΫϧΛҰਓͰ୲౰Ͱ͖ΔΑ͏ʹͳͬͨ
  18. 57 ΦʔφʔγοϓΛ࣋ͯͯΑ͔ͬͨ͜ͱ(Team) ! Ϩίϝϯσʔγϣϯʹؔ͢ΔશͯͷυϝΠϯΛվળ͢Δ੹೚ͱݖݶ͕͋Δ ◦ طଘͷϨίϝϯσʔγϣϯʹؔ࿈͢ΔશͯͷAPI͕
 ϨίϝϯσʔγϣϯνʔϜͷϓϥοτϑΥʔϜͱܨ͕͍ͬͯΔ ◦ ܧଓతʹ࣮ݧͱվળΛ܁ΓฦͤΔ؀ڥ !

    ໰୊ఏى͔ΒϦϦʔε·ͰͷվળαΠΫϧʹ֎෦ґଘ͕গͳ͍ ◦ ϨίϝϯσʔγϣϯνʔϜͰطʹӡ༻͍ͯ͠ΔAPI͸ܭը͔Β
 ϦϦʔε൑அ·ͰνʔϜ಺෦ͷΈͰ׬݁͢Δ ◦ ৽نͷAPI΋ଟͯ͘1-2νʔϜͱͷௐ੔͚ͩͰຊ൪ϦϦʔε͕Ͱ͖Δ
  19. 58 ΦʔφʔγοϓΛ࣋ͯͯΑ͔ͬͨ͜ͱ(ݸਓ) ! MicroserviceԽ/Platform։ൃʹΑΔSWEͱͯ͠ͷٕज़ྖҬͷ֦େ ◦ Manage Elasticsearch on GKE ◦

    Develop middleware ! PlatformΛӡ༻͢Δ͜ͱʹΑΔSREͱͯ͠ͷҙࣝ ◦ Monitor any metrics ◦ Consider SLI/SLO for Recommendation ◦ Loadtest with Real-Scenario ◦ Consider Cluster’s constitution ◦ Apply CI/CD ◦ Infrastructure as Code ◦ υϝΠϯશମͰͷCost؅ཧ
  20. 59 ϑϧαΠΫϧʹಇ͚ΔΑ͏ʹͳ͕ͬͨ… ! Q. ࣮ࡍʹϑϧαΠΫϧͳϑϩʔͰಇ͍͍ͯΔ? ◦ A. Yes! ◦ ϦϦʔε΍ӡ༻·ͰҰ؏ͯ͠୲౰͢Δ͜ͱ͕Մೳ

    ! Q. νʔϜͰϑϧαΠΫϧҎ֎ͷಇ͖ํ͸͋Δ? ◦ A. Yes! ◦ ࣗ෼ࣗ਎ɼڵຯͷ͋ΔྖҬ͕αΠΫϧࣗମͷվળʹ͋Δ ▪ Πϯελϯεͷࣗಈఀࢭ/GKE NodeࣗಈఀࢭͳͲͷίετΧοτ ▪ K8s্Ͱͷscalable, ࠶ݱੑͷߴ͍Loadtest clientͷ࣮ݱ ▪ ElasticsearchΛ͸͡Ίͱͨ͠ϓϥοτϑΥʔϜͷ؂ࢹػߏͷ௥Ճ ▪ ͜ΕΒͷIaCରԠͳͲ
  21. 60 αʔϏεϥΠϑαΠΫϧΛࢧԉ͢Δ ྫ͑͹ : AI Platform(πʔϧ) - Model؅ཧ΍PipelineΛࢧԉ - ABςετࢧԉ

    ྫ͑͹: Embedded SRE(໾ׂ) - υϝΠϯʹಛԽͨ͠SRE ϥΠϑαΠΫϧʹؔΘΔ༷ʑͳ
 ໰୊ΛղܾΛ͢Δ͜ͱ͕࢓ࣄ
  22. 61 ૝ఆ͑͠Δ࣭໰ ! MLͷSpecialistͱͯ͠࢓ࣄͯͨ͠ͷʹશͯͷϑΣʔζΛ΍Βͳ͍ͱμϝ? ◦ No. ͦΜͳ͜ͱ͸ͳ͍ ◦ ֤ʑʹಘҙͳྖҬ͕͋Δͷ͸౰વͳͷͰํ਑͸νʔϜ͝ͱʹҙࢥܾఆ ◦

    νʔϜશମͰe2eʹResponsibilityΛ࣋ͯΔ͜ͱʹՁ஋͕͋Δ ! Client΍FrontendͳͲͷྖҬ͕ඞཁͳ࣌͸Ͳ͏͢Δͷ? ◦ ϝϦΧϦͰ͸Campͱ͍͏୯ҐͰ։ൃΛ͍ͯ͠Δ ▪ ؔ࿈͢ΔྖҬʹ੹೚Λ࣋ͭνʔϜ͕ू߹͍ͯ͠Δ ! Include all tech stack ▪ Q͝ͱͷ໨ඪΛCampͱ͍͏୯ҐͰڞ༗&CampͰεΫϥϜ ! ༏ઌ౓Λἧ͑ͯ։ൃ͢ΔͷͰϦϦʔεεϐʔυ͕อূ ͓ؾ͖ͮͰ͔͢ʁύʔιφϥΠθʔγϣϯ͔Βੜ·ΕͨϝϧΧϦػೳվળ·ͱΊ
  23. 62 ·ͱΊ ! ਪનυϝΠϯͷαʔϏεϥΠϑαΠΫϧΛ঺հ ◦ جຊతʹ͸MLʹؔ͢ΔProductͷ্ཱͪ͛ͱมΘΒͳ͍ ◦ MicroserviceԽͷར఺͸e2eʹΦʔφʔγοϓΛ࣋ͯΔࣄ ▪ νʔϜ಺Ͱ໰୊ఏى͔Βҙࢥܾఆ·Ͱ׬݁͢Δ

    ▪ AIྖҬʹ͓͍ͯ͸Ұ࿈ͷTry&Errorͷߴ଎ԽʹՁ஋͕͋Δ ! ϑϧαΠΫϧΤϯδχΞͱͯ͠ಇ͍͍ͯΔνʔϜΛ঺հ ◦ ֤ΤϯδχΞ͕શͯͷྖҬΛۃΊͳ͍ͱ͍͚ͳ͍༁Ͱ͸ͳ͍ ◦ GoBoldʹ௅ઓ͍ͨ͠ਓ͕௅ઓ͍ͨ͠ྖҬʹऔΓ૊ΊΔΑ͏ʹܾΊͨ ◦ αΠΫϧࣗମΛվળ͢Δ͜ͱʹ΋Ձ஋͕͋Δ ◦ ϑϧαΠΫϧʹϝϧΧϦͷϨίϝϯυΛΑ͍͖ͯ͘͠·͢
  24. 64  .BDIJOF-FBSOJOH 4JUF3FMJBCJMJUZ .JDSPTFSWJDFT 1MBUGPSN 8FC1MBUGPSN 4JUF3FMJBCJMJUZ &.HS %JHJUBM.BSLFUJOH


    4QFDJBMJTU த్࠾༻ த్࠾༻ืूϙδγϣϯ *5#13
 .HS 4JUF3FMJBCJMJUZ
 &.HS