Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
検索基盤を安全にElasticsearchに置き換えるためにやったこと
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hiroki Sakamoto
May 12, 2018
Technology
6
3.3k
検索基盤を安全にElasticsearchに置き換えるためにやったこと
Feature Toggleとダークローンチで安全にElasticsearchクラスタをリリースした話。
Hiroki Sakamoto
May 12, 2018
Tweet
Share
More Decks by Hiroki Sakamoto
See All by Hiroki Sakamoto
Scaling Time-Series Data to Infinity: A Kubernetes-Powered Solution with Envoy
taisho6339
0
66
年間一億円削減した時系列データベースのアーキテクチャ改善
taisho6339
0
43
k8sで構築する大規模時系列データのスケーラブルな分散処理
taisho6339
0
35
Ingress For Anthosを活用した安全なk8sクラスタ運用/Ingress For Anthos In Production
taisho6339
2
1.2k
k8sの可用性とScalabilityを担保するための大事な観点 / Best practices for ensuring availability and scalability for k8s
taisho6339
3
2.3k
Other Decks in Technology
See All in Technology
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.1k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.8k
タスク管理も1on1も、もう「管理」じゃない ― KiroとBedrock AgentCoreで変わった"判断の仕事"
yusukeshimizu
4
1.4k
AWSをCLIで理解したい! / I want to understand AWS using the CLI
mel_27
2
150
トップマネジメントとコンピテンシーから考えるエンジニアリングマネジメント
zigorou
4
720
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
420
IBM Bobを使って、PostgreSQLのToDoアプリをDb2へ変換してみよう/202603_Dojo_Bob
mayumihirano
0
200
「ヒットする」+「近い」を同時にかなえるスマートサジェストの作り方.pdf
nakasho
0
140
組織のSREを推進するためのPlatform EngineeringとEKS / Platform Engineering and EKS to drive SRE in your organization
chmikata
0
190
8万デプロイ
iwamot
PRO
2
180
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
290
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
250
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
75
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
150
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
KATA
mclloyd
PRO
35
15k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
500
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Facilitating Awesome Meetings
lara
57
6.8k
Transcript
Hiroki Sakamoto @taisho6339 ݕࡧج൫Λ҆શʹ Elasticsearchʹஔ͖͑ΔͨΊʹͬͨ͜ͱ
ຊࢿྉͰऔΓ্͛Δ༰ DBݕࡧ͔ΒElasticsearchʹ҆શʹஔ͖͑Δͱ͖ʹɺ μʔΫϩʔϯνFeatureToggleΛ׆༻ͯ҆͠શʹϦϦʔεͨ͠ݟ https://www.elastic.co/jp/
ຊࢿྉͰड़ͳ͍͜ͱ • ESͷجૅతͳ෦ • ESͷΠϯσοΫεɺΫϥελઃܭ • ΠϯσΫγϯάݕࡧͷࡉ͔͍࣮ʹ͍ͭͯ • Feature Toggleͷ۩ମతͳ࣮ʹ͍ͭͯ
࣮ࢪͨ͠αʔϏεཁ݅ • Ϣʔβ100ສਓҎఔͷձһ੍SNSαʔϏε • Ϣʔβͷݕࡧػೳ͕͋Δ • ଐੑ(ੑผɺྸɺझຯͳͲ)ΛݩʹύϥϝʔλͰݕࡧ • MySQLαʔόSELECTจΛൃߦ͢Δ͜ͱͰݕࡧΛ࣮ݱ •
ϑϦʔϫʔυݕࡧͳͲͳ͍
αʔϏεͷ՝ײ ݕࡧύϥϝʔλछྨఔࢦఆͰ͖ɺ શͯͷύϥϝʔλʹΠϯσοΫε͕ޮ͘Θ͚Ͱͳ͍ ςʔϒϧϑϧεΩϟϯ͕සൃ αʔόͰεέʔϧͰ͖ͳ͍
αʔϏεͷ՝ײ ύϑΥʔϚϯεΛग़͠ɺ͔ͭαʔϏεͷʹ߹Θͤͯ εέʔϧͤ͞ΒΕΔج൫͕ඞཁͩͬͨ
ElasticsearchΫϥελͷߏங
ΞʔΩςΫνϟ master data ࢹཧ ΞϓϦέʔγϣϯαʔό ݕࡧ όοναʔό ΠϯσΫγϯά
ΞʔΩςΫνϟ • ϕʔγοΫͳESΫϥελ • masterԽ & εϓϦοτϒϨΠϯରࡦͰ3 • dataԽ͢Δ࠷খ୯ҐͰ2 •
ΞϓϦέʔγϣϯαʔό͔Βdataϊʔυʹରͯ͠ݕࡧ • ΠϯσΫγϯάόονͰఆظతʹߦ͏(χΞϦΞϧλΠϜ) • ߋ৽ରΩϡʔΠϯά
ϦϦʔεʹ͏՝ײ ݕࡧ݁Ռଥੑͷ୲อ Կ͔͋ͬͨͱ͖ͷ &4ো࣌ͷݕࡧͲ͏ͳΔͷ͔ʁ
ϦϦʔεʹ͏՝ײ ݕࡧ݁Ռଥੑͷ୲อ &4ো࣌ͷݕࡧͲ͏ͳΔͷ͔ʁ ଧͪख μʔΫϩʔϯν
μʔΫϩʔϯν ʮμʔΫ ϩʔϯνͱԿ͔ : CRE ͕ݱͰֶΜͩ͜ͱʯ https://cloudplatform-jp.googleblog.com/2017/08/CRE-life-lessons- what-is-a-dark-launch-and-what-does-it-do-for-me.html
μʔΫϩʔϯν ΞϓϦέʔγϣϯαʔό MySQL ྆ํʹݕࡧཁٻ
μʔΫϩʔϯν ΞϓϦέʔγϣϯαʔό MySQL ݕࡧ݁ՌΛൺֱ
μʔΫϩʔϯν ΞϓϦέʔγϣϯαʔό MySQL ҰఆҎ্ͷࠩҟ͕͋Δͱ͖ʹ ूܭ༻ʹϩάΛు͘
μʔΫϩʔϯν ΞϓϦέʔγϣϯαʔό MySQL ࣮ࡍʹฦ͢ͷDBͷ݁Ռ Ϩεϙϯε
μʔΫϩʔϯν ϩάूܭݕূ σϓϩΠ վम ζϨ͕ڐ༰ΛΔ·Ͱ վળαΠΫϧΛ܁Γฦͨ͠
ϦϦʔεʹ͏՝ײ &4ো࣌ͷݕࡧͲ͏ͳΔͷ͔ʁ &4ো࣌ͷݕࡧͲ͏ͳΔͷ͔ʁ ଧͪख Feature Toggleͷ׆༻
Feature Toggle • σϓϩΠແ͠ͰಈతʹػೳͷON/OFFΛ͢ΔͨΊͷ֓೦ɻ • ༗໊ͳ࣮ϥΠϒϥϦͩͱJavaͷFF4JͳͲ͕͋Δɻ • ୯७ͳON/OFF͚ͩͰͳ͘ɺಛఆͷ݅ͷϢʔβʹ௨ৗͱҧ ͏ͷΛग़͚ͨ͠Γ͢Δ͜ͱ͕Ͱ͖Δ •
FeatureToggles https://martinfowler.com/articles/feature-toggles.html#OpsToggles
Feature Toggle ࣮Πϝʔδ if( isEnableFeature(“FEATURE_ES_SEARCH”) ) { // ElasticsearchͰͷݕࡧ }
else { // DBͰͷݕࡧ } ͜ͷΑ͏ͳ࣮Λ͓ͯ͘͠ͱɺ ཧը໘͔ΒಈతʹϑϥάΛOFFʹͰ͖Δ
Feature Toggle ࣮Πϝʔδ ग़య: http://ff4j.org/ ͜͜ͷON/OFFͰϑϥά͕มΘΔ!
Feature Toggleͷ׆༻ ΞϓϦέʔγϣϯαʔό MySQL Toggle͕ON
Feature Toggleͷ׆༻ ΞϓϦέʔγϣϯαʔό MySQL Toggle͕OFF Toggle͕OFFͷͱ͖DBͰݕࡧͤ͞Δ
Feature Toggleͷ׆༻ data ΞϓϦέʔγϣϯαʔό ݕࡧ όοναʔό ΠϯσΫγϯά Τϥʔൃੜʂ Τϥʔൃੜʂ ElasticsearchͰΠϯσΫγϯάɺ͘͠ݕࡧͰɺ
Τϥʔ͕ҰఆҎ্ग़ͨ߹ࣗಈతʹToggleΛOFFʹ͢Δ
Feature Toggle ཧը໘͔ΒͷखಈΓସ͑ɺESΤϥʔݕग़࣌ͷࣗಈΓସ͑ʹ ΑͬͯɺσϓϩΠແ͠ͰDBݕࡧϑΥʔϧόοΫ Կ͔͋ͬͨͱͯ͠ϢʔβͷӨڹΛ࠷খݶʹ
݁Ռ • ϦϦʔεޙ2ϲ݄ܦա͍ͯ͠Δ͕োൃੜ0݅ɻ • (ϨεϙϯελΠϜ28ഒվળ)
·ͱΊ • Լهͷγϯϓϧͳ͕Βڧྗͳߟ͑ํͰো0ͰϦϦʔε • μʔΫϩʔϯνͰຊ൪ڥͷτϥϑΟοΫͰ݁ՌݕূΛߦͬͨ • Feature Toggleͷ׆༻Ͱ͙͢ʹϑΥʔϧόοΫ