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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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.5k
レガシーシステムの再構築。システム設計からプロジェクト運用まで赤裸々に
genkist
0
2k
Other Decks in Technology
See All in Technology
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.2k
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
600
Webhook best practices for rock solid and resilient deployments
glaforge
1
270
Agile Leadership Summit Keynote 2026
m_seki
1
480
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
200
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
180
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
870
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
200
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.6k
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
Featured
See All Featured
Done Done
chrislema
186
16k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
Scaling GitHub
holman
464
140k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
GraphQLとの向き合い方2022年版
quramy
50
14k
Building Applications with DynamoDB
mza
96
6.9k
Speed Design
sergeychernyshev
33
1.5k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Exploring anti-patterns in Rails
aemeredith
2
250
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