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
DevOpsDays Tokyo
Search
Genki Sato
April 10, 2019
Technology
2.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevOpsDays Tokyo
Genki Sato
April 10, 2019
More Decks by Genki Sato
See All by Genki Sato
SRE meetup 20190522
genkist
0
1.7k
レガシーシステムの再構築。システム設計からプロジェクト運用まで赤裸々に
genkist
0
2.2k
Other Decks in Technology
See All in Technology
FDEの心得
noriakioji
5
6k
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
200
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.7k
ラジオの科学
frievea
0
320
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
110
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.3k
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
9
2.8k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
250
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
580
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
790
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Documentation Writing (for coders)
carmenintech
77
5.4k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
770
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
480
Site-Speed That Sticks
csswizardry
13
1.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
860
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
940
Producing Creativity
orderedlist
PRO
348
40k
Transcript
%FW0QT%BZT5PLZP ։ൃޮΛ࠷େԽ͢Δ σϓϩΠϝϯτύΠϓϥΠϯ
%FW0QT%BZT5PLZP !2 ࠤ౻ݯلʢ͞ͱ͏͛Μ͖ʣʗιϑτΤΞΤϯδχΞʗ:BQQMJ5FDI-FBE w݄ϝΨϕϯνϟʔήʔϜ։ൃ w ϒϥβܕιʔγϟϧήʔϜ։ൃ w݄ϝΨϕϯνϟʔΠϯϑϥ෦ w %#ج൫ɾήʔϜࣄۀج൫ w
Τϯλϝࣄۀج൫ɾϔϧεέΞ&$ࣄۀج൫ w݄'JOUFDIܥελʔτΞοϓ w ΥϨοτΞϓϦ։ൃɾӡ༻ w݄:BQQMJ w :BQQMJϓϥοτϑΥʔϜͷ։ൃɾӡ༻
ΞϓϦͷςΫϊϩδʔΛ։์͠ɺ ੈͷதΛͬͱศརͰշదʹɻ
Services :BQQMJैདྷͷΞϓϦࢢΛσΟεϥϓτ͢ ΔɺΞϓϦͷςΫϊϩδʔΛ։์͢Δελʔτ ΞοϓͰ͢ɻ ɹϓϩάϥϛϯάෆཁͰΞϓϦ։ൃɻٕज़ऀ ཁΒͣͰഒͷ։ൃΛ࣮ݱɻ ɹ͠Έ͍͢ײత6*ͷཧը໘͔Βɺ ୭Ͱ؆୯ʹΞϓϦΛӡ༻ཧ Mobile Technology
for ALL ʢ৽ଔ࠾༻͚ʣ ʢൢଅ͚ʣ ʢֶߍ๏ਓ͚ʣ ʢۀࢪઃ͚ʣ ۀछΛΘͳ͍ϗϦκϯλϧSaaSͱͯ͠ϓϥοτϑΥʔϜΛఏڙ
280݅ 2,800ສ 99 ಋೖ݅ ྦྷܭΞϓϦDL αʔϏεܧଓ
ച্ߴT2D3ͷਪҠͰٸத ɿT2D3ϢχίʔϯͷSaaSاۀʹ͓͍ͯٻΊΒΕΔͷུশ 3ഒͷΛ2ɺ2ഒͷΛ3ɺTriple x 2ɺDouble x 3ͱͯ͠T2D3ͱݺΕΔ
%FW0QT%BZT5PLZP αʔϏεɾձࣾͷ֦େʹ߹Θͤͯ ։ൃϑϩʔͷݟ͠ΛॏͶ͖ͯ·ͨ͠ !7
%FW0QT%BZT5PLZP ຊ:BQQMJʹ͓͚Δ։ൃͷྲྀΕͱ σϦόϦʔߴԽͷऔΓΈʹ͍ͭͯ ͓͠͠·͢ !8
%FW0QT%BZT5PLZP ։ൃ։͔࢝Βɿ νʔϜ։ൃظؒɿ !9
%FW0QT%BZT5PLZP ٕज़తෛ࠴ͱͷઓ͍ !10
%FW0QT%BZT5PLZP σϦόϦʔαΠΫϧʹ ࣮֬ʹڹ͍ͯ͘Δ !11
%FW0QT%BZT5PLZP w ઃܭ্ɺ*%&ͷԸܙΛड͚ʹ͍͘ w ʢαʔόαΠυΞϓϦέʔγϣϯ1)1ϕʔεʣ w ϑϨʔϜϫʔΫΛΘͣɺࣗલͷJODMVEF͕هड़͞Ε͍ͯΔ෦͕ଟ͍ w ίʔυิɾίʔυδϟϯϓ͕ޮ͔ͳ͔ͬͨΓ w
ςετίʔυ͕લఏͱ͞Ε͍ͯͳ͍ w %*͕Ͱ͖ͳ͍ w ςετΧόϨοδ !12
%FW0QT%BZT5PLZP w ΤϥʔͰϩά͕ग़ͳ͍ w ʰࠞͥΔͳةݥʱͳػೳͷෆ۩߹ΛੜΈ͍͢ w ྫɿʮྡͰͦΜͳมߋ͕͞Ε͍ͯͨͱࢥ͍ΑΒͳ͔ͬͨɻʯ w ʰϐλΰϥεΠονʱͳෆ۩߹ΛੜΈ͍͢ w
ྫɿʮ͜ͷϩδοΫ͕ͦΜͳͱ͜ΖʹӨڹΛٴ΅͢ͱࢥ͍ΑΒͳ ͔ͬͨɻʯ w ϦΧόϦతͷύον͕৽ͨͳෆ۩߹ΛੜΉ͜ͱ !13
%FW0QT%BZT5PLZP ͜͜·ͰࣄۀΛͤͯ͘͞Εͨ͜ͱʹ ײँͭͭ͠ !14
%FW0QT%BZT5PLZP ࠶ߏஙʢશϦϓϨΠεʣΛ ͢͢Ί͍ͯ·͢ !15
%FW0QT%BZT5PLZP w 1)1 K2VFSZ͔Β(PMBOH /VYUKTͷ࠶࣮ w 6*ͷΞοϓσʔτʹ͋Θͤͯશ໘৽ w طଘγεςϜͷলΛ׆͔ͯ͠νʔϜͷεέʔϧʹͰ͖Δ͚ͩൺྫͯ͠։ ൃεϐʔυ্͕͢ΔΞʔΩςΫνϟΛࢦͨ͠
!16
%FW0QT%BZT5PLZP ՆʹϓϩδΣΫτΩοΫΦϑ ݄ʹୈҰແࣄϦϦʔεʂ !17
%FW0QT%BZT5PLZP ͏·͍ͬͨ͘ϙΠϯτ !18
%FW0QT%BZT5PLZP w શ໘৽ϓϩδΣΫτೋճͰҰճͷࣦഊΛ׆͔ͤͨ w ػೳՃΛ͠ͳ͍͜ͱʹ͍ͯͨͨ͠Ίɺ։ൃɾݕূ࣌ʹ໎͍͕গͳ͔ͬͨ w ͍͍ͭͭʮ͜ΕΛػʹʯͱػೳՃ͕ͪ͠ͳͱ͜ΖΛͬͨ w ҰճͷࣦഊΛձࣾશମͰड͚ࢭΊΒΕ͍ͯͨͷͰ߹ҙಘ͔ͬͨ͢ !19
%FW0QT%BZT5PLZP w ઃܭஈ֊͔ΒΤϯδχΞશһͰษڧͭͭ͠ɺίϯηϯαεΛऔΓͳ͕Β ਐΊͨ w બఆج४͋͑ͯநతʹ w ৫ͷ֦େʹ͍͍͚ͭͯͦ͏ͳͷ w ؆୯͗ͣ͗͢͢͠ͳ͍ɺ΄ͲΑ͍қ
w ͭ͗ʹདྷΔٕज़తτϨϯυʹ͍͍͚ͭͯͦ͏ͳͷ w %%%ษڧձɺઃܭ૬ஊɾڞ༗ձɺίʔυϨϏϡʔ !20
%FW0QT%BZT5PLZP w νʔϜશһͰूதͯ͠ϓϩδΣΫτʹऔΓΊΔମ੍Λ࡞Εͨ w ৽نػೳ։ൃΛҰ࣌తʹࢭΊͨ w ϓϩδΣΫτҎ֎ͷ͜ͱΛूதͯ͠औΓΉΛ໌ࣔతʹઃ͚ͨ͜ͱͰ ϏδωεαΠυͷཧղΛಘ͔ͬͨ͢ !21
%FW0QT%BZT5PLZP !22 w ೋिؒʹҰɺϝΠϯͷϓϩδΣΫ τҎ֎ͷλεΫ͔͠Βͳ͍ w খنͳΧΠθϯҊ݅ܰඍͳෆ۩ ߹ͷमਖ਼ͳͲϓϩδΣΫτʹΘΕ ͯීஈͰ͖ͳ͍ۀΛਪਐ͢Δ w
ϏδωεαΠυ͔Βධ w ৄࡉʮ:BQQEBUFEBZʯͰݕࡧ
%FW0QT%BZT5PLZP ͏গ͠ৄ͍͠ ͪ͜ΒΛ͝ཡ͍ͩ͘͞ !23 https://speakerdeck.com/genkist
%FW0QT%BZT5PLZP ։ൃαΠΫϧ !24
%FW0QT%BZT5PLZP !25
%FW0QT%BZT5PLZP ʲ։ൃαΠΫϧʢʣʳ ԿΛ࡞Δ͔ !26
%FW0QT%BZT5PLZP w ։ൃϓϩδΣΫτͷೖΓޱ w ैۀһىҊͷͷ w 4MBDL্Ͱެื͞ΕͨҊ݅ w ࣄۀઓུϕʔεͷͷ w
͍ΘΏΔτοϓμϯ w ։ൃɾӡ༻ϕʔεͷͷ w γεςϜϦϓϨΠεɺӡ༻վળͳͲ !27
%FW0QT%BZT5PLZP ӦۀɾΧελϚʔαΫηεɾ੍࡞ͳͲ ϓϩμΫτʹؔΘ͍ͬͯΔ ଟ෦Ͱ༏ઌΛܾٞͯ͠ΊΔ !28
%FW0QT%BZT5PLZP ʲ։ൃαΠΫϧʢʣʳ Ͳ͏࡞Δ͔ !29
%FW0QT%BZT5PLZP w ͬ͘͟Γཁ͕͖݅·ͬͨΒ։ൃΛελʔτ w ࡉ͔͍6*69࡞Γͳ͕Β૬ஊͭͭ͠٧Ί͍ͯ͘ !30
%FW0QT%BZT5PLZP "1*ઃܭ !31
%FW0QT%BZT5PLZP w 1SPUPDPM#VGGFSTΛ࠾༻͍ͯ͠ΔͨΊ"1*ͷϨϏϡʔΛ࣮ʹઌߦ͠ ࣮ͯࢪͰ͖Δ w ༷ͷ֬ೝͱซ࣮ͤͯࢪ͢Δ͜ͱʹͳΔͨΊɺޮత w VCFSQSPUPUPPMʹΑΔνΣοΫɺϑΥʔϚοτΛߦ͏͜ͱͰ13 ݟ͍͢ w
)5.-υΩϡϝϯτͷు͖ग़͠ߦ͍ͬͯΔ͕*%-ͱͯ͠༏लͳͷͰ QSPUPϑΝΠϧΛݟΔ͜ͱ͕ଟ͍ !32
%FW0QT%BZT5PLZP ࣮ !33
%FW0QT%BZT5PLZP w -JOUνΣοΫ w ػցతʹෆ۩߹ͷԹচͱͳΔͷΛ͙ w ϑΥʔϚολͱΈ߹ΘͤͯϨϏϡʔޮVQ w -JOUͰΧόʔͰ͖ͳ͍෦໋໊نଇΛͭͬͯ͘υΩϡϝϯτԽ͍ͯ͠ Δʢ͙͢ಡΊΔαΠζʹΩʔϓ͢Δͷେࣄʣ
!34
%FW0QT%BZT5PLZP w ୯ମςετ w ࠷খ୯ҐͰԿΛ͢Δؔͳͷ͔ΛѲͰ͖ΔΑ͏ʹ w ݁߹ςετ w தنɾେنͳϦϑΝΫλϦϯάΛߦ͏ࡍͷσάϨνΣοΫʹ༗༻ w
ϒϥοΫϘοΫεςετͱ࣮ͯ͠ࢪ !35
%FW0QT%BZT5PLZP w 1VMM3FRVFTUʹ֤छνΣοΫΛ࿈ಈͤ͞ɺύε͠ͳ͍ͱϚʔδ͕Ͱ͖ͳ ͍ w ݸਓͰ։ൃɾճऩ͢ΔͷGPSLͨ͠ϦϙδτϦͰ࡞ۀ͢Δ͜ͱͰςε τ௨ΛͰ͖Δ w ݸਓPSHʹGPSLͨ͠ϦϙδτϦͷςετຊਓʹ͔͠௨͕͍͔ͳ͍ w
ϓϩδΣΫτͰڞ༗͍ͯ͠Δϒϥϯνͷςετશମ௨ !36
%FW0QT%BZT5PLZP νΣοΫϙΠϯτͷ͕૿͑Δ͜ͱͰ Өڹൣғ͕͕Δલʹؾ͚ͮΔ !37
main with SQLite SQLite wrappter app envoy CMS app Client
˞؆ུԽͨ͠ߏਤͰ͢ -JOU #VJME (JU1VTI -JOU 5FTU #VJME %FQMPZ -JOU 5FTU #VJME %FQMPZ -JOU 5FTU #VJME %FQMPZ QSPUPCVG DNT BQQ TRMJUFXSBQ
%FW0QT%BZT5PLZP ʲ։ൃαΠΫϧʢʣʳ Ͳ͏࣭Λ୲อ͢Δ͔ !39
%FW0QT%BZT5PLZP w جຊతͳϦϦʔεαΠΫϧि࣍ w ։ൃظؒنʹΑͬͯʙϲ݄·Ͱ༷ʑ w 2"ʹΑΔݕূεςοϓ w ʮ୯ମݕূʯɿҊ݅͝ͱʹߦ͏ݕূ w
ʮશମݕূʢि࣍ݕূʣʯɿϦϦʔε༧ఆͷͷ͚ͩͰͳͦ͘ͷଞશػ ೳΛཏతʹݟΔ !40
%FW0QT%BZT5PLZP શମݕূͷϝϦοτ !41
%FW0QT%BZT5PLZP w ʰࠞͥΔͳةݥʱͳෆ۩߹Λ୳͍͢͠ w ʰϐλΰϥεΠονʱͳෆ۩߹Λ୳͍͢͠ w ୯Ұػೳ͝ͱʹશମݕূΛߦ͏߹ͱൺֱͯ͠ΛݮͰ͖Δ w ि࣍ϦϦʔεͱ͢Δ͜ͱͰސ٬ͷΞοϓσʔτҊ͕ߦ͍͍͢ !42
%FW0QT%BZT5PLZP ݕূڥΛؚΊͨ σϓϩΠࣗಈԽ !43
%FW0QT%BZT5PLZP w ຊ൪ڥҎ֎ʹि࣍2"ݕূΛߦ͏εςʔδϯάڥɺ୯ମݕূΛߦ͏ݸ ผݕূڥʢηοτఔʣ͕͋Δ w ͯ͢ΛίϚϯυϕʔεͷख࡞ۀͰߦ͏ͷࠎ w ୯ମݕূڥͷσϓϩΠຊ൪ڥεςʔδϯάڥͱಉ༷ʹಛఆϒ ϥϯνͷQVTIΛτϦΨʔʹσϓϩΠΛߦ͏ w
γεςϜߏɺσϓϩΠϩδοΫຊ൪ͱಉͳͷͰߏσϓϩΠͷม ߋ࣌ʹͷݕূʹͳΔ !44
%FW0QT%BZT5PLZP !45 ڥ ϒϥϯν ຊ൪ QSPEVDUJPO εςʔδϯά NBTUFS QGEFWSFWJFX EFQMPZQGEFWSFWJFX
QGEFWSFWJFX EFQMPZQGEFWSFWJFX QGEFWSFWJFX9 EFQMPZQGEFWSFWJFX9
%FW0QT%BZT5PLZP ։ൃαΠΫϧʢʣ ϦϦʔε !46
%FW0QT%BZT5PLZP w σϓϩΠؚΊͯجຊతʹݕূࡁΈ w ҆৺҆શʢࣾൺʣ !47
%FW0QT%BZT5PLZP ։ൃαΠΫϧʢʣ Πϯϑϥߏཧ !48
%FW0QT%BZT5PLZP w 5FSSBGPSNΛར༻͍ͯ͠Δ w جຊతʹ*".ͳͲΛؚΊͨॳظߏஙΛओ؟ʹஔ͍͍ͯΔ w ʑͷӡ༻ͷதͰมߋ͕ݟࠐ·ΕΔͷΞϓϦͷϦϙδτϦʹಉࠝ w ྫɿ&$4ͷλεΫఆٛɺFOWPZZBNMɺ%PDLFSpMFͳͲ w
σϓϩΠ্ͷ߹͋Δ͕ɺΠϯϑϥ໘ͷมߋΞϓϦέʔγϣϯίʔυ ͱಉ༷ͷϑϩʔʹࡌͤΒΕΔϝϦοτେ͖͍ !49
%FW0QT%BZT5PLZP ։ൃαΠΫϧʢʣ ܭଌɾࢹ !50
%FW0QT%BZT5PLZP w ސ٬͔ΒͷϑΟʔυόοΫΧελϚʔαΫηε෦ܦ༝ w ΤϯυϢʔβ͔ΒͷϑΟʔυόοΫετΞϨϏϡʔ͕جຊ w &&ςετ w ຊ൪ڥʹରͯ͠ఆظతʹ࣮ΛͬͨςετΛ࣮ࢪ w
γεςϜϦιʔεɺϩάࢹ w %BUBEPH "1. Λར༻ !51
%FW0QT%BZT5PLZP ·ͱΊ !52
%FW0QT%BZT5PLZP w ӡ༻͖ͯͨ͠αʔϏεͷ։ൃͷྲྀΕɺऔΓΈΛ͝հ͠·ͨ͠ w ٕज़తෛ࠴ʹର͢ΔऔΓΈ w ىҊ͔Βܭଌ·ͰͷྲྀΕ w ͲͷΑ͏ʹͯ͠σϦόϦʔαΠΫϧߴԽΛ࣮͍ͯ͠Δ͔ !53
ҰॹʹΈɺ᛭ୖຏͯ͘͠ΕΔ ؒΛืू͍ͯ͠·͢ʂ 5IBOLZPV