Slide 1

Slide 1 text

ϨΨγʔSolrͷ
 ElasticseachҠߦ Cybozu Tech Meetup #14

Slide 2

Slide 2 text

͸͡Ίʹ • ϨΨγʔSolrͷElasticsearchҠߦ͝ࢀՃ͋Γ͕ͱ͏͍͟͝·͢ • ʰຐ۸ͱ͔ͨ͠શจݕࡧαʔόʔͱ;͔ͬͭͷ͡Ύ΋Μʱͱ
 ΄΅ಉ͡಺༰ʹͳΓ·͢ • ࣭໰ʹͰ͖ΔݶΓ౴͍͑ͨͱߟ͓͑ͯΓ·͢ • ϒϩάΛಡΜͰͷ࣭໰ɾποίϛ΍
 ಉ͡Α͏ͳڥ۰ͷํͰ೰ΜͰ͍Δํ͕͍Ε͹
 ࣾ֎ൿ৮Εͳ͍ఔ౓ʹڞ༗͍͚ͯͨͩ͠ΔͱҰॹʹ೰Έ·͢ɻ

Slide 3

Slide 3 text

࣭໰ͳͲ͋Ε͹͓ؾܰʹ • Twitter΋#CybozuTechͷ
 ϋογϡλάΛ͚ͭͯ
 ͭͿ΍͍͍͚ͯͨͩΔͱ
 ࣭໰Λर͑Δ͔΋͠Ε·ͤΜ

Slide 4

Slide 4 text

ຊ୊ͷલͷΤΫεΩϡʔζ • ʰϨΨγʔʱͱ͍͏ݴ༿ʹରͯ͠ωΨςΟϒͳ͖ͭ·ͱ͍͕ͪͰ͢ • ϨΨγʔԽͯ͠͠·ͬͨOSSΛᄀΊΔҙਤ͸͋Γ·ͤΜ • աڈɾݱࡏؔΘͬͨϝϯόʔΛᄀΊΔҙਤ͸͋Γ·ͤΜ • Solr͕αΠϘ΢ζͷΫϥ΢υᴈ໌ظΛࢧ͑ͨͷ͸
 ༳Δ͗ͳ͍ࣄ࣮Ͱ͢ • ࠓճ࠾༻ͨ͠ΞʔΩςΫνϟ͸
 Elasticsearch͕ਪ঑͍ͯ͠Δߏ੒ͱ͸શ͘ҟͳΓ·͢

Slide 5

Slide 5 text

Solrͱcybozu.com

Slide 6

Slide 6 text

શจݕࡧαʔόʔʹ͍ͭͯ • αΠϘ΢ζͰ͸SolrΛར༻͍ͯͨ͠ • JettyʹwarܗࣜͷSolrΛόϯυϧ͢Δ
 ߏ੒Ͱӡ༻؀ڥʹσϓϩΠ • ࣗࣾΧελϚΠζΛߦ͍ͬͯͨ • Ψϧʔϯ/ϝʔϧϫΠζ/kintoneͰશจΛར༻

Slide 7

Slide 7 text

Ϋϥ΢υͷߏ੒ʹ͍ͭͯ • ӡ༻ʹඞཁͳίϯϙʔωϯτ͝ͱʹVMʹ഑ஔ • Solr΋͜ͷ಺ͷҰͭ • Ұఆ਺ͷςφϯτ͝ͱΛ·ͱΊͯ
 ͦΕͧΕʹಠཱͨ͠؀ڥΛఏڙ͍ͯ͠Δ

Slide 8

Slide 8 text

cybozu.comͷΫϥ΢υ֓ཁਤ ςφϯτID={1, 2, 3} ςφϯτID={6,7,8} ςφϯτID={4,5} ςφϯτID, ϓϩμΫτ͝ͱʹ
 SolrͷΠϯσοΫεΛ࡞੒

Slide 9

Slide 9 text

ຐ۸ͱԽ͢·Ͱͷྺ࢙

Slide 10

Slide 10 text

SolrͱΫϥ΢υͷྺ࢙ • Ϋϥ΢υαʔϏεᴈ໌ظ͔Βͷ
 શจݕࡧͷج൫ٕज़ • SolrͷόʔδϣϯΞοϓʹΑΓ
 τʔΫφΠβͷޓ׵ੑ͕յΕΔ͜ͱ͕Θ͔Δ • Solr΁ͷόʔδϣϯΞοϓΛ͍ͬͨΜఘΊΔ

Slide 11

Slide 11 text

τʔΫφΠβͱ͸ʁ • શจݕࡧͷࡧҾ৘ใ͸จষΛҰఆͷϧʔϧͰ
 ෼ׂͨ͠୯ޠͱจষͷIDͰΠϯσοΫεΛ࡞੒͢Δ • (Ex) ࠓ೔͸ྑ͍ఱؾͩ → ࠓ೔ɺྑ͍ɺఱؾ
 ͱจষIDͰυΩϡϝϯτอଘ • (ࠓ೔ or ྑ͍ or ఱؾ) ΛݕࡧΩʔϫʔυʹ͢Δͱ
 (Ex)ͷจষ͕ݕࡧώοτ͢Δ • ෼ׂͷϧʔϧ͸τʔΫφΠβʹΑͬͯҟͳΓ·͢ • ༗໊ͳτʔΫφΠβ͸Kuromoji, N-gram ͳͲɻ༻్ʹΑͬͯ࢖͍෼͚Δ

Slide 12

Slide 12 text

τʔΫφΠβ͕յΕΔͱ…? • τʔΫφΠβA͕࣍ͷΑ͏ʹ෼ׂ͢Δͱ͢Δ • Ex) ౦ژ౎ → ౦ژ, ژ౎Ͱ෼ׂ
 👉 ౦ژ or ژ౎Ͱώοτ • ݡ͍τʔΫφΠβ → ౦ژ, ౦ژ౎Ͱ෼ׂ
 👉 ౦ژ or ౦ژ౎Ͱώοτ • ݕࡧϊΠζ͕ݮΔͨΊɺҰൠతʹ͸Bͷํ͕ݡͯ͘ྑ͍ͱ͞ΕΔ

Slide 13

Slide 13 text

ݡ͍ݕࡧ͸خ͍͠͸ͣ…ʁ • kintoneʹ͸ϨίʔυߜΓࠐΈػೳ͕͋Γ
 ςΩετΛؚΉ৚݅ͰߜΓࠐΉػೳ͕͋ͬͨ • ߜΓࠐΈ͕ώοτ͢Δɾ͠ͳ͍͕มΘΔͷ͸
 kintoneʹͱͬͯ͸ΫϦςΟΧϧͳޓ׵ੑͷ
 ഁյͱͳΔ • kintoneͷߜΓࠐΈػೳ͕τʔΫφΠβͷ࢓༷ʹ
 ҉໧తʹີ݁߹͍ͯ͠Δ

Slide 14

Slide 14 text

KintoneͷߜΓࠐΈ ߜΓࠐΈͷΩʔϫʔυ͕શจݕࡧͰώοτ͢Δͱ
 Ϩίʔυͱͯ͠දࣔ͞ΕΔ

Slide 15

Slide 15 text

ຐ۸ͱԽ͢Solr • 1೥Ͱ1TBΠϯσοΫε͕૿Ճ͢Δςφϯτ • ΠϯσοΫεංେԽʹΑΓݕࡧੑೳͷྼԽ • GaroonͰ͸ݕࡧੑೳྼԽ͕ݦஶ • ݕࡧϦΫΤετ͕਺ेඵ͔͔ͬͯ
 ௐࠪͰλΠϜΞ΢τ͢Δ͜ͱ͕Θ͔͍ͬͯͨ • ҰํͰɺkintoneͷޙํޓ׵ੑ͸ଥڠͰ͖ͳ͍… • खΛՃ͑Δ͜ͱ͕Ͱ͖ͳ͍ࣄ࣮͕ੵΈ্͕ͬͯਏ͍

Slide 16

Slide 16 text

͞Βʹຐ۸ͱԽܾ͢ఆଧΛ
 ඥղ͍͍ͯ͘

Slide 17

Slide 17 text

ΠϯσΫγϯάͷྺ࢙

Slide 18

Slide 18 text

ΠϯσΫγϯάͱ͸ • શจݕࡧ༻ͷࡧҾσʔλ࡞੒Λࢦ͢ • Ϣʔβʔͷૢ࡞ʹରͯ͠ࡧҾΛ௥Ճɾߋ৽ɾ࡟আΛߦ͏ • ͢Ͱʹଘࡏ͢ΔσʔλΛΫϩʔϧͯ͠ࡧҾΛ࠶࡞੒͢Δ • τʔΫφΠβͷมߋ࣌ʹ͸࠶ΠϯσΫγϯά͕ඞཁʹͳΔ • ϓϩμΫτ͸ΠϯσΫγϯάΛ࡞੒͢ΔAPIΛ࣋ͭ • ͜ΕΛSRE͕࣮ߦ͢Δ࢓૊Έ

Slide 19

Slide 19 text

ΠϯσΫγϯάͷ֓ཁਤ ΠϯσοΫεͷ࠶࡞੒ ϢʔβʔೖྗͷΠϯσοΫεߋ৽

Slide 20

Slide 20 text

ͭΒ͍ΠϯσοΫεͷ࠶࡞੒ • SRE͕ࡉ͔͍ঢ়ଶ؅ཧ • ΠϯσΫγϯάର৅ͷςφϯτ • ΠϯσΫγϯάର৅ͷϓϩμΫτ • ΠϯσΫγϯάର৅ͷϨίʔυͷҐஔ • ΠϯσοΫεͷ࠶࡞੒͕௕ظԽ͢Δςφϯτ͕ݱΕ͸͡ΊΔ • SREΦϖϨʔγϣϯͷߟྀ࿙ΕͰ࡞੒தͷΠϯσοΫε͕
 յΕΔࣄނ͕ى͖ΔΑ͏ʹͳΔ • ͜ͷࣄނ͕ى͖Δͱͦͷςφϯτ͸ΠϯσοΫεͷ΍Γ௚͠

Slide 21

Slide 21 text

ϩετςΫϊϩδʔԽ • ΠϯσοΫεͷ࠶࡞੒͸ආ͚Δงғؾ͕ࣾ಺Ͱৢ੒͞ΕΔ • ͦ͏͍ͯ͠Δؒʹ໼໘ʹཱ͍ͬͯͨίΞϝϯόʔ͕ୀ৬ • ΠϯσοΫεͷ࠶࡞੒Λ࠷ޙ·Ͱ਱ߦ͢Δ
 ύϫʔΛ࣋ͬͨਓʹڧ͘ґଘ࣮ͨ͠૷ͩͬͨ • ׬શʹ৮Ε͍ͯ͸͍͚ͳ͍ຐ۸΁ • ͦΜͳͱ͖ʹզʑͷલʹݱΕͨͷ͸…

Slide 22

Slide 22 text

Elasticsearchͷ୆಄

Slide 23

Slide 23 text

ʰ஖ᥨͷࢳʱΛٻΊͯ R&D • ࠷ߴͷΠϯσΫγϯάɺ࠷ߴͷΫϥελ • τʔΫφΠβͷޓ׵ੑ͸ɺElasticsearchͰ΋ͳ͍·· • 👉 ϏδωεαΠυΛઆಘͯ͠ɺͳΜͱ͔͢Δ • ࠶ΠϯσοΫε͸ఆظϝϯςதʹ΍Γ͖ΔΒ͍͠ • 👉 Ϗδ..(ry

Slide 24

Slide 24 text

ʰ஖ᥨͷࢳʱ͸੬͔ͬͨ • Elasticsearch6͸େྔͷΠϯσοΫεΛ࣋ͭͱ
 Ϋϥελ͕ෆ҆ఆԽ͢Δ • Elasticsearchͷߏ੒Ҋ͸͢΂ͯͷςφϯτΛ
 ̍ͭͷΫϥελʹऩΊΔߏ૝ͩͬͨ

Slide 25

Slide 25 text

ΞʔΩςΫνϟͷߏ੒มߋਤ

Slide 26

Slide 26 text

͞ΑͳΒ ͨΓͳ͍ΞʔΩςΫνϟ • ໰୊Λղܾ͢Δʹ͸৭ʑ଍Γͳ͍ • ෳࡶͳΫϥελ؅ཧ • ϚϧνςφϯτͰ࢖͑ΔαʔϏεɾσΟεΧόϦ • ޻਺ɾ޻਺ɾ޻਺ • ࣮ݱෆೳͷᖻҹΛԡ͞ΕͯϓϩδΣΫτఀࢭ • ࠓࢥ͏ͱR&Dͱ͍͏ݴ༿ʹݱ࣮ಀආ͍ͯͨ͠

Slide 27

Slide 27 text

ຐ۸·ͱΊ • τʔΫφΠβͱີ݁߹ͨ͠ػೳʹΑΓ
 ਎ಈ͖͕औΕͳ͘ͳΔ • ࠶ΠϯσοΫε༻ͷπʔϧ͕࢖͍෺ʹͳΒͳ͘ͳΔ • ڊେԽɾੑೳ͕ѱԽ͚ͭͮ͠Δݕࡧαʔόʔ • ଐਓԽɾϩετςΫϊϩδʔԽ • ࠷ޙʹ͕ͬͨ͢Elasticsearch΋ແཧͩͬͨ

Slide 28

Slide 28 text

Solr End of Life ͱ 
 ϏόʔΫϓϩδΣΫτ

Slide 29

Slide 29 text

Solr EOLͱϏόʔΫ • ར༻͍ͯ͠ΔSolr͕End of life(EOL)΁ • EOLରԠͷΈΛ໨తͱͨ͠
 શจݕࡧαʔόʔҠߦΛ໛ࡧ • ొࢁ༻ޠͰۓٸආ೉Λҙຯ͢ΔϏόʔΫͱͨ͠ • NecoͰΞʔΩςΫνϟతʹ͖Ε͍ͳղʹ
 ࢸΕ͹Α͍ɻ͍Θ͹࣌ؒՔ͗

Slide 30

Slide 30 text

ϏόʔΫͷείʔϓ • Solr͔Βͷ୤٫ʰͷΈʱΛείʔϓͱ͢Δ
 ࣮֬ʹϓϩδΣΫτΛऴΘΒͤΔ • ໨త͸SolrͷηΩϡϦςΟϦεΫΛআڈͷΈ • ҠߦΛ੒ޭͤ͞ΔͨΊʹʰ΂͖࿦ʱ͸͠ͳ͍ • ΞʔΩςΫνϟ͔͋͘Δ΂͠࿦͸͠ͳ͍ • ੑೳͰக໋తͳ໰୊͕ग़ͳ͍ݶΓ͸ҠߦΛଧ਍

Slide 31

Slide 31 text

ٕज़બఆ • SolrΛόʔδϣϯΞοϓ͢ΔҊ΋͋ͬͨ • ࠷৽ͷSolrͰ͸ࣾ಺Ͱఏڙ͍ͯͨ͠ܗࣜͰͷ
 ܧଓఏڙ͢Δͷ͕೉͘͠ɺSolrʹͩ͜ΘΔՁ஋͕௿͔ͬͨ • Kintone࣍ੈ୅ΞʔΩςΫνϟͱݺ͹ΕΔ΋ͷ͕͋Γɺٕज़ελοΫΛ߹Θͤͨ • Elasticsearch͸debύοέʔδΛఏڙ͍ͯͯ͠SRE͕ѻ͍΍͍͔ͬͨ͢ • Elasticsearch͸Ԙ௮͚໰୊ΛղܾͰ͖Δػߏ͕͏·͘Ͱ͖͍ͯͨ • ElasticsearchΛୈҰީิͱͯ͠ɺੑೳݕূΛߦͬͯΈͨ

Slide 32

Slide 32 text

ੑೳݕূͷ݁Ռ • چ SolrͱElasticsearchൺֱͰσΟεΫ༰ྔ40%ݮ • ੑೳݕূ࣌(2018/12)ʹ
 SolrͰ࠷େͷΠϯσοΫε༰ྔ͸2.8TB • ElasticsearchʹҠߦ͢Δͱ1.4TBʹͳΔ • Ψϧʔϯ͸ݕࡧੑೳ͕10ഒվળ • Ψϧʔϯ͸͜ͷλΠϛϯάͰσʔλߏ଄Λݟ௚͠ • ϝʔϧϫΠζɾkintone͸ྼԽͳ͠

Slide 33

Slide 33 text

Solr͔Β୤٫͢Δʹ͸ʁ • ղܾ͢Δ΂͖໰୊͸̏఺ • ΠϯσοΫε਺ͷ੍ݶΛͲ͏͢Δ͔ʁ • τʔΫφΠβͷޓ׵ੑΛͲ͏อ͔ͭʁ • ΠϯσοΫεͷ࠶࡞੒ΛͲ͏͢Δ͔ʁ

Slide 34

Slide 34 text

ΠϯσοΫε਺ͷ੍ݶ • Elasticsearchෆ҆ఆԽ໰୊Λௐࠪͯ࣍͠ͷΑ͏ʹ݁࿦ΛಘΔ • େن໛Ϋϥελߏ੒Ͱى͖Δ • େྔΠϯσοΫεɺγϟʔυ͕Ϋϥελ্ʹଘࡏ͍ͯ͠Δඞཁ͕͋Δ • ΠϯσοΫε࡞੒͑͞Ͱ͖Ε͹ͦͷޙ͸໰୊ͳ͘ӡ༻Ͱ͖Δ • Solrͱಉ͡ߏ੒ɺγϯϓϧͳΫϥελͰσϓϩΠ͢Ε͹໰୊ΛճආͰ͖Δ • ΫϥελΛෳࡶԽ͗͢͠ͳ͍ɾΠϯσοΫε਺Λ੍ݶͰ͖Δ • ͱ͍͏͜ͱͰʰSolrͱ΄΅ಉߏ੒ʱΛSREʹଧ਍ • SREతʹ΋Ϋϥελߏங޻਺͸ѹॖͰ͖Δɻӡ༻؀ڥͷमਖ਼΋͋Δఔ౓૝ఆ಺ʹऩ·Δɻ • ͜ΕͰΑ͠ͱ͍ͯ͠Δͷ͸Solrͷߏ੒ͱಉ౳ͷߏ੒ͱͳΔͨΊ

Slide 35

Slide 35 text

τʔΫφΠβͷޓ׵ੑ • Elasticsearch͸ΞφϥΠβͷ
 ϓϥάΠϯػߏ͕͋Γ૊ΈࠐΈ΍͍͢ • Solrͷݹ͍τʔΫφΠβΛϓϥάΠϯͱͯ͠
 Ҡ২͢Δͷ͸ݱ࣮తͩΖ͏͔ʁ • ޙํޓ׵ੑͷഁյΛೲಘͯ͠΋Β͏ͷʹ࣌ؒΛ
 ༹͔͢ͷͱτʔΫφΠβͷϝϯςφϯείετΛෛ͏ ͷ͸ͲͪΒ͕Ϛγʁ

Slide 36

Slide 36 text

ϓϥάΠϯ؅ཧίετ͸௿ͦ͏ • ϓϥάΠϯ͸Jarͱͯ͠෼཭Ͱ͖Δ • OSSʹύονΛ౰ͯͯ࠶Ϗϧυෆཁ • ίϚϯυϥΠϯͰ؆୯Πϯετʔϧ • όʔδϣϯΞοϓ࣌ʹ͸ϓϥάΠϯΛ࠶Ϗϧυ • ӡ༻؀ڥ͸debύοέʔδͰ഑෍͍ͯ͠ΔͷͰ
 Elasticsearch഑෍ͷdebύοέʔδΛमਖ਼ͯ͠
 ϓϥάΠϯΛόϯυϧ͍ͯ͠Δ

Slide 37

Slide 37 text

DockerfileͰ͔ΜͨΜ # Stage1: download custom plugin source from github FROM quay.io/cybozu/ubuntu-dev:20.04 AS plugin-source ARG CLASSIC_CJK_ANALYSIS_PLUGIN_VERSION="7.10.2" WORKDIR /work RUN git clone https://github.com/cybozu/classic-cjk-analysis-plugin.git -b "$ {CLASSIC_CJK_ANALYSIS_PLUGIN_VERSION}" . # Stage2: build plugin FROM amazoncorretto:11.0.8 AS plugin-build COPY --from=plugin-source /work /work WORKDIR /work RUN ./gradlew clean zipPlugin # Stage3: custom install FROM docker.elastic.co/elasticsearch/elasticsearch:7.10.2 COPY --from=plugin-build /work/build/dist/classic-cjk-analysis-plugin-0.0.1-es-7.10.2.zip /tmp/classic-cjk- analysis-plugin-0.0.1-es-7.10.2.zip RUN bin/elasticsearch-plugin install --batch file:///tmp/classic-cjk-analysis-plugin-0.0.1-es-7.10.2.zip

Slide 38

Slide 38 text

ΠϯσοΫε࠶࡞੒ͷ໰୊ • Building microservicesΛ
 ࢀߟʹҠߦҊΛݕ౼ • ϚΠΫϩαʔϏεͷݪଇΛ
 ҙࣝ͠ͳ͕ΒҠߦΛઃܭ͢Δ

Slide 39

Slide 39 text

ϞϊϦε͔ΒϚΠΫϩαʔϏε΁ • ҠߦʹಛԽͨ͠ϊ΢ϋ΢͕
 ٧·͍ͬͯΔͷͰ
 ͪ͜Β΋͓͢͢ΊͰ͢ • ϚΠΫϩαʔϏεʹݶΒͣ
 ಡΜͰ͓͘ͱࠔͬͨͱ͖ʹ
 ॿ͚ͯ͘ΕΔ͔΋͠Ε·ͤΜ

Slide 40

Slide 40 text

ઃܭͰॏཁࢹͨ͜͠ͱ • ա৒ͳ੹຿ͷ෼ׂ • ಺෦࣮૷ΛӅṭ͢Δ͜ͱ • αʔϏεॴ༗ऀ͕ओମతʹಈ͖΍͍͢ઃܭมߋ • ΧφϦΞϦϦʔε • ετϥϯάϥʔɾύλʔϯ

Slide 41

Slide 41 text

SREͷ੹຿ͷ෼ׂͱҠৡ • աڈͷ࠶ΠϯσοΫεͷ࣮૷͸ΞϓϦͷ
 ࣮૷ͷΧϓηϧԽ͕ద੾Ͱ͸ͳ͍ͱ͍͏໰୊ΛղऍΛͨ͠ • ϩδοΫ͸ॻ͖΍͍͢ͱ͜Ζʹूத͢Δ
 ܏޲͕͋ΔɻSREʹूத͍͗ͯͨ͢͠ɻ • Ϋϥ΢υͷᴈ໌ظʹ։ൃͨ͠࠶ΠϯσοΫεπʔϧͷ࣮૷͸
 ѻ͑Δσʔλྔɾෳࡶ͞Λ໌Β͔ʹ௒͑ͯɺ࢖͍෺ʹͳΒͳ͍ɻ • SRE͸ςφϯτ͝ͱͷ࠶ΠϯσοΫεΛ։࢝͢ΔλΠϛϯάͷ
 ίϯτϩʔϧʹूதͤ͞Δ(੹຿ͷ෼ׂͱҠৡ)

Slide 42

Slide 42 text

ϓϩμΫτ͕ओମతʹಈ͖΍͍͢ઃܭมߋ • SREͷίʔυʹϩδοΫ͕ूத͍ͯͨ͠ͷͰ
 ϓϩμΫτͰओମతʹઃܭมߋ͠ʹ͍͘ঢ়گ • ϓϩμΫτͷؔ৺͝ͱ͸ՄೳͳݶΓӅṭ͢Δ • ࢓༷Λक͍ͬͯΕ͹ଞͷνʔϜ͸ؔ஌͠ͳ͍ • ϓϩμΫτ͕ओମతʹઃܭมߋͰ͖ΔΑ͏ʹͳΔ • কདྷతͳվળ΋ߦ͍΍͘͢ͳΔ(…͸ͣ)

Slide 43

Slide 43 text

ΧφϦΞϦϦʔεΛ੝ΓࠐΉ • ໰୊͕͋ͬͨͱ͖ʹSolrʹ੾Γ໭ͤΔΑ͏ʹ • Solrʹ੾Γ໭ͤΔAPIΛϓϩμΫτʹ࣮૷ • Solr/ElastcisearchͷΠϯσοΫε
 ྆ํΛߋ৽͢Δฒߦӡ༻ظؒΛઃ͚Δ • ΤεέʔϓϧʔτΛ૊ΈࠐΜͰ͓͘ • 👉 ਓΛઆಘ͠΍͍͢

Slide 44

Slide 44 text

ετϥϯάϥʔύλʔϯ • Ҡߦύλʔϯͷ͏ͪͷҰͭ • ϨΨγʔͳίϯϙʔωϯτΛঃʑʹݮΒ͢ • ໰୊͕͋Ε͹ϨΨγʔʹ੾Γ໭͠ • νʔϜ͝ͱͷ޻਺΍࣮૷଎౓΋มΘΔ • ରԠ׬ྃͨ͠ϓϩμΫτ͔ΒΠϯσοΫε։࢝ • Ϋϩʔϧऴྃͨ͠؀ڥ͔ΒElasticsearch੾Γସ͑ • ϏοΫόϯϦϥΠτɾϏοΫόϯϦϦʔε͸Ͱ͖Δ͚ͩ͠ͳ͍

Slide 45

Slide 45 text

ҠߦΠϝʔδ • ϓϩμΫτ͝ͱʹ
 Solr͔ΒElasticsearchʹ
 Ҡߦ͍ͯ͘͠ • Fig1͸Kintoneฒߦӡ༻
 Fig2͸Ψϧʔϯฒߦӡ༻ • ※ݫີʹ͸ฏߦӡ༻ظؒ͸Φʔόϥοϓ

Slide 46

Slide 46 text

Ҡߦ༻ͷػೳΛAPIͱ࣮ͯ͠૷ • ͜͜·ͰΛߟ͑ΔͱϓϩμΫτAPIͰ࡞ͬͯ΋Βͬͨ΄͏͕ద੾ • SRE͸Ͱ͖Δ͔͗ΓAPIͷ࣮ߦʹపͯ͠΋Β͏ • Ϋϩʔϥʔͷ։࢝APIΛ࣮ߦ • ਐḿ֬ೝAPIΛ࣮ߦ • Elasticsearch/Solr੾Γସ͑APIΛ࣮ߦ • Ϋϩʔϧͷਐḿঢ়گΛ಺෦తʹ࣋ͯΔͷͰSREͷΦϖϨʔγϣϯͰ
 ࠶ΠϯσοΫε͕ഁغ͞ΕΔ͜ͱ΋ͳ͍

Slide 47

Slide 47 text

WebAPIͱ࣮ͯ͠૷ ϓϩμΫτνʔϜͱSREνʔϜ͕࡞ͬͨঢ়ଶભҠਤ

Slide 48

Slide 48 text

͔͜͜Β͸ҠߦৼΓฦΓ

Slide 49

Slide 49 text

Solr͔Βͷ׬શ୤٫ʹ੒ޭ • 2021೥6݄ͷఆظϝϯςφϯεؚΊͯ
 શϓϩμΫτͷαϙʔτظؒऴྃ • ͢΂ͯͷ؀ڥ͸Elasticsearchஔ͖׵͑׬ྃ • ϏόʔΫͷείʔϓɾ໨త͸ୡ੒Ͱ͖ͨ • ໋͔Β͕Β…ऴΘΓ·ͨ͠

Slide 50

Slide 50 text

Ҡߦͯ͠ੑೳ͸Ͳ͏Ͱ͔ͨ͠ʁ • ੑೳݕূͰಘΒΕͨ݁Ռ௨ΓͰتͼͷ੠௖͍͓ͯΓ·͢
 ※ Ψϧʔϯ͸σʔλߏ଄ͷվળͷӨڹ͕େ͖͍Ͱ͢

Slide 51

Slide 51 text

τʔΫφΠβͲ͏Ͱ͔ͨ͠ʁ • kintoneͷߜΓࠐΈͷมԽ͸΄΅ؾ͔ͮΕͳ͔ͬͨ(≒ޮՌ͸͹͙ͭΜͩʂ) • ඍົͳ࢓༷ࠩҟ͕͋ͬͨΓͨ͠ͷͰαϙʔτͷΈͳ͞Μͷਚྗʹײँ • ޓ׵ੑʹͯ͠ΫϦΞͰ͖͍ͯͨͷͰҙࢥܾఆ·Ͱͷ࣌ؒΛѹॖͰ͖ͨ • ϓϥάΠϯ΋΄΅ࣗಈԽ͍ͯ͠ΔͷͰίετ͸΄΅̌ • ϓϥάΠϯʹͳͬͨͷͰޓ׵ੑҡ࣋ͷ఺Ͱ͸Ұ҆৺ • ո͘͠΋͋Δ͕ɺΫϨόʔͳحࡦͱ͍͏͜ͱͰ͜͜͸ऩΊ͓͖ͯ·͢

Slide 52

Slide 52 text

࠶ΠϯσΫγϯάͲ͏Ͱ͔ͨ͠ʁ • ڊେσʔλ؀ڥͷҠߦʹ΋੒ޭ • ࠷ऴతʹSolrͷΠϯσοΫε͸4TBʹୡͨ͠ • ͋Δఔ౓ͷπϥϛ͸؇࿨Ͱ͖ͨͷͰ
 ੒ޭ·Ͱ͚͗ͭ͜ΒΕͨ • ϓϩμΫτνʔϜɾSREνʔϜʹ৽͍͠
 ेࣈՍΛഎෛΘͤͯ΋͍ΔͷͰ…೉͍͠

Slide 53

Slide 53 text

ΧφϦΞϦϦʔεͲ͏Ͱ͔ͨ͠ • 100%ݕࡧΤϥʔʹͳΔো֐͕͋ͬͨ • ElasticsearchͷαʔΩοτϒϨΠΧʔൃಈ • ͍ͬͨΜఘΊͯSolr΁੾Γ໭͠ • ݪҼΛղੳɾઃఆมߋɾ࣮૷มߋΛͯ҆͠ఆӡ༻ʹ͚͍͗ͭͯ͜Δ • ʰࣦഊ͸૝ఆ͓ͯ͘͠΂͖ʱɻͱͯ΋Αֶ͍ͼʹͳͬͨ • ࣦഊέʔε͸ݱ࣮ಀආ͕ͪ͠… • ࡉ͔͍έʔε͸ߟྀͰ͖ͳͯ͘΋ࣦഊ࣌ͷΤεέʔϓϧʔτΛ֬อ͓ͯ͜͠͏

Slide 54

Slide 54 text

ετϥϯάϥʔύλʔϯͲ͏Ͱ͔ͨ͠ • νʔϜʹΑͬͯ޻਺ɾ։ൃ଎౓͕มΘΔͷͰ
 ঃʑʹݮΒ͍ͯ͘͠ํ਑͸ͱͯ΋Α͔ͬͨ • Ҡߦϓϩηε͸ஸೡʹઃܭ͢Δඞཁ͕͋ͬͯ
 ϊ΢ϋ΢΋ଘࡏ͢Δྑֶ͍ͼʹͳͬͨ • ҠߦϓϩηεΛஸೡʹઃܭ͢Δͱ
 ͏·͍͘͘(͜ͱ΋͋ΔΒ͍͠)

Slide 55

Slide 55 text

࠷ޙʹ Neco΁

Slide 56

Slide 56 text

ϏόʔΫ͸׬ྃ • ϓϩδΣΫτ໊ͱঢ়گΛরΒ͠߹ΘͤΔͱ
 ۓٸආ೉͔Βখ߁ঢ়ଶ·Ͱ͍྇ͩঢ়ଶ • ঢ়گ͕ѱԽ͢ΔલʹNecoͷ্ʹߦ͖·͠ΐ͏ • NecoͷΞʔΩςΫνϟʹότϯλον • ࣌ؒΛ͔͙ͤɾϊ΢ϋ΢ΛಘΔʹ͸े෼͗͢Δ
 ϝϦοτ͕͋ͬͨ


Slide 57

Slide 57 text

·͞ʹ͜Ε͔ΒҠߦຊ൪ • ϏόʔΫͰ࠶ΠϯσοΫε΍
 ޓ׵ੑͷ໰୊͸ղܾͷ໨ॲ͕ͨͬͨ • ϏόʔΫͰ͏·͘΍Εͳ͔ͬͨ໰୊ɺ
 ΞʔΩςΫνϟతʹະ஌਺ͳ෦෼ͳͲ • ͦͷ͋ͨΓͷ࿩͸ɺҠߦޙ͕ऴΘͬͨΒɺ
 ࠓ౓͸ϦΞϧͰଓ͖ͷ࿩Λ͠·͠ΐ͏

Slide 58

Slide 58 text

We’re Hiring! • Kubernetes։ൃΛߦ͏Neco͕ਓؾͰ͕͢ • Kubernetes্ʹҠߦ͍ͯ͘͠
 ManekiνʔϜ΋͋Γ·͢ • ॾखΛڍ͛ͯק༠͸͠ʹ͍͘Ͱ͕͢ڵຯ͕͋Ε͹ɺԠื͓଴͓ͪͯ͠Γ·͢