Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
検索基盤を安全にElasticsearchに置き換えるためにやったこと
Search
Hiroki Sakamoto
May 12, 2018
Technology
3.4k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
検索基盤を安全にElasticsearchに置き換えるためにやったこと
Feature Toggleとダークローンチで安全にElasticsearchクラスタをリリースした話。
Hiroki Sakamoto
May 12, 2018
More Decks by Hiroki Sakamoto
See All by Hiroki Sakamoto
Scaling Time-Series Data to Infinity: A Kubernetes-Powered Solution with Envoy
taisho6339
0
78
年間一億円削減した時系列データベースのアーキテクチャ改善
taisho6339
0
64
k8sで構築する大規模時系列データのスケーラブルな分散処理
taisho6339
0
48
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.4k
Other Decks in Technology
See All in Technology
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
0
360
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
170
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
150
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
3
3.3k
予測不能な実行エージェントを安全にサクッと試せるサンドボックス環境の話
sansantech
PRO
0
130
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
490
購入ドメインでの課題と取り組み
ykagano
0
150
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
230
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
100
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
140
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
210
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
390
エンジニアに許された特別な時間の終わり
watany
109
250k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
WCS-LA-2024
lcolladotor
0
850
Google's AI Overviews - The New Search
badams
0
1.6k
How to Talk to Developers About Accessibility
jct
2
560
GitHub's CSS Performance
jonrohan
1033
470k
Optimising Largest Contentful Paint
csswizardry
37
4k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
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ͷ׆༻Ͱ͙͢ʹϑΥʔϧόοΫ