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
2019年だからこそ12factor app/The Twelve-Factor app in 2019
Search
petitviolet
January 09, 2019
Programming
1
920
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
0
810
ピュアなドメインを支える技術/pure domain model and the technology behind it
petitviolet
14
9.4k
小さく始めるクラウドネイティブ/small start CloudNative
petitviolet
0
1.6k
実践GraphQL on Scala/Real world GraphQL on Scala
petitviolet
8
2.7k
Kubernetesを知る/Introduction Kubernertes
petitviolet
1
560
GraphQL on Scala
petitviolet
3
2.4k
Microservices Batch on GAE
petitviolet
0
1.8k
Web API Design
petitviolet
18
7.7k
Property Based Testing introduction
petitviolet
1
89
Other Decks in Programming
See All in Programming
Fast JSX: Don't clone props object #28768
yossydev
1
200
Tailwind CSSを本気でカスタマイズする方法
fsubal
15
5.5k
WebGLで始める コンピュータグラフィックス入門
heller77
0
330
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
910
Hanami and htmx
bkuhlmann
0
230
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
330
敵対的ポイフル
futabato
0
140
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
1
390
Going beyond Apache Parquet's default settings
xhochy
0
140
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
140
“Seeing Like a Programmer”—Resiliency, Limits, and Moral Hazards in Software Engineering (LambdaConf 2024)
chriskrycho
0
200
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
180
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
689
190k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
Adopting Sorbet at Scale
ufuk
69
8.6k
YesSQL, Process and Tooling at Scale
rocio
165
13k
The Cult of Friendly URLs
andyhume
74
5.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
66
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
39
2.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Optimizing for Happiness
mojombo
370
69k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
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