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
Hiroki Sakamoto
May 12, 2018
Technology
6
3.2k
検索基盤を安全に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
39
年間一億円削減した時系列データベースのアーキテクチャ改善
taisho6339
0
20
k8sで構築する大規模時系列データのスケーラブルな分散処理
taisho6339
0
14
Ingress For Anthosを活用した安全なk8sクラスタ運用/Ingress For Anthos In Production
taisho6339
2
1.1k
k8sの可用性とScalabilityを担保するための大事な観点 / Best practices for ensuring availability and scalability for k8s
taisho6339
3
2.2k
Other Decks in Technology
See All in Technology
ビギナーであり続ける/beginning
ikuodanaka
3
730
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
3
390
SmartNewsにおける 1000+ノード規模 K8s基盤 でのコスト最適化 – Spot・Gravitonの大規模導入への挑戦
vsanna2
0
120
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
27
9.4k
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
7
970
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
2
7k
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
340
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
450
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
3
12k
Tokyo_reInforce_2025_recap_iam_access_analyzer
hiashisan
0
180
怖くない!はじめてのClaude Code
shinya337
0
380
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
25
1.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Practical Orchestrator
shlominoach
189
11k
Six Lessons from altMBA
skipperchong
28
3.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
960
Code Review Best Practice
trishagee
69
18k
BBQ
matthewcrist
89
9.7k
Why Our Code Smells
bkeepers
PRO
336
57k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Done Done
chrislema
184
16k
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ͷ׆༻Ͱ͙͢ʹϑΥʔϧόοΫ