Slide 1

Slide 1 text

The Twelve Factor App 12 Cloud NATIVE APPLICATION PATTERNS 2016.08.26 Kazuya Takahashi @REALWORLD Beyond

Slide 2

Slide 2 text

About me The Twelve Factor App 12 Beyond גࣜձࣾϦΞϧϫʔϧυ(. גࣜձࣾ3&"-'*/5&$)$50 ∁ڮ࿨໵ ΞδϟΠϧͰϑϧελοΫͳҙࣝߴ͍ΤϯδχΞ ݸਓͰ͸-*7&"(&ͱ͍͏Իָʷ8ͳूஂͷҰһͰ͢ IUUQTMJWFBHFUPEBZ

Slide 3

Slide 3 text

the Twelve-Factor App )FSPLVͷதͷਓ͕೥ʹॻ͍ͨɺϞμϯͳΫϥ΢υΞϓϦέʔγϣϯͷϕ ετϓϥΫςΟε͕ʮ5IF5XFMFWF'BDUPS"QQʯ ࠷ۙɺ.BSUJO'PXMFSࢯͷϒϩάهࣄʮ4FSWFSMFTT"SDIJUFDUVSFTʯͰ/FU'MJY ͷ"ESJBO$PDLDSPGUࢯͷʠΦʔέʔɺͦΕ͕Ͳ͏ͨ͠ɻ΋͠ࢲ͕༏लͳ 'BDUPS"QQͷσϕϩούʔͳΒɺίʔυͷॻ͖ํʹԿͷҧ͍͕͋Δͷ͔ʡͱ͍ ͏ίϝϯτ͕৺ʹࢗͬͨ͞ͷͰɺվΊͯ'BDUPSʹֶ͍ͭͯΜͰΈ·ͨ͠ɻ The Twelve Factor App 12 Beyond

Slide 4

Slide 4 text

the Twelve-Factor App 'BDUPS"QQΛௐ΂ͯݟ͚ͭͨͷ͕ʮ#FZPOEUIF5XFMWF'BDUPS"QQʯ ΦϦδφϧ'BDUPS"QQ͸ඇৗʹ༗༻͕ͩɺ೥ʹॻ͔Εͨ΋ͷͰঢ়گ͕ มΘ͖͍ͬͯͯΔɻಛʹ"84Λ࢝Ίͱͨ͠Ϋϥ΢υ؀ڥΛ׆༻ͨ͠Ϋϥ΢υωΠ ςΟϒΞϓϦέʔγϣϯͷ৽ͨͳϕετϓϥΫςΟεͱͯ͠ɺ೥ʹ1JWPUBM ͕ࣾɺΦϦδφϧͷݸͷΨΠυϥΠϯͷΞοϓσʔτͱݸͷ৽ͨͳΨΠυϥ ΠϯΛ௥Ճͨ͠΋ͷ͕#FZPOEUIF'BDUPS"QQͰ͢ɻ Beyond The Twelve Factor App 12 Beyond

Slide 5

Slide 5 text

01. One Codebase, One Application όʔδϣϯ؅ཧ͞Ε͍ͯΔͭͷίʔυϕʔεʹͭͷΞϓϦέʔγϣϯ The Twelve Factor App 12 Beyond

Slide 6

Slide 6 text

01. One Codebase, One Application Ϋϥ΢υωΠςΟϒΞϓϦέʔγϣϯ͸ɺ୯ҰͷϦϙδτϦͰ؅ཧ͞Εͨίʔυ ϕʔεΛ࣋ͪɺෳ਺ͷҟͳΔ؀ڥʹϦϦʔε͞ΕΔɻ ෳ਺ͷνʔϜ͕ɺಉ͡ϦϙδτϦͰҟͳΔػೳΛ։ൃ͢ΔͱɺͭͷΞϓϦέʔ γϣϯͰ͸ͳ͘ͳͬͯ͠·͏ͨΊɺϚΠΫϩαʔϏεԽΛݕ౼͢΂͖Ͱ͋Δɻ ʠΞʔΩςΫνϟ͸૊৫ʹ͕ͨ͠͏ɻ૊৫͸ΞʔΩςΫνϟʹ͕ͨ͠͏ʡʙίϯ ΢ΣΠͷ๏ଇ The Twelve Factor App 12 Beyond

Slide 7

Slide 7 text

02. API First αʔϏεͷߏங͸"1*ͷઃܭ͔Β࢝ΊΔ The Twelve Factor App 12 Beyond

Slide 8

Slide 8 text

02. API First ϞόΠϧϑΝʔετ͔Β"1*ϑΝʔετ΁ɻ"1*ͩͱෳ਺αʔϏεͷ࿈ܞ΍ɺε ϚϗΞϓϦͱ8ΞϓϦͷΑ͏ͳϚϧνσόΠεʹ΋ରԠͰ͖Δɻ "1*ͷઃܭ͸"1*υΩϡϝϯτ࡞੒πʔϧΛར༻͢Δɻ4XBHHFS΍"1* #MVFQSJOUͱ"QJBSZͱ͍ͬͨπʔϧΛ࢖͑͹ɺ"1*υΩϡϝϯτ͔Βɺίʔυ΍ 4%,ɺϞοΫαʔόͳͲΛੜ੒͢Δ͜ͱ͕Ͱ͖Δɻ "1*ϑΝʔετͷγεςϜ͸ɺ࢓༷͕໌֬ʹఆٛ͞Ε͍ͯΔͷͰɺςετ͕ॻ͖ ΍͘͢ɺ$*؀ڥͰγεςϜΛҡ͍࣋ͯ͘͠ࣄ͕Ͱ͖Δɻ The Twelve Factor App 12 Beyond

Slide 9

Slide 9 text

03. Dependency Management ґଘؔ܎Λ໌ࣔతʹએݴ͠෼཭͢Δ The Twelve Factor App 12 Beyond

Slide 10

Slide 10 text

03. Dependency Management ϥΠϒϥϦͷ؅ཧ͸ɺ1)1ͷ$PNQPTFSɺ3VCZͷ(FNɺ/PEFKTͷOQNͳͲ ͷύοέʔδ؅ཧγεςϜΛར༻͢Δ͜ͱʹΑͬͯɺΞϓϦέʔγϣϯ͕Ͳͷϥ ΠϒϥϦʹґଘ͍ͯ͠Δ͔͕໌֬ʹͳΓɺγεςϜ࣮ߦ؀ڥʹґଘ͠ͳ͍ɻ γεςϜʹΠϯετʔϧ͞Ε͍ͯΔͰ͋Ζ͏DVSM΍*NBHF.BHJDLͳͲͷπʔϧ Λ࢖͏৔߹΋ɺকདྷҧ࣮ͬͨߦ؀ڥͰ࢖ΘΕͨ৔߹ʹଘࡏ͍ͯ͠ͳ͍Մೳੑ͕͋ ΔͷͰɺΞϓϦέʔγϣϯଆͰ؅ཧ͢Δ΂͖Ͱ͋Δɻ The Twelve Factor App 12 Beyond

Slide 11

Slide 11 text

04. Design, Build, Release, Run ઃܭɺϏϧυɺϦϦʔεɺ࣮ߦ The Twelve Factor App 12 Beyond

Slide 12

Slide 12 text

04. Design, Build, Release, Run ઃܭɿΞϓϦέʔγϣϯ͸ࣄલʹશ෦ઃܭ͢ΔͷͰ͸ͳ͘ɺઃܭͱίʔσΟϯά Λখ͍͞୯ҐͰ܁Γฦ͠ߦ͍ͬͯ͘ɻ ϏϧυɿϦϙδτϦͰࢦఆ͞Εͨίʔυϕʔεͷґଘؔ܎Λղܾ͠ίϯύΠϧɻ ϩʔΧϧ؀ڥͰ΋ಉ༷ͷखॱΛߦ͑͹ϩʔΧϧͰಈ͍͕ͨຊ൪Ͱಈ͔ͳ͍ͱ͍͏ ໰୊͸ൃੜ͠ͳ͍ɻ ϦϦʔεɿϏϧυ͞Εͨ΋ͷΛ؀ڥຖͷσϓϩΠઃఆͱ݁߹ͯ͠ϦϦʔεɻϦϦʔ ε͸ඞͣҰҙͳ*%Λ࣋ͪɺϩʔϧόοΫͰ͖ΔΑ͏ʹ͢Δɻ$BQJTUSBOPͩͱλ ΠϜελϯϓΛ΋ͬͨσΟϨΫτϦɺ%PDLFSͩͱλάɻ The Twelve Factor App 12 Beyond

Slide 13

Slide 13 text

04. Design, Build, Release, Run The Twelve Factor App 12 Beyond ࣮ߦɿϦϦʔε͞ΕͨίϯςφͳͲͷϓϩηεΛىಈ࣮ͯ͠ߦɻϩʔΧϧͰϏϧ υ࣮ͯ͠ߦͨ͠΋ͷ͕ɺ$*$%ύΠϓϥΠϯΛ௨ͯ͡ɺͦͷ··ෳ਺ͷΫϥ΢υ ؀ڥͰ΋࣮ߦ͞ΕΔɻ

Slide 14

Slide 14 text

05. Configuration, Credentials, and Code ઃఆΛ؀ڥม਺ʹ֨ೲ͢Δ The Twelve Factor App 12 Beyond

Slide 15

Slide 15 text

05. Configuration, Credentials, and Code ઃఆ΍ೝূ৘ใ͸ίʔυ͔Β෼཭͢΂͖Ͱ͋Γɺόʔδϣϯ؅ཧʹ΋ؚΉ΂͖Ͱ ͸ͳ͍ɻ·ͨɺ؀ڥ͝ͱʢEFW QSPEʜʣʹઃఆΛάϧʔϐϯά͢΂͖Ͱ΋ͳ͍ɻ ؀ڥ͸ແݶʹ૿͍͑ͯ͘Մೳੑ͕͋Δɻ ઃఆΛ෼཭͢ΔҰ൪ͷํ๏͸؀ڥม਺΁ͷ֨ೲͰ͋Δɻίʔυमਖ਼͢Δ͜ͱͳ͘ σϓϩΠ͝ͱʹ؆୯ʹมߋͰ͖ɺݴޠ΍04ʹґଘ͠ͳ͍ϑΥʔϚοτɻ ઃఆͱίʔυ͕෼཭Ͱ͖͍ͯΔ͔ͷ֬ೝ͸ɺࠓ͙͢ʹͰ΋ίʔυΛΦʔϓϯιʔ εԽͰ͖Δ͔Ͳ͏͔ͰΘ͔Δɻ The Twelve Factor App 12 Beyond

Slide 16

Slide 16 text

06. Logs ϩάΛΠϕϯτετϦʔϜͱͯ͠ѻ͏ The Twelve Factor App 12 Beyond

Slide 17

Slide 17 text

06. Logs Ϋϥ΢υωΠςΟϒΞϓϦέʔγϣϯ͸αʔό͕؆୯ʹ૿ݮͨ͠ΓɺҰ࣌తͳε τϨʔδ͔͠ͳ͍৔߹΋͋ΔͷͰɺϑΝΠϧγεςϜʹґଘ͠ͳ͍Α͏ʹɺϩά ͷग़ྗઌ΍ετϨʔδʹ͍ͭͯ͸Ұ੾ؔ஌ͤͣɺ࣮ߦதͷϓϩηε͸Πϕϯτε τϦʔϜΛඪ४ग़ྗʹॻ͖ग़͠ɺ࣮ߦ؀ڥͰ͸ετϦʔϜΛॲཧ͢ΔqVFOUE΍ $MPVE8BUDI-PHTͳͲͰॲཧ͢Δɻ ϩάΛू໿ͨ͠Γ෼ੳ͍ͨ͠৔߹͸ɺ5SFBTVSF%BUB΍&-,ελοΫ &MBTUJD4FBSDI -PHTUBTI BOE,JCBOB ͳͲΛར༻͢Δɻ The Twelve Factor App 12 Beyond

Slide 18

Slide 18 text

07. Disposability ߴ଎ͳىಈͱάϨʔεϑϧγϟοτμ΢ϯͰݎ࿚ੑΛ࠷େԽ͢Δ The Twelve Factor App 12 Beyond

Slide 19

Slide 19 text

07. Disposability Ϋϥ΢υωΠςΟϒΞϓϦέʔγϣϯͷϓϩηε͸ഇغ༰қੑʢߴ଎ͳϓϩηε ͷىಈͱऴྃʣ͕େ੾Ͱ͋Δɻ"84-BNCEBͳͲ͸ϦΫΤετ͝ͱʹҰ࣌తͳ ϓϩηε͕ىಈͯ͠ॲཧ͢ΔͨΊىಈ࣌ؒͷ୹ॖ͸ॏཁͰ͋Δɻ ·ͨىಈ͕࣌ؒ୹͍ͱɺϦϦʔε࡞ۀ΍εέʔϧΞοϓ΋ૉૣ͘ߦ͑ΔΑ͏ʹͳ Γɺ։ൃϓϩηε΋ߴ଎Խ͢Δɻ The Twelve Factor App 12 Beyond

Slide 20

Slide 20 text

08. Backing services όοΫΤϯυαʔϏεΛΞλον͞ΕͨϦιʔεͱͯ͠ѻ͏ The Twelve Factor App 12 Beyond

Slide 21

Slide 21 text

08. Backing services σʔλϕʔε΍ϝʔϧαʔόͳͲͷόοΫΤϯυͷαʔϏε͸ɺαʔυύʔςΟ ͷαʔϏεΛ"1*ͳͲΛ௨ͯ͡ར༻͢Δࣄ͕૿͍͑ͯΔͷͰɺΞλον͞ΕͨϦ ιʔεͱͯ͠ѻ͍ɺ؆୯ʹ੾Γସ͑ͯར༻Ͱ͖ΔΑ͏ʹ͢Δɻ The Twelve Factor App 12 Beyond σʔλϕʔεͷ"NB[PO3%4ɺ 4.51ͷ1PTUpYͱ$VFOPUF434 ΍4FOE(SJEɺΩϡʔͷ #FBOTUBMLEͱ424ͳͲɻ

Slide 22

Slide 22 text

08. Backing services αʔυύʔςΟͷαʔϏεΛ࢖͏৔߹ɺαʔϏε͕μ΢ϯ͢ΔͱίωΫγϣϯͷ λΠϜΞ΢τ଴͕ͪൃੜͯ͠ɺଞͷॲཧ΋μ΢ϯͯ͠͠·͏Մೳੑ͕͋ΔͨΊɺ $JSDVJU#SFBLFSύλʔϯΛ࠾༻͢ΔͱΑ͍ɻ The Twelve Factor App 12 Beyond $JSDVJU#SFBLFSύλʔϯͱ͸ɺϦϞʔτΞΫηεͷ੒ޭʗࣦഊΛΧ΢ϯτ͠ɺΤϥʔ཰͕ᮢ஋Λ ௒͑ͨͱ͖ʹࣗಈతʹΞΫηεΛःஅ͢Δ࢓૊Έɻ WJB෼ࢄαʔϏε؀ڥ΁ͷ$JSDVJU#SFBLFSͷద༻-*/&&OHJOFFST#MPH

Slide 23

Slide 23 text

09. Environment Parity ͢΂ͯͷ؀ڥΛͰ͖Δ͚ͩҰகͤͨ͞ঢ়ଶΛอͭ The Twelve Factor App 12 Beyond

Slide 24

Slide 24 text

09. Environment Parity ։ൃ؀ڥɾεςʔδϯά؀ڥɾຊ൪؀ڥͳͲͷෳ਺ͷ؀ڥ͸Ͱ͖Δ͚ͩΪϟοϓ Λ࡞ΒͣʹҰகͤ͞Δɻ؀ڥ͝ͱʹΪϟοϓ͕࡞ΒΕΔཁҼ͸ओʹʮ࣌ؒʯ ʮਓʯʮϦιʔεʢόοΫΤϯυαʔϏεʣʯͷͭɻ ࣌ؒɿຊ൪؀ڥ΁ͷϦϦʔε͸ग़དྷΔݶΓ୹ظؒʢ਺࣌ؒ୯ҐʣͰߦ͏ɻ ਓɿίʔυΛॻ͘ਓͱσϓϩΠ͢Δਓ͸ಉ͡ਓ͕୲౰͢Δɻͦͯ͠σϓϩΠ͸ ΞΫγϣϯͰ؆୯ʹͰ͖ΔΑ͏ʹ͢Δɻ The Twelve Factor App 12 Beyond

Slide 25

Slide 25 text

09. Environment Parity ϦιʔεɿϩʔΧϧ؀ڥͱຊ൪؀ڥ͸$IFG΍%PDLFSͳͲΛར༻ͯ͠ग़དྷΔݶΓ Ұகͨ͠όοΫΤϯυαʔϏεΛ࢖͏ɻຊ൪͸.Z42-ͰϩʔΧϧ͸42-JUF΍ɺ ຊ൪͸NFNDBDIFEͰϩʔΧϧ͸ΠϯϝϞϦͳͲͱ͍͏Ϊϟοϓ͸࡞Βͳ͍ɻ؀ ڥͷҰக͸࣌ؒͱखؒΛ͔͚ͯͰ΋ߦ͏΂͖Ͱ͋Δɻ શͯͷίϛοτ͸σϓϩΠީิͱͯ͠ɺͲͷ؀ڥͰ΋ಈ͘Α͏ʹ৺͕͚Δɻ The Twelve Factor App 12 Beyond

Slide 26

Slide 26 text

10. Administrative Processes ؅ཧλεΫ͸ΞϓϦέʔγϣϯ͔Β෼཭͢Δ The Twelve Factor App 12 Beyond

Slide 27

Slide 27 text

10. Administrative Processes ΦϦδφϧ'BDUPS"QQͰ͸؅ཧλεΫΛΞϓϦέʔγϣϯ಺ʹ࣮૷ɺ΋͘͠ ͸3&1-ʢ3BJMTͷQSZ΍-BSBWFMͷUJOLFSͳͲʣΛ׆༻͢Δͱͳ͍ͬͯΔ͕ɺ #FZPOE൛Ͱ͸ҟΛএ͍͑ͯΔɻ ΞϓϦέʔγϣϯͱҰॹͩͱεέʔϧΞ΢τ࣌ʹແ਺ͷ؅ཧλεΫ͕ىಈͯ͠͠ ·͏͔΋͠Εͳ͍ɻ·ͨΫϥ΢υωΠςΟϒͳΞϓϦέʔγϣϯ͸DSPOͳͲͷσʔ Ϟϯ͕࢖͑ͳ͍࣌΋͋Δɻ 4Ͱ੩తαΠτɺ-BNCEBͰνϟοτϘοτͱ͔ ·ͨɺΞϓϦέʔγϣϯ಺ͷ؅ཧλεΫͷηΩϡϦςΟΛߟ͑ͳ͍ͱ͍͚ͳ͍ɻ The Twelve Factor App 12 Beyond

Slide 28

Slide 28 text

10. Administrative Processes ؅ཧλεΫ͸ΞϓϦέʔγϣϯ಺෦Ͱ࣮૷ͤͣʹɺ"84-BNCEBͳͲͰ؅ཧλ εΫઐ༻ͷΫϥ΢υωΠςΟϒΞϓϦέʔγϣϯΛ࡞Δ΂͖Ͱ͋Δɻ ηΩϡϦςΟͷߟྀ͕ݶఆతͱͳΓɺΞϓϦέʔγϣϯ͕ͲΜͳʹεέʔϧΞ΢ τͯ͠΋ӨڹΛ͏͚ͳ͍ɻ The Twelve Factor App 12 Beyond

Slide 29

Slide 29 text

11. Port binding ϙʔτόΠϯσΟϯάΛ΍Ίͯίϯςφͱͯ͠αʔϏεΛެ։͢Δ The Twelve Factor App 12 Beyond

Slide 30

Slide 30 text

11. Port binding ΦϦδφϧ'BDUPS"QQͰ͸ΞϓϦέʔγϣϯΛϙʔτΛόΠϯυͯ͠αʔϏ εͱͯ͠ެ։͢Δͱͳ͍ͬͯΔ͕ɺΫϥ΢υωΠςΟϒΞϓϦέʔγϣϯ͸ίϯ ςφ୯ҐͰαʔϏεͱͯ͠ެ։͢Δɻ ·ͨϩʔΧϧͰ͸MPDBMIPTUɺຊ൪؀ڥͰ͸BQQFYBNQMFDPNͱ؀ڥʹ ΑͬͯϙʔτΛόΠϯυ͢Δ৔߹͸؀ڥม਺ʹΑͬͯมߋ͕Ͱ͖ΔΑ͏ʹ͢Δɻ The Twelve Factor App 12 Beyond

Slide 31

Slide 31 text

12. Stateless Processes γΣΞʔυφογϯάύλʔϯʹΑΔεςʔτ؅ཧ The Twelve Factor App 12 Beyond

Slide 32

Slide 32 text

12. Stateless Processes ΞϓϦέʔγϣϯͷϓϩηε͸શͯεςʔτϨεͱͳΓɺηογϣϯͳͲͷঢ়ଶ ؅ཧʹ͸γΣΞʔυφογϯάͳόοΫΤϯυαʔϏεΛར༻͢Δɻ Ϋϥ΢υωΠςΟϒΞϓϦέʔγϣϯͷϑΝΠϧγεςϜ͸Ұ࣌తͳ΋ͷ΍Ϧʔ υΦϯϦʔͷ৔߹΋͋ΔͨΊόοΫΤϯυαʔϏεͱͯ͠͸࢖༻͢΂͖Ͱͳ͍ɻ ·ͨΠϯϝϞϦΩϟογϡ͸ɺϓϩηεىಈ࣌ʹϝϞϦΩϟογϡ͢Δͱϓ ϩηεഇغ༰қੑͰड़΂ͨΞϓϦέʔγϣϯͷϓϩηεىಈߴ଎ԽΛ્֐͢Δͨ Ίɺ3FEJTͳͲͷΩϟογϡαʔϏεΛ࢖͏΂͖Ͱ͋Δɻ The Twelve Factor App 12 Beyond

Slide 33

Slide 33 text

13. Concurrency εέʔϧΞοϓͰ͸ͳ͘εέʔϧΞ΢τͰϓϩηεΛ૿΍͢ The Twelve Factor App 12 Beyond

Slide 34

Slide 34 text

13. Concurrency εςʔτϨε͔ͭγΣΞʔυφογϯάͰഇغ༻ҙͳϓϩηεΛ࣋ͭΫϥ΢υω ΠςΟϒΞϓϦέʔγϣϯ͸ɺෳ਺ͷΠϯεϯεΛ্ཱͪ͛ͯεέʔϧΞ΢τ͢ Δ͜ͱ͕ɺ$16Λ্͛ͨΓϝϞϦΛ૿΍ͨ͠Γ͢ΔεέʔϧΞοϓΑΓ؆୯Ͱޮ ՌతͰ͋Δɻ The Twelve Factor App 12 Beyond

Slide 35

Slide 35 text

14. Telemetry ޿େͳΫϥ΢υͰͷϦϞʔτ؂ࢹ The Twelve Factor App 12 Beyond

Slide 36

Slide 36 text

14. Telemetry ΦϦδφϧͷ'BDUPS"QQʹ͸ແ͍߲໨ɻ؂ࢹʹ͸"1. ύϑΥʔϚϯε ɺ ,1* Ϗδωεࢦඪ ɺࢮ׆؂ࢹͷ͕ͭඞཁɻΫϥ΢υωΠςΟϒΞϓϦέʔγϣ ϯ͸༷ʑͳΠϯεϯεʗόοΫΤϯυαʔϏεʗαʔυύʔςΟαʔϏεͰߏ੒ ͞ΕΔͨΊ؂ࢹ͕ෳࡶ໘౗ʹͳͬͯ͠·͏ͷͰɺઃܭஈ֊͔Β؂ࢹํ๏Λݕ౼͢ ΂͖Ͱ͋Δɻ "1.ɿ/FX3FMJD (BOHMJB %BUB%PH ,1*ɿ(PPHMF"OBMZUJDT 5SFBTVSF%BUB 3FETIJGU ࢮ׆؂ࢹɿ/BHJPT $MPVE8BUDI $MPVE5SBJM The Twelve Factor App 12 Beyond

Slide 37

Slide 37 text

15. Authentication and Authorization ϩʔϧϕʔεͷೝূͱೝՄ The Twelve Factor App 12 Beyond

Slide 38

Slide 38 text

15. Authentication and Authorization ΦϦδφϧͷ'BDUPS"QQʹ͸ແ͍߲໨ɻΫϥ΢υωΠςΟϒΞϓϦέʔγϣ ϯͷηΩϡϦςΟରࡦ͸3#"$ 3PMF#BTF"DDFTT$POUSPMM ͕ద͍ͯ͠ΔɻΞ ϓϦέʔγϣϯ͸ͲͷϢʔβʔ͕ϦΫΤετ͍ͯ͠Δͷ͔Λೝূ͠ɺͦͷϢʔβʔ ͕ଐ͍ͯ͠Δϩʔϧ͔Β࣮ߦͰ͖ΔॲཧΛೝՄ͢Δɻ ैདྷͷόοΫΤϯυαʔϏεͱͷ઀ଓͰ͸*1Ͱͷ੍ݶ͕ଟ͍͕ɺΠϯελϯε͕ ૿ݮͨ͠ΓҰ࣌తͳ΋ͷͰ͋Δ৔߹͸*1؅ཧ͕೉͍ͨ͠ΊɺϢʔβʔͱಉ༷ʹ 3#"$͕༗ޮͰ͋Δɻ The Twelve Factor App 12 Beyond