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
2.4k
DevOpsDays Tokyo
Genki Sato
April 10, 2019
Tweet
Share
More Decks by Genki Sato
See All by Genki Sato
SRE meetup 20190522
genkist
0
1.3k
レガシーシステムの再構築。システム設計からプロジェクト運用まで赤裸々に
genkist
0
1.8k
Other Decks in Technology
See All in Technology
生成AI時代 文字コードを学ぶ意義を見出せるか?
hrsued
1
730
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
140
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
170
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
1
380
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
4
1.5k
OPENLOGI Company Profile for engineer
hr01
1
33k
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
240
Github Copilot エージェントモードで試してみた
ochtum
0
130
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
200
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
390
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
150
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
GitHub's CSS Performance
jonrohan
1031
460k
Building Adaptive Systems
keathley
43
2.6k
Practical Orchestrator
shlominoach
188
11k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
How to Ace a Technical Interview
jacobian
277
23k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The World Runs on Bad Software
bkeepers
PRO
69
11k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
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