Slide 1

Slide 1 text

BtoBελʔτΞοϓͱ αʔόʔϨε B2BελʔτΞοϓΤϯδχΞφΠτ 2018.08.21 HiCustomer inc. ංલ༸༎ @hizeny

Slide 2

Slide 2 text

• ංલ༸༎ • @hizeny • ڞಉ૑ۀऀ VP of Engineering • ࢁͳͲΛ૸Γ·͢

Slide 3

Slide 3 text

HiCustomer inc. • 2017೥12݄૑ۀ • ϑϧλΠϜ3ਓ / ۀ຿ҕୗ + ෭ۀ6ਓ • ϏδωεαΠυ: 2ਓ • σβΠφʔ: 1ਓ • ΤϯδχΞ: 6ਓ • https://hicustomer.jp/

Slide 4

Slide 4 text

ΧελϚʔαΫηεͷ՝୊ʹ αʔόʔϨεΞʔΩςΫνϟͰऔΓ૊Ή اۀͰ͢ ͸ɺ

Slide 5

Slide 5 text

໨࣍ 1. αʔϏεͷѻ͏υϝΠϯ • ΧελϚʔαΫηεͱ͸ • ϓϩμΫτͷѻ͏ϏδωεϩδοΫ 2. υϝΠϯͷಛੑͱٕज़తΞϓϩʔν • ॲཧͷྲྀΕ • ߟྀ͢΂͖͜ͱ • ΞʔΩςΫνϟ • ։ൃݴޠ • ࠓޙͷ՝୊ • (͓·͚) ౿Έൈ͍ͨαʔόʔϨεΞϯνύλʔϯ

Slide 6

Slide 6 text

αʔϏεͷѻ͏υϝΠϯ ͳʹΛ࣮ݱ͍ͨ͠ͷ͔

Slide 7

Slide 7 text

ΧελϚʔαΫηεͱ͸ • ಋೖ࣌ʹιϑτ΢ΣΞͷॴ༗ݖΛങ͍औΔ • ΦϯϓϨϛεͰӡ༻ SaaSͷొ৔ʹΑΓιϑτ΢ΣΞͷఏڙํ๏ͷมԽ • ఆظߪಡ or ैྔ՝ۚ • αʔϏεͱͯ͠ඞཁͳͱ͖ʹඞཁͳ෼͚ͩར༻ SaaSҎલ SaaSҎޙ

Slide 8

Slide 8 text

• ॳظ։ൃ࣌ʹҰؾʹ࡞ΓࠐΉ • ΢ΥʔλʔϑΥʔϧ ։ൃख๏΋มԽ • ܧଓతΠϯςάϨʔγϣϯ/σϦόϦ • εΫϥϜ / ΞδϟΠϧ ΧελϚʔαΫηεͱ͸ SaaSҎલ SaaSҎޙ

Slide 9

Slide 9 text

• ചΓ্͛ͷେ෦෼͸ॳظಋೖඅ༻͕઎ΊΔ • ϚʔέςΟϯά / ηʔϧεʹ஫ྗ ൢചઓུ΋ಉ༷ʹมԽ • ܧଓར༻/ར༻֦େʹΑΓചΓ্͛ΛੵΈ্͛Δ • ཭୤Λ๷͗ɺ༗ޮ׆༻Λଅ͢͜ͱ͕ॏཁ ΧελϚʔαΫηεͱ͸ SaaSҎલ SaaSҎޙ

Slide 10

Slide 10 text

ΧελϚʔαΫηεͱ͸ɺ ʮ཭୤Λ๷͗ɺ༗ޮ׆༻Λଅ͢ʯ׆ಈͷ͜ͱ ൢചઓུ΋ಉ༷ʹมԽ ΧελϚʔαΫηεͱ͸ HiCustomer͸ΧελϚʔαΫηεʹඞཁͳ৘ใΛऩू͠ɺ ਖ਼͍͠λΠϛϯάͰਖ਼͍͠ΞΫγϣϯΛߦ͏ͨΊͷϓϥοτϑΥʔϜ

Slide 11

Slide 11 text

࣮ݱ͍ͨ͠ϏδωεϩδοΫ HiCustomerͷ3ͭͷओཁ֓೦ 1. ΧελϚʔ • (BtoB) SaaSϓϩμΫτΛར༻͍ͯ͠Δސ٬اۀ 2. εςʔδ • ϓϩμΫτͷར༻ϑΣʔζ • e.g. τϥΠΞϧ / ΦϯϘʔσΟϯά / ܖ໿ߋ৽લͳͲ 3. ϔϧεείΞ • ΧελϚʔ͕ϓϩμΫτΛ׆༻Ͱ͖͍ͯΔ͔ͷࢦඪ • ֤εςʔδʹ͍ͭͯఆٛͨ͠ཧ૝తͳΧελϚʔͷৼΔ෣͍ʹରͯ͠Ͳͷఔ౓͍͔ۙ͠ʹΑΓධՁ͢Δ • e.g. Good / Normal / Bad

Slide 12

Slide 12 text

࣮ݱ͍ͨ͠ϏδωεϩδοΫ • SaaSϓϩμΫτͷΧελϚʔΛϓϩμΫτͷར༻ϩά͔Βεςʔδʹ෼ྨ • εςʔδ͝ͱʹఆٛͨ͠ج४Λ΋ͱʹϔϧεείΞΛࢉग़ • ࢉग़͞Εͨεςʔδ / ϔϧεείΞΛ΋ͱʹରԠͷ༏ઌॱҐΛܾఆ • εςʔδ / ϔϧεείΞͷ෼෍ͱ࣮ࡍͷ཭୤/ར༻֦େΛরΒ͠߹ΘͤͯϧʔϧΛνϡʔχϯά

Slide 13

Slide 13 text

࣮ݱ͍ͨ͠ϏδωεϩδοΫ • SaaSϓϩμΫτͷΧελϚʔΛϓϩμΫτͷར༻ϩά͔Βεςʔδʹ෼ྨ • εςʔδ͝ͱʹఆٛͨ͠ج४Λ΋ͱʹϔϧεείΞΛࢉग़ • ࢉग़͞Εͨεςʔδ / ϔϧεείΞΛ΋ͱʹରԠͷ༏ઌॱҐΛܾఆ • εςʔδ / ϔϧεείΞͷ෼෍ͱ࣮ࡍͷ཭୤/ར༻֦େΛরΒ͠߹ΘͤͯϧʔϧΛνϡʔχϯά

Slide 14

Slide 14 text

υϝΠϯͷಛੑͱΞϓϩʔν ϏδωεϩδοΫΛͲͷΑ͏ʹ࣮ݱ͢Δ͔

Slide 15

Slide 15 text

ॲཧͷྲྀΕ • ֤ࣾͷSaaSϓϩμΫτ͔ΒૹΒΕͯ͘ΔΧελϚʔͷߦಈϩάΛऩू͢Δ • ʮ௚ۙn೔ؒͰΠϕϯτA͕mճҎ্ߦΘΕͨʯʮܖ໿ߋ৽೔·Ͱn೔Ҏ಺ʯͳͲͷϧʔϧʹج͖ͮΧελϚʔͷ
 εςʔλε (είΞ/εςʔδ) Λࢉग़͢Δ • ΧελϚʔͷεςʔλεΛμογϡϘʔυͰՄࢹԽ͢Δ

Slide 16

Slide 16 text

ߟྀ͢΂͖͜ͱ αʔϏεͷಛੑ: • ࣌ܥྻσʔλ (ϓϩμΫτͷར༻ϩά) ΛΠϕϯτυϦϒϯʹѻ͏ • Πϕϯτͷछྨ͕ΫϥΠΞϯτʹΑΓେ͖͘ҟͳΔ ੑೳཁ݅: • ϩάऩूͷՄ༻ੑ/Ϩεϙϯε଎౓͕΋ͬͱ΋ॏཁ • ಋೖઌϓϩμΫτن໛ʹΑΓτϥϑΟοΫͷٸ૿͕ߟ͑ΒΕΔ

Slide 17

Slide 17 text

ΞʔΩςΫνϟ ଟ༷ͳΠϕϯτσʔλΛѻ͏ͨΊͷΞϓϩʔν • SaaSϓϩμΫτ͝ͱʹҟͳΔσʔλܕΛѻ͑ΔΑ͏ɺσʔλετΞʹDynamoDBΛ࠾༻ • σʔλͷॻ͖ࠐΈΛड͚ͯผͷΠϕϯτΛτϦΨʔͰ͖ΔͷͰΠϕϯτυϦϒϯͳΞϓϦέʔγϣϯͱ૬ੑ͕ྑ͍

Slide 18

Slide 18 text

ΞʔΩςΫνϟ ऩूॲཧͷՄ༻ੑΛߴΊΔΞϓϩʔν • Immutable Tables͸ॻ͖ࠐΈɺMutable Tables͸ಡΈࠐΈʹ࠷దԽͨ͠ςʔϒϧ (CQRSͷ֓೦) • Immutable Tablesʹ͸શͯͷΠϕϯτ͕ه࿥͞ΕΔ • Immutable Tables΁ͷॻ͖ࠐΈΠϕϯτΛτϦΨʔʹूܭॲཧ͕૸Γɺ݁ՌΛMutable Tablesʹه࿥͢Δ • ·ͣ͸ॻ͖ࠐΈίετͷ௿͍ImmutableͳςʔϒϧʹσʔλΛอଘ͢Δ͜ͱͰߴτϥϑΟοΫ࣌ͷσʔλܽଛΛ๷͙ • ूܭॲཧʹࣦഊͯ͠΋Immutable Tablesʹσʔλ͕อଘ͞Ε͍ͯΕ͹ॲཧΛϦτϥΠͰ͖Δ

Slide 19

Slide 19 text

։ൃݴޠ ౰࣌ͷબ୒ࢶ: • Python • Node.js • Go • Java • .NET GoΛબΜͩཧ༝: • ࣮ߦ଎౓ • ฒྻ • ֶशίετͷ௿͞ • ૉ๿ͳॻ͖ຯ ࣮ߦ؀ڥͱͯ͠AWS LambdaΛબ୒ͨ࣌͠఺Ͱ͋Δఔ౓ߜΒΕͨத͔Βબఆ ଞͷݴޠॲཧܥ͔Βདྷͯ΋ΩϟονΞοϓ͠΍͍͢ͱ͍͏఺΋ߟྀͯ͠GoΛબ୒ (Scala/RubyϝΠϯͰͨ͠)

Slide 20

Slide 20 text

ࠓޙͷ՝୊ • ετϦʔϜॲཧͷεϩοτϦϯά • DynamoDB Streams͸4events/secݻఆ • ΑΓॊೈͳόοϑΝϦϯάͷͨΊKinesisΛಋೖ • ςʔϒϧ/ΠϯσοΫεͷ਺ΛݮΒ͢ • ςʔϒϧ͕෼ࢄ͢ΔͱΩϟύγςΟαΠζ࠷దԽͷ໘Ͱෆར • DynamoDB͸range keyͰΞΠςϜͷछྨΛදݱ͢ΔΑ͏ʹ͢Ε͹ҟͳΔछྨͷΞΠςϜΛ 1ςʔϒϧͰѻ͏͜ͱ͕Մೳ • ߴ౓ͳݕࡧͷ࣮ݱ • DynamoDBͷΈͰݕࡧػೳ͢Δͷ͸ࠔ೉ɺιʔτΛ࣮ݱ͢Δ͚ͩͰ΋1ྻ1index͕ඞཁ • ݕࡧΤϯδϯͱͯ͠ElasticsearchΛಋೖ

Slide 21

Slide 21 text

(͓·͚) ౿Έൈ͍ͨ αʔόʔϨεΞϯνύλʔϯ • ϢʔεέʔεʹԊΘͳ͍εΩʔϚઃܭ • RDBͱಉ͡Α͏ͳΞϓϩʔνͰ͋Δఔ౓ਖ਼نԽͯ͠σʔλϞσϧ͝ͱʹςʔϒϧΛ෼͚ ͍ͯͨ • DynamoDBͰ͸Ϣʔεέʔεͷಉ͡σʔλͷςʔϒϧΛ෼཭͢Δͱݪࢠੑͱಠཱੑ͕ࣦ ΘΕɺΩϟύγςΟαΠζ࠷దԽͷ໘Ͱ΋ෆར • ݕࡧ΋KVSϕʔεͷNoSQLͰؤுΔ • ଟ਺ͷΞΠςϜΛදࣔ͢ΔҰཡը໘Ͱͷݕࡧ΍ιʔτ΋DynamoDBͰ΍Ζ͏ͱ͍ͯͨ͠ • ྻ͕૿͑Δͨͼindex͕૿͑ॻ͖ࠐΈίετ΋૿Ճ • શจݕࡧͳͲؒҧͬͨ࢖͍ํΛ͢Δͱશ͘ύϑΥʔϚϯε͕ग़ͳ͍ͷͰɺ༻్ʹదͨ͠ ΞʔΩςΫνϟ(͜ͷ৔߹͸ElasticsearchͳͲ)Λซ༻͢Δͷ͕ྑ͍

Slide 22

Slide 22 text

Θ͔ͬͨ͜ͱ • ཁ݅ʹΑΓ޲͖ෆ޲͖͕͋Δ (େલఏ) • ΠϕϯτιʔγϯάͳΞϓϦέʔγϣϯͱ͸૬ੑ͕ྑ͍ • ਖ਼͘͠࢖͑͹ΞϓϦέʔγϣϯ։ൃʹूதͰ͖Δ • ॻ͖ࠐΈͱಡΈࠐΈͷςʔϒϧΛ෼͚͓ͯ͘ͱϢʔεέʔε͕มΘͬͯ΋σʔλϞσϧ͕ม ߋ͠΍͍͢ • ϓϩμΫτͷํ޲ੑ͕׬શʹఆ·͍ͬͯͳ͍ελʔτΞοϓͰ͸ಛʹॏཁ • σʔλετΞ΁ͷΞΫηε͸ந৅Խͯ͠มߋ΍૊Έ߹ΘͤΛ͠΍͍͢Α͏ʹ͓ͯ͘͠ͱΑ͍ • ݕࡧ͸ElasticsearchͰߦ͏Α͏ʹ͢ΔɺͳͲ͕ޙ͔ΒͰ͖Δ • ཁ্݅ɺRDS͕ඞཁʹͳͬͨͱͯ͠΋KinesisΛڬΜͰඇಉظ࣮ߦͳͲͰͳΜͱ͔͢Δ͜ͱ͸Ͱ͖Δ BtoBελʔτΞοϓͱ͍͏จ຺ͰAWS Lambda + DynamoDBΛத৺ͱͨ͠ߏ੒Ͱͷ ΞϓϦέʔγϣϯ։ൃΛ൒೥ߦͬͨײ૝

Slide 23

Slide 23 text

ΧελϚʔαΫηεͷ՝୊ʹ αʔόʔϨεΞʔΩςΫνϟͰऔΓ૊Ή اۀͰ͢ ͸ɺ

Slide 24

Slide 24 text

We’re Hiring Engineers! https://www.wantedly.com/companies/hicustomer

Slide 25

Slide 25 text

͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ B2BελʔτΞοϓΤϯδχΞφΠτ 2018.08.21 HiCustomer inc. ංલ༸༎ @hizeny