Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2019年だからこそ12factor app/The Twelve-Factor app in...
Search
petitviolet
January 09, 2019
Programming
1
1k
2019年だからこそ12factor app/The Twelve-Factor app in 2019
社内勉強会での発表資料
https://12factor.net/ja/
petitviolet
January 09, 2019
Tweet
Share
More Decks by petitviolet
See All by petitviolet
Stripeで請求書払い&銀行振込を実装する
petitviolet
1
1.6k
ピュアなドメインを支える技術/pure domain model and the technology behind it
petitviolet
14
10k
小さく始めるクラウドネイティブ/small start CloudNative
petitviolet
0
2k
実践GraphQL on Scala/Real world GraphQL on Scala
petitviolet
8
3.2k
Kubernetesを知る/Introduction Kubernertes
petitviolet
1
660
GraphQL on Scala
petitviolet
3
2.7k
Microservices Batch on GAE
petitviolet
0
2k
Web API Design
petitviolet
18
8.5k
Property Based Testing introduction
petitviolet
1
140
Other Decks in Programming
See All in Programming
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
120
Web エンジニアが JavaScript で AI Agent を作る / JSConf JP 2025 sponsor session
izumin5210
4
2.1k
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
290
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
AI時代もSEOを頑張っている話
shirahama_x
0
210
CSC305 Lecture 15
javiergs
PRO
0
220
CSC305 Lecture 17
javiergs
PRO
0
220
Microservices rules: What good looks like
cer
PRO
0
280
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
160
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
250
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
24
20k
JJUG CCC 2025 Fall Javaコミュニティの歩き方 〜参加から貢献まで、すべて教えます〜
takasyou
0
520
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Code Review Best Practice
trishagee
73
19k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
690
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Become a Pro
speakerdeck
PRO
30
5.7k
Building Adaptive Systems
keathley
44
2.8k
Documentation Writing (for coders)
carmenintech
76
5.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
͔ͩΒͦ͜GBDUPSBQQ 'SJOHF৽ձ !QFUJUWJPMFU
None
GBDUPSBQQ w ʮ5IF5XFMWF'BDUPS"QQʯ w IUUQTGBDUPSOFU w )FSPLVͷਓ͕ॻ͍ͨจॻ w 8FCΞϓϦέʔγϣϯΛσϓϩΠ͠·ͬͨ͘ܦ ݧΛݩʹ·ͱΊͨɺΫϥυͰಈ͔͢ΞϓϦͷ
ϏϧυσϓϩΠͷϕετϓϥΫςΟεू
GBDUPSBQQ w ॳग़ࠒͱݹ͍ w IUUQTHJUIVCDPNIFSPLVGBDUPSDPNNJUCFEFBCCCCGGDGECGDDCC w Ͳ͏ݟͯݸ͔͠ͳ͔ͬͨ w ࠓ͞ΒͰ࣮֬ʹ͓͖͍͑ͯͨલఏࣝ w
Ͳ͏ΞϓϦΛ։ൃ͢Δ͖͔ w ΠϯϑϥΛߟ͑Δ࣌ʹͲ͏࡞Δ͖͔ w %FW0QT43&ɺ͞Βʹ%9తͳ؍Ͱඞཁ
؆୯ͳ·ͱΊ w εέʔϥϒϧ w ϙʔλϒϧ w Φϖϛεࢭ w ޮԽ Λࢦͯ͠։ൃ͠·͠ΐ͏ʂͱ͍͏ϓϥΫςΟε
GBDUPS * ίʔυϕʔε ** ґଘؔ *** ઃఆ *7 όοΫΤϯυαʔϏε 7
ϏϧυɺϦϦʔεɺ࣮ߦ 7* ϓϩηε 7**ϙʔτόΠϯσΟϯά 7***ฒߦੑ *9 ഇغ༰қੑ 9 ։ൃຊ൪Ұக 9* ϩά 9**ཧϓϩηε
GBDUPS * ίʔυϕʔε ** ґଘؔ *** ઃఆ *7 όοΫΤϯυαʔϏε 7
ϏϧυɺϦϦʔεɺ࣮ߦ 7* ϓϩηε 7**ϙʔτόΠϯσΟϯά 7***ฒߦੑ *9 ഇغ༰қੑ 9 ։ൃຊ൪Ұக 9* ϩά 9**ཧϓϩηε શ෦ஸೡʹ͍ͯ͠Δͱ࣌ؒͳ͍ͷͰͬ͘͞ͱ
GBDUPSd * ίʔυϕʔε w ୯ҰHJUϦϙδτϦͰΞϓϦΛཧ w ΞϓϦέʔγϣϯ͚ͩ͡Όͳͯ͘Πϯϑϥཧ ** ґଘؔ w
ΞϓϦ͕ґଘ͢ΔͷΛͯ͢໌ࣔతʹ͢Δ w ޙʹσϓϩΠͯͪ͠ΌΜͱಈ͘͜ͱΛอূ͢Δ *** ઃఆ w ઃఆڥมʹ֨ೲ͢Δ w ίʔυϕʔεಉ͕ͩ͡ɺσϓϩΠ͢ΔڥʹΑͬͯ །Ұҧ͏ͷ͕ʮઃఆʯ w ιʔείʔυΛࠓ͙͢Φʔϓϯιʔεʹग़དྷ·͔͢ʁ
GBDUPSd *7 όοΫΤϯυαʔϏε w όοΫΤϯυαʔϏεΛΞλον͞ΕͨϦιʔεͱͯ͠ѻ͏ w ωοτϫʔΫӽ͠ʹར༻͢ΔαʔϏεͷ͜ͱ 7 ϏϧυɺϦϦʔεɺ࣮ߦ w
ϏϧυϦϦʔε࣮ߦͷͭͷεςʔδΛݫີʹ w σϓϩΠπʔϧΛͬͯϩʔϧόοΫͨ͠Γ࠶ىಈͨ͠Γग़ དྷΔΑ͏ʹ͑Δ 7* ϓϩηε w ΞϓϦέʔγϣϯΛͭ͘͠ෳͷεςʔτϨεͳϓϩ ηεͱ࣮ͯ͠ߦ͢Δ w εςʔτϨε͔ͭγΣΞʔυφογϯάͳϓϩηεʹ͢Δ
GBDUPSd 7**ϙʔτόΠϯσΟϯά w ΞϓϦέʔγϣϯ͕αʔόʔͱͯ͠ͷػೳΛ࣋ͪɺϙʔτό ΠϯσΟϯάΛ༻͍ͯαʔϏεͱͯ͠֎෦ʹެ։͢Δ 7***ฒߦੑ w ਨεέʔϧͰͳ͘ਫฏεέʔϧɺ͋Δ͍εέʔϧΞο ϓͰͳͯ͘εέʔϧΞτʹΑͬͯύϑΥʔϚϯεΛ্ ͤ͞ΒΕΔΑ͏ʹ։ൃ͢Δ
*9 ഇغ༰қੑ w ߴͳىಈͱάϨʔεϑϧγϟοτμϯͰݎ࿚ੑΛ࠷େԽ w ଈ࠲ʹىಈऴྃ͢Δ͜ͱ͕ग़དྷΔ w 4*(5&3.Λड͚औͬͯάϨʔεϑϧʹγϟοτμϯ͢Δ
GBDUPSd 9 ։ൃຊ൪Ұக w ։ൃεςʔδϯάຊ൪ΛͰ͖Δ͚ͩҰகͤͨ͞ঢ়ଶΛอͭ w σϓϩΠ͝ͱͷ࣌ؒɺਓࡐɺπʔϧͷΪϟοϓΛͳ͘͢ 9* ϩά w
ϩάΛΠϕϯτετϦʔϜͱͯ͠ѻ͏ w ΞϓϦέʔγϣϯετϨʔδͳͲΛؾʹͤͣɺϩάΛ TUEPVUTUEFSSͷετϦʔϜͱͯ͠ॻ͖ग़͢ 9**ཧϓϩηε w ཧλεΫΛճݶΓͷϓϩηεͱ࣮ͯ͠ߦ͢Δ w %#ͷϚΠάϨʔγϣϯॳظσʔλ࡞ͱ͍ͬͨεΫϦϓτ ΞϓϦέʔγϣϯͷίʔυϕʔεͱҰॹʹσϓϩΠՄೳʹ ͢Δ
·ͱΊ w σϓϩΠ͢Δڥ͝ͱʹ࣮ม͑ͳ͍ w ઃఆ ڥม ͰΓସ͑Δ͚ͩ w ฒྻॲཧग़དྷΔΑ͏ʹ࡞Δ w
γΣΞʔυφογϯά w ϓϩηεͷىಈఀࢭΛΧδϡΞϧʹ w ϏϧυˠϦϦʔεΘ͚Δ w ҰϏϧυͨ͠ΒϦϦʔεͷͨͼʹ࠶ར༻ w ϦϦʔεԿͰग़དྷΔΑ͏ʹ
Ͱʁ w ͔͜͜Β͏ͪΐͬͱࠓ෩ͳ w %PDLFS ,VCFSOFUFT࣌ʹ͓͚ΔGBDUPSBQQ
͜Ε͔ΒͷGBDUPSBQQ %PDLFS͕ී௨ʹͳΓɺ)FSPLVͪΖΜ("&ͷΑ ͏ͳ1BB4͕ҰൠతʹΘΕΔΑ͏ʹͳΓɺ ,VCFSOFUFTͷΑ͏ͳίϯςφΦʔέετϨʔγϣϯ Λ͢Δ͜ͱ͕ٻΊΒΕ͍ͯΔ࣌ʹɺͲ͏GBDUPS BQQͱ͖߹͏ͷ͔ ͋Δ͍GBDUPSBQQ͏ݹ͍ͷ͔ʁ
؆୯ͳ·ͱΊ ࠶ܝ w εέʔϥϒϧ w ϙʔλϒϧ w Φϖϛεࢭ w ޮԽ
Λࢦͯ͠։ൃ͠·͠ΐ͏ʂͱ͍͏ϓϥΫςΟε
͜Ε͔ΒͷGBDUPSBQQ w GBDUPSBQQͷߟ͑ํಛʹมΘΒͳ͍ w ಈ͔͢ڥ͕ਐԽ͍ͯ͠Δ͚ͩ w ͭ·Γɺ࣮ݱํ๏͕มΘΔ͚ͩ w %PDLFSʹΑΔϓϩηεཧ w
$POUJOVPVT%FMJWFSZͰϦϦʔε w ϦϦʔε࡞ۀʹLVCFDUM͏ w FUD
ͪͳΈʹ w GBDUPSBQQΛNFTPTQIFSF͕ఏএ͍ͯ͠Δ w IUUQTNFTPTQIFSFDPNCMPHGBDUPSBQQCVJMEJOHSFMFBTJOHGPSDMPVEOBUJWF w GBDUPS )FBMUI$IFDLT • The
“12 Factor App” has been the backbone of cloud native applications on hyper-scale platforms for a long time (including Mesosphere DC/OS).
·ͱΊ w GBDUPSBQQ։ൃऀ͕͓͖͍͑ͯͨݪଇ w ࠓͰͨΓલʹͳ͍ͬͯΔ͜ͱ͋Δ w ͕ɺͰे௨༻͢Δ w ͥͻҰಡΜͰ͓͍ͯͶʂ w
IUUQTGBDUPSOFUKB