Slide 1

Slide 1 text

© 2023 Repro Inc. │ CONFIDENTIAL Reproגࣜձࣾ Development Div. Platform Team Takeshi Arabiki (@a_bicky) Reproͷ։ൃ૊৫ମ੍ͷมભ ͦͯ͠Platform Engineering Platform Engineering Meetup #6 (2023-12-06)

Slide 2

Slide 2 text

Takeshi Arabiki HN a_bicky/abicky Blog ͋Βͼ͖೔ه ܦྺ 2011-2013: גࣜձࣾσΟʔɾΤψɾΤʔ 2013-2017: ΫοΫύουגࣜձࣾ 2017-current: Reproגࣜձࣾ Reproגࣜձࣾ Development Div. Platform Team Team Manager ࣗݾ঺հ

Slide 3

Slide 3 text

© 2023 Repro Inc. │ CONFIDENTIAL ৘ใऩू ෼ੳɾηάϝϯτ ҰਓͻͱΓʹ࠷దͳࢪࡦΛ࣮ࢪ ଟ༷ͳσʔλΛ෼ੳ ϢʔβʔΛηάϝϯτ ϙοϓΞοϓ ਧ͖ग़͠ ϝʔϧ ΞϓϦ಺઀٬ ΞϓϦ಺઀٬ ΞϓϦ಺઀٬ ίϯςϯπຒΊࠐΈ ϓογϡ௨஌ Ϩίϝϯυ Web ళฮ ΞϓϦ ϦΞϧλΠϜͷ One to One ίϛϡχέʔγϣϯ

Slide 4

Slide 4 text

© 2023 Repro Inc. │ CONFIDENTIAL ࠓ೔͓࿩͢͠Δ͜ͱ

Slide 5

Slide 5 text

© 2023 Repro Inc. │ CONFIDENTIAL ࠓ೔͓࿩͢͠Δ͜ͱ https://speakerdeck.com/a_bicky/sre-lounge-number-15

Slide 6

Slide 6 text

© 2023 Repro Inc. │ CONFIDENTIAL 2018೥3݄

Slide 7

Slide 7 text

© 2023 Repro Inc. │ CONFIDENTIAL ReproͷαʔόαΠυΛࢧ͑Δओͳٕज़ (2018೥3݄) BigQuery Rundeck Amazon EC2 Amazon ECS Amazon Aurora (MySQL Compatible) Amazon ElastiCache (Redis) Amazon S3

Slide 8

Slide 8 text

© 2023 Repro Inc. │ CONFIDENTIAL αʔόαΠυνʔϜͷߏ੒ Application Datastore Development Div. CTO

Slide 9

Slide 9 text

© 2023 Repro Inc. │ CONFIDENTIAL 2018೥3݄ͷঢ়گ ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ ● ݩʑSREνʔϜ͕ଘࡏ͍͕ͯͨ͠։ൃମ੍ͷݟ௚͠ʹΑΓ2017೥10݄ʹղࢄ - ApplicationνʔϜɺDatastoreνʔϜͷ2νʔϜͰ୲౰ྖҬΛ෼୲ ● ApplicationνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ ● ৔౰ͨΓతͳΞϥʔτରԠ΍ޙखʹճΔΩϟύγςΟϓϥϯχϯά - ಛʹPrestoؔ࿈

Slide 10

Slide 10 text

© 2023 Repro Inc. │ CONFIDENTIAL ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ ● ݩʑSREνʔϜ͕ଘࡏ͍͕ͯͨ͠։ൃମ੍ͷݟ௚͠ʹΑΓ2017೥10݄ʹղࢄ - ApplicationνʔϜɺDatastoreνʔϜͷ2νʔϜͰ୲౰ྖҬΛ෼୲ ● ApplicationνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ ● ৔౰ͨΓతͳΞϥʔτରԠ΍ޙखʹճΔΩϟύγςΟϓϥϯχϯά - ಛʹPrestoؔ࿈ 2018೥3݄ͷঢ়گ

Slide 11

Slide 11 text

© 2023 Repro Inc. │ CONFIDENTIAL ReproͷαʔόαΠυΛࢧ͑Δओͳٕज़ (2018೥3݄) BigQuery Rundeck Amazon EC2 Amazon ECS Amazon Aurora (MySQL Compatible) Amazon ElastiCache (Redis) Amazon S3

Slide 12

Slide 12 text

© 2023 Repro Inc. │ CONFIDENTIAL ৘ใऩू ෼ੳɾηάϝϯτ ҰਓͻͱΓʹ࠷దͳࢪࡦΛ࣮ࢪ ଟ༷ͳσʔλΛ෼ੳ ϢʔβʔΛηάϝϯτ ϙοϓΞοϓ ਧ͖ग़͠ ϝʔϧ ΞϓϦ಺઀٬ ΞϓϦ಺઀٬ ΞϓϦ಺઀٬ ίϯςϯπຒΊࠐΈ ϓογϡ௨஌ Ϩίϝϯυ Web ళฮ ΞϓϦ ϦΞϧλΠϜͷ One to One ίϛϡχέʔγϣϯ

Slide 13

Slide 13 text

© 2023 Repro Inc. │ CONFIDENTIAL ΠϯϑϥνʔϜͷ૊੒ Dev 1 Dev 2 Development Div. Infra Team CTO

Slide 14

Slide 14 text

© 2023 Repro Inc. │ CONFIDENTIAL ΠϯϑϥνʔϜ૊੒ʹΑΔαʔϏεͷ҆ఆԽ https://speakerdeck.com/a_bicky/repro-tech-meetup-number-9

Slide 15

Slide 15 text

© 2023 Repro Inc. │ CONFIDENTIAL ΠϯϑϥνʔϜ૊੒ʹΑΔαʔϏεͷ҆ఆԽ https://speakerdeck.com/a_bicky/repro-tech-meetup-number-9 CLEAR

Slide 16

Slide 16 text

© 2023 Repro Inc. │ CONFIDENTIAL 2019೥4݄

Slide 17

Slide 17 text

© 2023 Repro Inc. │ CONFIDENTIAL ReproͷαʔόαΠυΛࢧ͑Δओͳٕज़ (2019೥4݄) BigQuery Rundeck Amazon EC2 Amazon ECS Amazon Aurora (MySQL Compatible) Amazon ElastiCache (Redis) Amazon S3 NEW NEW NEW

Slide 18

Slide 18 text

© 2023 Repro Inc. │ CONFIDENTIAL 2018೥6݄Cassandraಋೖ https://joker1007.hatenablog.com/entry/2018/06/29/201400

Slide 19

Slide 19 text

© 2023 Repro Inc. │ CONFIDENTIAL 2019೥4݄ͷঢ়گ ● σʔλύΠϓϥΠϯؔ܎ͷ։ൃɾӡ༻͸CTOͱΠϯϑϥνʔϜ͕ϝΠϯͰ୲౰ ● ػೳ։ൃνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ - Cassandraʹ͍ͭͯҙࣝ͢Δ͜ͱ͸΄΅ͳ͠ ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ - ϓϩμΫτΦʔφʔ͕ࢢگͷมԽΛಡΈͳ͕Βػೳͷৄࡉ·Ͱఆٛ͢Δʹ͸ݶք

Slide 20

Slide 20 text

© 2023 Repro Inc. │ CONFIDENTIAL 2019೥4݄ͷঢ়گ ● σʔλύΠϓϥΠϯؔ܎ͷ։ൃɾӡ༻͸CTOͱΠϯϑϥνʔϜ͕ϝΠϯͰ୲౰ ● ػೳ։ൃνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ - Cassandraʹ͍ͭͯҙࣝ͢Δ͜ͱ͸΄΅ͳ͠ ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ - ϓϩμΫτΦʔφʔ͕ࢢگͷมԽΛಡΈͳ͕Βػೳͷৄࡉ·Ͱఆٛ͢Δʹ͸ݶք ΤϯδχΞͰ΋ػೳͷৄࡉΛ٧ΊΒΕΔΑ͏ʹͳΔ͜ͱ͕ٸ຿

Slide 21

Slide 21 text

© 2023 Repro Inc. │ CONFIDENTIAL LeSS (Large Scale Scrum) ͷಋೖ Dev 1 Dev 2 Development Div. Dev 3 Dev 4 (Infra Team + CTO)

Slide 22

Slide 22 text

© 2023 Repro Inc. │ CONFIDENTIAL LeSSಋೖͷޮՌ ● Before - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ ● After - νʔϜҰ؟ͱͳͬͯސ٬໨ઢͰཁ݅Λ٧ΊͯػೳΛ։ൃ

Slide 23

Slide 23 text

© 2023 Repro Inc. │ CONFIDENTIAL LeSSಋೖͷޮՌ ● Before - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ ● After - νʔϜҰ؟ͱͳͬͯސ٬໨ઢͰཁ݅Λ٧ΊͯػೳΛ։ൃ CLEAR

Slide 24

Slide 24 text

© 2023 Repro Inc. │ CONFIDENTIAL 2021೥8݄

Slide 25

Slide 25 text

© 2023 Repro Inc. │ CONFIDENTIAL ReproͷαʔόαΠυΛࢧ͑Δओͳٕज़ Amazon Corretto (Java) BigQuery Kafka Streams Rundeck Amazon EC2 Amazon ECS Amazon Aurora (MySQL Compatible) Amazon ElastiCache (Redis) Amazon S3 NEW NEW NEW

Slide 26

Slide 26 text

© 2023 Repro Inc. │ CONFIDENTIAL 2021೥8݄ͷঢ়گ ● Dev 4ʢچΠϯϑϥνʔϜ+CTOʣ͸ϦΞʔΩςΫνϟͷ΄ͱΜͲΛ୲౰ - όονूܭॲཧͷ൚༻ԽɺKafkaಋೖʹ൐͏ϦΞʔΩςΫνϟ etc. ● ػೳ։ൃνʔϜͷϝϯόʔ΋Cassandra΍KafkaΛ࢖͏ඞཁ͋Γ ● ৽͍͠CTOͷब೚ - લCTO͸Chief Architectͱ͍͏ݞॻʹ ● ܗ֚Խ͢ΔLeSS (Large Scale Scrum) - ಉ͡λΠϛϯάͰεΫϥϜతͳಈ͖Λ͍ͯ͠Δ׬શผνʔϜԽ - ֤νʔϜ௕ظʹ౉ͬͯಛఆͷϓϩδΣΫτΛ୲౰ - νʔϜΛލ͍Ͱෳ਺ͷϓϩδΣΫτΛ୲౰͢Δਓ΋͍ͨΒ͍͠ʢ͏Ζ֮͑ʣ

Slide 27

Slide 27 text

© 2023 Repro Inc. │ CONFIDENTIAL ϓϩδΣΫτ੍΁ͷҠߦ Sys-InfraʢDev 4͔Β໊শมߋʣ ˚˚ϓϩδΣΫτ ̋̋ϓϩδΣΫτ ✕✕ϓϩδΣΫτ Development Div. ػೳ։ൃνʔϜʢϓϩδΣΫτ੍ʣ ৽CTO

Slide 28

Slide 28 text

© 2023 Repro Inc. │ CONFIDENTIAL 2021೥8݄ͷঢ়گ ● Dev 4ʢچΠϯϑϥνʔϜ+CTOʣ͸ϦΞʔΩςΫνϟͷ΄ͱΜͲΛ୲౰ - όονूܭॲཧͷ൚༻ԽɺKafkaಋೖʹ൐͏ϦΞʔΩςΫνϟ etc. ● ػೳ։ൃνʔϜͷϝϯόʔ΋Cassandra΍KafkaΛ࢖͏ඞཁ͋Γ ● ৽͍͠CTOͷब೚ - લCTO͸Chief Architectͱ͍͏ݞॻʹ ● ܗ֚Խ͢ΔLeSS (Large Scale Scrum) - ಉ͡λΠϛϯάͰεΫϥϜతͳಈ͖Λ͍ͯ͠Δ׬શผνʔϜԽ - ֤νʔϜ௕ظʹ౉ͬͯಛఆͷϓϩδΣΫτΛ୲౰ - νʔϜΛލ͍Ͱෳ਺ͷϓϩδΣΫτΛ୲౰͢Δਓ΋͍ͨΒ͍͠ʢ͏Ζ֮͑ʣ

Slide 29

Slide 29 text

© 2023 Repro Inc. │ CONFIDENTIAL 2021೥8݄ͷঢ়گ ● Dev 4ʢچΠϯϑϥνʔϜ+CTOʣ͸ϦΞʔΩςΫνϟͷ΄ͱΜͲΛ୲౰ - όονूܭॲཧͷ൚༻ԽɺKafkaಋೖʹ൐͏ϦΞʔΩςΫνϟ etc. ● ػೳ։ൃνʔϜͷϝϯόʔ΋Cassandra΍KafkaΛ࢖͏ඞཁ͋Γ ● ৽͍͠CTOͷब೚ - લCTO͸Chief Architectͱ͍͏ݞॻʹ ● ܗ֚Խ͢ΔLeSS (Large Scale Scrum) - ಉ͡λΠϛϯάͰεΫϥϜతͳಈ͖Λ͍ͯ͠Δ׬શผνʔϜԽ - ֤νʔϜ௕ظʹ౉ͬͯಛఆͷϓϩδΣΫτΛ୲౰ - νʔϜΛލ͍Ͱෳ਺ͷϓϩδΣΫτΛ୲౰͢Δਓ΋͍ͨΒ͍͠ʢ͏Ζ֮͑ʣ CLEAR

Slide 30

Slide 30 text

© 2023 Repro Inc. │ CONFIDENTIAL 2021೥8݄ͷঢ়گ ● Dev 4ʢچΠϯϑϥνʔϜ+CTOʣ͸ϦΞʔΩςΫνϟͷ΄ͱΜͲΛ୲౰ - όονूܭॲཧͷ൚༻ԽɺKafkaಋೖʹ൐͏ϦΞʔΩςΫνϟ etc. ● ػೳ։ൃνʔϜͷϝϯόʔ΋Cassandra΍KafkaΛ࢖͏ඞཁ͋Γ ● ৽͍͠CTOͷब೚ - લCTO͸Chief Architectͱ͍͏ݞॻʹ ● ܗ֚Խ͢ΔLeSS (Large Scale Scrum) - ಉ͡λΠϛϯάͰεΫϥϜతͳಈ͖Λ͍ͯ͠Δ׬શผνʔϜԽ - ֤νʔϜ௕ظʹ౉ͬͯಛఆͷϓϩδΣΫτΛ୲౰ - νʔϜΛލ͍Ͱෳ਺ͷϓϩδΣΫτΛ୲౰͢Δਓ΋͍ͨΒ͍͠ʢ͏Ζ֮͑ʣ CLEAR 🤔

Slide 31

Slide 31 text

© 2023 Repro Inc. │ CONFIDENTIAL 2022೥य़

Slide 32

Slide 32 text

© 2023 Repro Inc. │ CONFIDENTIAL 2022೥य़ͷঢ়گ ● ϓϩδΣΫτ੍ಋೖʹΑΓ֤ػೳͷ୲౰͕ᐆດԽ - ֤ϓϩδΣΫτνʔϜͷ੹೚ऀ΋ෆࡏ ● ػೳɺϛυϧ΢ΣΞɺར༻AWSαʔϏε૿ՃʹΑΔશΤϯδχΞͷೝ஌ෛՙ૿େ ● ແݶʹ޿͕ΔSys-InfraʢچΠϯϑϥνʔϜ+CTOʣͷकඋൣғ - Chief Architectͷಋೖ͢Δج൫ͷड͚ೖΕઌ - σʔλύΠϓϥΠϯؔ࿈ͷΞϓϦέʔγϣϯͷ։ൃɾӡ༻ʢҰ෦ଐਓԽʣ - AWSؔ࿈ͷϝϯςφϯεɺΩϟύγςΟϓϥϯχϯάɺίετͷݟੵ΋Γ etc. ● ։ൃ૊৫ͷτοϓަ୅͕ܾఆ - Repro Coreͱ͍͏νʔϜͷઃཱ͕ܾ·ͬͨͱ͜ΖͰॳ୅CTOʹަ୅

Slide 33

Slide 33 text

© 2023 Repro Inc. │ CONFIDENTIAL 2022೥य़ͷঢ়گ ● ϓϩδΣΫτ੍ಋೖʹΑΓ֤ػೳͷ୲౰͕ᐆດԽ - ֤ϓϩδΣΫτνʔϜͷ੹೚ऀ΋ෆࡏ ● ػೳɺϛυϧ΢ΣΞɺར༻AWSαʔϏε૿ՃʹΑΔશΤϯδχΞͷೝ஌ෛՙ૿େ ● ແݶʹ޿͕ΔSys-InfraʢچΠϯϑϥνʔϜ+CTOʣͷकඋൣғ - Chief Architectͷಋೖ͢Δج൫ͷड͚ೖΕઌ - σʔλύΠϓϥΠϯؔ࿈ͷΞϓϦέʔγϣϯͷ։ൃɾӡ༻ʢҰ෦ଐਓԽʣ - AWSؔ࿈ͷϝϯςφϯεɺΩϟύγςΟϓϥϯχϯάɺίετͷݟੵ΋Γ etc. ● ։ൃ૊৫ͷτοϓަ୅͕ܾఆ - Repro Coreͱ͍͏νʔϜͷઃཱ͕ܾ·ͬͨͱ͜ΖͰॳ୅CTOʹަ୅

Slide 34

Slide 34 text

© 2023 Repro Inc. │ CONFIDENTIAL ઌୡͷ஌ܙ

Slide 35

Slide 35 text

© 2023 Repro Inc. │ CONFIDENTIAL νʔϜτϙϩδʔͷڭ͑ᶃ ௕ଓ͖͢Δখ͞ͳνʔϜ͕͋Δ͜ͱͰɺιϑτ΢ΣΞͷΦʔφʔγοϓͷվળ͕࢝ ΊΒΕΔɻʢதུʣෳ਺ͷνʔϜʹಉҰͷγεςϜ·ͨ͸αϒγεςϜͷมߋΛڐ ͢ͱɺͦͷมߋͱɺมߋ͕΋ͨΒࠞ͢ཚʹ͍ͭͯɺ୭΋ΦʔφʔγοϓΛൃش͠ͳ ͘ͳΔةݥ͕͋Δɻ 6ϲ݄ͷϓϩδΣΫτΛ׬ྃͯ͠΍ͬͱνʔϜͷύϑΥʔϚϯε͕޲্͖ͯͨ͠ͱ͜Ζ ͰɺϝϯόʔΛଞͷνʔϜʹΞαΠϯ͠௚͢ͷ͸ɺ΄΅Ձ஋͕ͳ͍ɻ ʮνʔϜτϙϩδʔ Ձ஋͋Διϑτ΢ΣΞΛ͢͹΍͘ಧ͚ΔదԠܕ૊৫ઃܭʯ Chapter 3 νʔϜϑΝʔετࢥߟ ʮνʔϜτϙϩδʔ Ձ஋͋Διϑτ΢ΣΞΛ͢͹΍͘ಧ͚ΔదԠܕ૊৫ઃܭʯ Chapter 3 νʔϜϑΝʔετࢥߟ

Slide 36

Slide 36 text

© 2023 Repro Inc. │ CONFIDENTIAL ● ϓϩδΣΫτ੍ಋೖʹΑΓ֤ػೳͷ୲౰͕ᐆດԽ - ֤ϓϩδΣΫτνʔϜͷ੹೚ऀ΋ෆࡏ ● ػೳɺϛυϧ΢ΣΞɺར༻AWSαʔϏε૿ՃʹΑΔશΤϯδχΞͷೝ஌ෛՙ૿େ ● ແݶʹ޿͕ΔSys-InfraʢچΠϯϑϥνʔϜ+CTOʣͷकඋൣғ - Chief Architectͷಋೖ͢Δج൫ͷड͚ೖΕઌ - σʔλύΠϓϥΠϯؔ࿈ͷΞϓϦέʔγϣϯͷ։ൃɾӡ༻ - AWSؔ࿈ͷϝϯςφϯεɺΩϟύγςΟϓϥϯχϯάɺίετͷݟੵ΋Γ etc. ● ։ൃ૊৫ͷτοϓަ୅ - Repro Coreͱ͍͏νʔϜͷઃཱ͕ܾ·ͬͨͱ͜ΖͰॳ୅CTOʹަ୅ 2022೥य़ͷঢ়گ

Slide 37

Slide 37 text

© 2023 Repro Inc. │ CONFIDENTIAL νʔϜτϙϩδʔͷڭ͑ᶄ ιϑτ΢ΣΞγεςϜΛѻ͏νʔϜͷೝ஌ෛՙ͕ߴ͗ͨ͢Βɺιϑτ΢ΣΞͷΦʔ φʔγοϓΛൃشͨ͠Γɺιϑτ΢ΣΞΛ҆શʹਐԽͤͨ͞Γ͢Δ͜ͱ͕Ͱ͖ͳ͘ ͳΔɻʢதུʣϞμϯͳιϑτ΢ΣΞγεςϜͷσϦόϦʔͱӡ༻ΛޮՌతʹߦ͏ ʹ͸ɺݚमͷ࣮ࢪɺద੾ͳٕज़બఆɺޏ༻ɺϖΞϓϩάϥϛϯάͳͲΛ௨ͯ͡ɺ૊ ৫͸՝୊಺ࡏੑෛՙΛ࠷খԽ͠ͳ͚Ε͹͍͚ͳ͍ɻ ʮνʔϜτϙϩδʔ Ձ஋͋Διϑτ΢ΣΞΛ͢͹΍͘ಧ͚ΔదԠܕ૊৫ઃܭʯ Chapter 3 νʔϜϑΝʔετࢥߟ ؆୯ʹ࢖͑ΔαʔϏεʢϓϥοτϑΥʔϜࢦ޲ͷΞϓϩʔν͕๬·͍͠ʣ΍ɺνʔ Ϝ͕ෆ׳ΕͳλεΫΛߦ͏ͱ͖ʹ͙͢ʹཔΕΔεϖγϟϦετͱ͍ͬͨαϙʔτγ εςϜ͕ͳ͍··ʹϓϩμΫτνʔϜΛ࡞Δͱɺଟ͘ͷϘτϧωοΫΛ࡞Γग़͢ɻ ʮνʔϜτϙϩδʔ Ձ஋͋Διϑτ΢ΣΞΛ͢͹΍͘ಧ͚ΔదԠܕ૊৫ઃܭʯ Chapter 4 ੩తͳτϙϩδʔ

Slide 38

Slide 38 text

© 2023 Repro Inc. │ CONFIDENTIAL 2018೥࢝Ίͷঢ়گ ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ ● ݩʑSREνʔϜ͕ଘࡏ͍͕ͯͨ͠։ൃମ੍ͷݟ௚͠ʹΑΓ2017೥10݄ʹղࢄ - ApplicationνʔϜɺDatastoreνʔϜͷ2νʔϜͰ୲౰ྖҬΛ෼୲ ● ApplicationνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ ● ৔౰ͨΓతͳΞϥʔτରԠ΍ޙखʹճΔΩϟύγςΟϓϥϯχϯά - ಛʹPrestoؔ࿈

Slide 39

Slide 39 text

© 2023 Repro Inc. │ CONFIDENTIAL 2019೥4݄ͷঢ়گ ● σʔλύΠϓϥΠϯؔ܎ͷ։ൃɾӡ༻͸CTOͱΠϯϑϥνʔϜ͕ϝΠϯͰ୲౰ ● ػೳ։ൃνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ - Cassandraʹ͍ͭͯҙࣝ͢Δ͜ͱ͸΄΅ͳ͠ ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ - ϓϩμΫτΦʔφʔ͕ࢢگͷมԽΛಡΈͳ͕Βػೳͷৄࡉ·Ͱఆٛ͢Δʹ͸ݶք

Slide 40

Slide 40 text

© 2023 Repro Inc. │ CONFIDENTIAL 2021೥8݄ͷঢ়گ ● Dev 4ʢچΠϯϑϥνʔϜ+CTOʣ͸ϦΞʔΩςΫνϟͷ΄ͱΜͲΛ୲౰ - όονूܭॲཧͷ൚༻ԽɺKafkaಋೖʹ൐͏ϦΞʔΩςΫνϟ etc. ● ػೳ։ൃνʔϜͷϝϯόʔ΋Cassandra΍KafkaΛ࢖͏ඞཁ͋Γ ● ৽͍͠CTOͷब೚ - લCTO͸Chief Architectͱ͍͏ݞॻʹ ● ܗ֚Խ͢ΔLeSS (Large Scale Scrum) - ಉ͡λΠϛϯάͰεΫϥϜతͳಈ͖Λ͍ͯ͠Δ׬શผνʔϜԽ - ֤νʔϜ௕ظʹ౉ͬͯಛఆͷϓϩδΣΫτΛ୲౰ - νʔϜΛލ͍Ͱෳ਺ͷϓϩδΣΫτΛ୲౰͢Δਓ΋͍ͨΒ͍͠ʢ͏Ζ֮͑ʣ

Slide 41

Slide 41 text

© 2023 Repro Inc. │ CONFIDENTIAL ● ϓϩδΣΫτ੍ಋೖʹΑΓ֤ػೳͷ୲౰͕ᐆດԽ - ֤ϓϩδΣΫτνʔϜͷ੹೚ऀ΋ෆࡏ ● ػೳɺϛυϧ΢ΣΞɺར༻AWSαʔϏε૿ՃʹΑΔશΤϯδχΞͷೝ஌ෛՙ૿େ ● ແݶʹ޿͕ΔSys-InfraʢچΠϯϑϥνʔϜ+CTOʣͷकඋൣғ - Chief Architectͷಋೖ͢Δج൫ͷड͚ೖΕઌ - σʔλύΠϓϥΠϯؔ࿈ͷΞϓϦέʔγϣϯͷ։ൃɾӡ༻ʢҰ෦ଐਓԽʣ - AWSؔ࿈ͷϝϯςφϯεɺΩϟύγςΟϓϥϯχϯάɺίετͷݟੵ΋Γ etc. ● ։ൃ૊৫ͷτοϓަ୅ - Repro Coreͱ͍͏νʔϜͷઃཱ͕ܾ·ͬͨͱ͜ΖͰॳ୅CTOʹަ୅ 2022೥य़ͷঢ়گ

Slide 42

Slide 42 text

© 2023 Repro Inc. │ CONFIDENTIAL νʔϜτϙϩδʔͷڭ͑ᶅ ೝ஌ෛՙ༰ྔΛ௒͑Δ੹೚Λ՝͢͜ͱͰνʔϜʹετϨεΛ༩͑ΔͱɺνʔϜ͸ϋ ΠύϑΥʔϚϯεͳϢχοτͱͯ͠ಇ͘͜ͱ͕Ͱ͖ͳ͘ͳΓɺͨͩͷݸਓͷू·Γ ͷΑ͏ʹ;Δ·͍࢝ΊΔɻ ʮνʔϜτϙϩδʔ Ձ஋͋Διϑτ΢ΣΞΛ͢͹΍͘ಧ͚ΔదԠܕ૊৫ઃܭʯ Chapter 3 νʔϜϑΝʔετࢥߟ

Slide 43

Slide 43 text

© 2023 Repro Inc. │ CONFIDENTIAL 2018೥࢝Ίͷঢ়گ ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ ● ݩʑSREνʔϜ͕ଘࡏ͍͕ͯͨ͠։ൃମ੍ͷݟ௚͠ʹΑΓ2017೥10݄ʹղࢄ - ApplicationνʔϜɺDatastoreνʔϜͷ2νʔϜͰ୲౰ྖҬΛ෼୲ ● ApplicationνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ ● ৔౰ͨΓతͳΞϥʔτରԠ΍ޙखʹճΔΩϟύγςΟϓϥϯχϯά - ಛʹPrestoؔ࿈

Slide 44

Slide 44 text

© 2023 Repro Inc. │ CONFIDENTIAL 2019೥4݄ͷঢ়گ ● σʔλύΠϓϥΠϯؔ܎ͷ։ൃɾӡ༻͸CTOͱΠϯϑϥνʔϜ͕ϝΠϯͰ୲౰ ● ػೳ։ൃνʔϜͷϝϯόʔʹٻΊΒΕΔͷ͸ҰൠతͳRailsΤϯδχΞͷεΩϧ - Cassandraʹ͍ͭͯҙࣝ͢Δ͜ͱ͸΄΅ͳ͠ ● ϓϩμΫτΦʔφʔ͕શػೳʹ͍ͭͯৄࡉ·Ͱఆٛ - ΤϯδχΞ͸ܾΊΒΕͨ΋ͷΛ୶ʑͱ࣮૷͢Δ͚ͩ - ϓϩμΫτΦʔφʔ͕ࢢگͷมԽΛಡΈͳ͕Βػೳͷৄࡉ·Ͱఆٛ͢Δʹ͸ݶք

Slide 45

Slide 45 text

© 2023 Repro Inc. │ CONFIDENTIAL 2021೥8݄ͷঢ়گ ● Dev 4ʢچΠϯϑϥνʔϜ+CTOʣ͸ϦΞʔΩςΫνϟͷ΄ͱΜͲΛ୲౰ - όονूܭॲཧͷ൚༻ԽɺKafkaಋೖʹ൐͏ϦΞʔΩςΫνϟ etc. ● ػೳ։ൃνʔϜͷϝϯόʔ΋Cassandra΍KafkaΛ࢖͏ඞཁ͋Γ ● ৽͍͠CTOͷब೚ - લCTO͸Chief Architectͱ͍͏ݞॻʹ ● ܗ֚Խ͢ΔLeSS (Large Scale Scrum) - ಉ͡λΠϛϯάͰεΫϥϜతͳಈ͖Λ͍ͯ͠Δ׬શผνʔϜԽ - ֤νʔϜ௕ظʹ౉ͬͯಛఆͷϓϩδΣΫτΛ୲౰ - νʔϜΛލ͍Ͱෳ਺ͷϓϩδΣΫτΛ୲౰͢Δਓ΋͍ͨΒ͍͠ʢ͏Ζ֮͑ʣ

Slide 46

Slide 46 text

© 2023 Repro Inc. │ CONFIDENTIAL ● ϓϩδΣΫτ੍ಋೖʹΑΓ֤ػೳͷ୲౰͕ᐆດ - ֤ϓϩδΣΫτνʔϜͷ੹೚ऀ΋ෆࡏ ● ػೳɺϛυϧ΢ΣΞɺར༻AWSαʔϏε૿ՃʹΑΔશΤϯδχΞͷೝ஌ෛՙ૿େ ● ແݶʹ޿͕ΔSys-InfraʢچΠϯϑϥνʔϜ+CTOʣͷकඋൣғ - Chief Architectͷಋೖ͢Δج൫ͷड͚ೖΕઌ - σʔλύΠϓϥΠϯؔ࿈ͷΞϓϦέʔγϣϯͷ։ൃɾӡ༻ʢҰ෦ଐਓԽʣ - AWSؔ࿈ͷϝϯςφϯεɺΩϟύγςΟϓϥϯχϯάɺίετͷݟੵ΋Γ etc. ● ։ൃ૊৫ͷτοϓަ୅ - Repro Coreͱ͍͏νʔϜͷઃཱ͕ܾ·ͬͨͱ͜ΖͰॳ୅CTOʹަ୅ 2022೥य़ͷঢ়گ

Slide 47

Slide 47 text

© 2023 Repro Inc. │ CONFIDENTIAL ࠶ܝ: ReproͷαʔόαΠυΛࢧ͑Δओͳٕज़ Amazon Corretto (Java) BigQuery Kafka Streams Rundeck Amazon EC2 Amazon ECS Amazon Aurora (MySQL Compatible) Amazon ElastiCache (Redis) Amazon S3

Slide 48

Slide 48 text

© 2023 Repro Inc. │ CONFIDENTIAL νʔϜτϙϩδʔͷڭ͑ᶅ ೝ஌ෛՙ༰ྔΛ௒͑Δ੹೚Λ՝͢͜ͱͰνʔϜʹετϨεΛ༩͑ΔͱɺνʔϜ͸ϋ ΠύϑΥʔϚϯεͳϢχοτͱͯ͠ಇ͘͜ͱ͕Ͱ͖ͳ͘ͳΓɺͨͩͷݸਓͷू·Γ ͷΑ͏ʹ;Δ·͍࢝ΊΔɻ ʮνʔϜτϙϩδʔ Ձ஋͋Διϑτ΢ΣΞΛ͢͹΍͘ಧ͚ΔదԠܕ૊৫ઃܭʯ Chapter 3 νʔϜϑΝʔετࢥߟ

Slide 49

Slide 49 text

© 2023 Repro Inc. │ CONFIDENTIAL 2022೥8݄ͷαʔόαΠυνʔϜͷߏ੒ Sys-Infra Feature Team 1 Repro Core Feature Team 2 Development Div. ػೳ։ൃνʔϜʢجຊݻఆʣ NEW

Slide 50

Slide 50 text

© 2023 Repro Inc. │ CONFIDENTIAL ֤νʔϜͷ੹຿ ● Repro Core - ސ٬ʹ௚઀తͳՁ஋͸ಧ͚ͳ͍͕ɺFeature Team ͕ސ٬ʹՁ஋Λಧ͚Δ্Ͱඞཁ ͱͳΔڞ௨ج൫Λఏڙ - e.g. όονɾετϦʔϛϯάσʔλύΠϓϥΠϯͷ։ൃɾӡ༻ ● Sys-Infra - ۃ୺ͳ࿩Reproݻ༗ͷ஌͕ࣝͳͯ͘΋੒Γཱͭڞ௨ج൫ͷఏڙ - e.g. ڞ௨Ͱར༻͍ͯ͠Δϛυϧ΢ΣΞʢKafka౳ʣɾAWSαʔϏεͷӡ༻ ● Feature Team - ސ٬ʹ௚઀తͳՁ஋Λಧ͚Δػೳͷ։ൃɾӡ༻

Slide 51

Slide 51 text

© 2023 Repro Inc. │ CONFIDENTIAL νʔϜͷ໾ׂΛྉཧͰྫ͑Δͱ Sys-Infra ਫɾΨεͷ҆ఆͨ͠ڙڅ Repro Core ศརͳಓ۩ͷ։ൃ Feature Team ྉཧΛ࡞Δ

Slide 52

Slide 52 text

© 2023 Repro Inc. │ CONFIDENTIAL ୲౰ίϯϙʔωϯτͷ੔ཧ

Slide 53

Slide 53 text

© 2023 Repro Inc. │ CONFIDENTIAL ղܾ͍ͨ͠՝୊ͱ৽ମ੍ʹظ଴͢ΔޮՌ ● ֤ίϯϙʔωϯτͷ୲౰͕ᐆດ - → νʔϜΛجຊతʹݻఆ͢Δ͜ͱͰ୲౰΋ݻఆ ● ػೳ։ൃ͢ΔνʔϜͷೝ஌ෛՙ্͕͕͍ͬͯΔ্ʹαϙʔτ΋ͳ͍ - → Repro CoreͱSys-Infra͕ೝ஌ෛՙΛԼ͛Δ࢓૊ΈΛ੔උ&ΠωΠϒϦϯά ● ಛఆͷνʔϜͷೝ஌ෛՙ͕ҟৗʹߴ͍ - → Sys-Infraͷ੹຿ͷҰ෦ΛRepo Coreʹ෼ׂ

Slide 54

Slide 54 text

© 2023 Repro Inc. │ CONFIDENTIAL ໨ࢦ࢟͢ ʮνʔϜτϙϩδʔ Ձ஋͋Διϑτ΢ΣΞΛ͢͹΍͘ಧ͚ΔదԠܕ૊৫ઃܭʯ

Slide 55

Slide 55 text

© 2023 Repro Inc. │ CONFIDENTIAL ͦͯ͠Platform Engineering΁

Slide 56

Slide 56 text

© 2023 Repro Inc. │ CONFIDENTIAL ݱࡏͷαʔόαΠυνʔϜͷߏ੒ Sys-Infra Feature Team 1 Repro Core Feature Team 2 Development Div. Platform Team Repro Team

Slide 57

Slide 57 text

© 2023 Repro Inc. │ CONFIDENTIAL Platform Team/Sys-Infraͷ׆ಈྫᶃ ৽͍͠ECSαʔϏεΛ௥Ճ͢ΔࡍͷΨΠυϥΠϯ࡞੒

Slide 58

Slide 58 text

© 2023 Repro Inc. │ CONFIDENTIAL Platform Team/Repro Coreͷ׆ಈྫᶃ ϦΞϧλΠϜूܭॲཧج൫ͷ։ൃͱͦͷ݁ՌΛฦ͢APIͷఏڙ

Slide 59

Slide 59 text

© 2023 Repro Inc. │ CONFIDENTIAL ݱࡏ๊͍͑ͯΔ՝୊ ● RailsΞϓϦέʔγϣϯΛϚΠΫϩαʔϏεԽͰ͖͍ͯͳ͍ - ෳ਺ͷECSαʔϏεʹ͸෼͔Ε͍ͯΔ͕ϦϙδτϦ΋σϓϩΠ΋ಉ͡ - ϦϙδτϦ͕෼͔Ε͍ͯΔίϯϙʔωϯτͷதʹ͸෼ࢄϞϊϦεͬΆ͍΋ͷ΋ ● Platform Team͕ػೳ։ൃνʔϜͷೝ஌ෛՙΛݮΒͨ͢Ίʹे෼ͳ࣌ؒΛׂ͚͍ͯͳ͍ - Sys-Infra͸ۀ຿աଟͰͰ͖͍ͯͳ͔ͬͨΞοϓάϨʔυۀ͕ཷ·͍ͬͯΔ - Repro Core͸νʔϜϏϧσΟϯάͩͬͨΓલ਎νʔϜͷෛ࠴ղফͩͬͨΓ ● Repro Coreࣗ਎ͷೝ஌ෛՙ͕෺ੌ͘େ͖͍ - νʔϜ෼ׂ౳Ҏ֎ͷղফํ๏͸ͳͦ͞͏͕ͩਓ਺͕଍Γͳ͍ ● શνʔϜͷΠϯλϥΫγϣϯϞʔυ͕·ͩʮίϥϘϨʔγϣϯʯ

Slide 60

Slide 60 text

© 2023 Repro Inc. │ CONFIDENTIAL ·ͱΊ

Slide 61

Slide 61 text

© 2023 Repro Inc. │ CONFIDENTIAL Reproͷ։ൃ૊৫ͷมભ 2018೥3݄ 2019೥4݄ 2022೥य़ αʔϏε҆ఆԽͷͨΊʹ ΠϯϑϥνʔϜઃཱɻ ࣗ཯తͳ։ൃମ੍Λ໨ ࢦͯ͠LeSSಋೖɻ ΠϯϑϥνʔϜͱCTO Ͱ1ͭͷνʔϜʹɻ LeSSͷܗ֚Խʹ൐͏ମ੍ݟ௚͠ ͱɺॊೈͳϦιʔε഑ஔΛ໨ࢦ ͯ͠ϓϩδΣΫτ੍ಋೖɻ Repro Core৽ઃ౳Λػʹɺ ೝ஌ෛՙͷܰݮΛ໨ࢦͯ͠ νʔϜτϙϩδʔΛҙࣝͨ͠ ։ൃମ੍ʹมߋɻ 2021೥8݄ Platform EngineeringͰੜ࢈ੑΛ্͛Α͏ͱ·ͩ·ͩಓ൒͹

Slide 62

Slide 62 text

© 2023 Repro Inc. │ CONFIDENTIAL ͓·͚

Slide 63

Slide 63 text

© 2023 Repro Inc. │ CONFIDENTIAL ΤϯδχΞืूதʂʂ ● Repro Core ● Sys-Infra ● Feature Team ● ৽نࣄۀ ● ASO Insight

Slide 64

Slide 64 text

© 2023 Repro Inc. │ CONFIDENTIAL Repro Coreͷϛογϣϯɾ੹຿ʢ2023೥9݄·Ͱʣ ● ϛογϣϯ - Repro ͷػೳΛఏڙ͢Δ্Ͱத֩ͱͳΔج൫Λఏڙ͠ɺFeature Team ͕ސ٬Ձ஋ ͷఏڙʹूதͰ͖Δ૊৫Λ࡞Δ ● ੹຿ - SDK͔ΒͷσʔλΛଞͷαʔϏεͰར༻Ͱ͖ΔΑ͏ʹ֤छσʔλετΞʹอଘ͢Δ - Feature Team ͕ػೳ։ൃ͢Δࡍʹར༻͢Δڞ௨ج൫ɾϥΠϒϥϦͷ։ൃ - ্هڞ௨ج൫ɾϥΠϒϥϦΛ࢖ͬͨ։ൃͷࢧԉ - Feature Team ͷઃܭ૬ஊ

Slide 65

Slide 65 text

© 2023 Repro Inc. │ CONFIDENTIAL Repro Coreͷϛογϣϯɾ੹຿ʢ2023೥10݄Ҏ߱ʣ ● ϛογϣϯ - Feature Team ʹରͯ͠ Repro Tool Λఏڙ͢Δ্Ͱͷڞ௨ج൫ɾϥΠϒϥϦͷఏڙ ͱ։ൃࢥ૝ͷܒ໤Λߦ͍ɺFeature Team ͷ։ൃମݧͱੜ࢈ੑΛ্͛Δ ● ੹຿ - Repro Tool શମͰ࢖͏σʔλͷσʔλύΠϓϥΠϯߏஙɾ҆ఆӡ༻ - Feature Team ͕ػೳ։ൃ͢Δࡍʹར༻͢Δڞ௨ج൫ɾϥΠϒϥϦͷఏڙ - ڞ௨ج൫ɾϥΠϒϥϦΛ࢖ͬͨ։ൃͷΠωΠϒϦϯά - Feature Team ΁ͷ։ൃࢥ૝ͷܒ໤ʢઃܭɾӡ༻αϙʔτ౳ʣ

Slide 66

Slide 66 text

© 2023 Repro Inc. │ CONFIDENTIAL Platform Teamͷ΍͍ͬͯΔ͜ͱ͸Platform Engineeringͳͷ͔ʁ ● ༷ʑͳػೳͰར༻͢Δڞ௨ج൫Λఏڙ͍ͯ͠Δͱ͍͏఺Ͱ͸͓ͦΒ͘Yes - ػೳ։ൃνʔϜ͕Kafka΍CassandraΛϚωʔδυαʔϏεײ֮Ͱ৮ΕΔͷͰ͋Ε͹ ҰछͷPlatformͱݺ΂ΔͩΖ͏ - ػೳ։ൃνʔϜ͕ෳࡶͳॲཧΛ࣮૷͠ͳͯ͘΋ػೳఏڙʹඞཁͳσʔλ͕खʹೖΔ ͷͰ͋Ε͹ҰछͷPlatformͱݺ΂ΔͩΖ͏ ● ੈͷதͰ࿩୊ʹͳ͍ͬͯΔPlatform Engineeringͱ͸গ͠ҧ͏ؾ͸͢Δ - ʮKubernetes౳ΛӅṭ͢Δࣗࣾج൫Λ࡞Γ·ͨ͠ʂʯͱ͔Ͱ͸ͳ͍

Slide 67

Slide 67 text

© 2023 Repro Inc. │ CONFIDENTIAL Platform Team/Sys-Infraͷ׆ಈྫᶄ CPUΞϥʔτɾϝϞϦΞϥʔτ౳ͷΞϥʔτΛػೳ։ൃνʔϜ΁ҕৡ

Slide 68

Slide 68 text

© 2023 Repro Inc. │ CONFIDENTIAL Platform Team/Sys-Infraͷ׆ಈྫᶅ https://tech.repro.io/entry/2023/10/03/090000 ϦϦʔεΦϖϨʔγϣϯͷෛՙܰݮ

Slide 69

Slide 69 text

© 2023 Repro Inc. │ CONFIDENTIAL Platform Team/Repro Coreͷ׆ಈྫᶄ Kafka StreamsΞϓϦέʔγϣϯͷςϯϓϨʔτϦϙδτϦʢσϓϩΠϩδοΫ෇ʣͷఏڙ