∁ੴྒ / GMO Pepabo, Inc.2018-08-02 OpenStackDays 2018େنΣϒαʔϏεͷʹ͏σϓϩΠख๏ͷมԽ͔ΒݟΔٕज़ͱจԽ
View Slide
∁ੴ ྒ / @r_takaishihttps://repl.info/TAKAISHI RyoRuby, GoOpenStack, Kubernetes Belgian beer
1. αʔϏεͷঢ়ଶʹԠͯ͡ɺదͳٕज़Λબ͢Δ2. γεςϜͷϨΠϠʔຖͷϥΠϑαΠΫϧΛҙࣝ͢Δ͜ͱͰ։ൃΛߴԽ3. ϓϥοτϑΥʔϜͷಛੑΛཧղ͠ɺՃͰඞཁͳཁૉ࣮͢Δٕज़!3ࠓ͢͜ͱ
OpenStack
OpenStack× =
2014-07ɹOpenStackݕ౼։࢝2015-05ɹHavanaελοΫӡ༻։࢝2016-08ɹ@r_takaishi ϖύϘೖࣾ2017-01ɹMitakaελοΫӡ༻։࢝2018-08ɹHavana͔ΒMitakaͷϚΠάϨʔγϣϯਐߦதɹະདྷɹɹMitakaελοΫͷόʔδϣϯΞοϓɺHavanaελοΫͷୀɹɹɹ!8/ZBIͷྺ࢙w /FVUSPOʢ%)$1 - 'MPBUJOH*1ʣw 0DUBWJB -#BB4w $JOEFS 4DBMF*0w *OGSBTUSVDUVSFBT$PEFXJUI5FSSBGPSNw :BP1SPEVDUT XSJUUFOCZ3VCZ
ຊ
ࠓͷςʔϚ
σϓϩΠ
σϓϩΠͱɺओʹωοτϫʔΫΛ௨ͯ͡ఏڙ͞ΕΔ8FCΞϓϦέʔγϣϯͳͲͷγεςϜ։ൃఔʹ͓͍ͯɺγεςϜΛར༻Մೳͳঢ়ଶʹ͢Δ͜ͱͰ͋Δɻ*5༻ޠࣙయ8FCMJPࣙॻ
!131.γεςϜΛར༻Մೳʹ͢Δ = Ϣʔβʔ͕ར༻Ͱ͖Δ2.ߴͰ҆ఆͨ͠σϓϩΠ => ϢʔβʔՁ্3.αʔϏεʹ͓͍ͯɺॏཁͳٕज़ͷҰͭͳͥσϓϩΠΛςʔϚͱͨ͠ͷ͔ʁ
࠷దͳσϓϩΠٕज़αʔϏεͷنঢ়ଶʹԠͯ͡มԽ͢Δ
࣮ྫ
!16• ϋϯυϝΠυϚʔέοτϓϥοτϑΥʔϜ• Web(Rails)ɾiOSɾAndroid• 7NJOOF
• PushܕΛ࠾༻• σϓϩΠઌαʔόʔίʔυΛૹΓɺΓସ͑Δ• Capistranoͱ͍͏RubyͷπʔϧΛ༻!17ैདྷͷσϓϩΠख๏ᶃΞϓϦͷίʔυΛऔಘϏϧυᶄ֤αʔόʔ44)ͰίʔυΛૹ৴ ϓϩηε࠶ىಈ
!18• σϓϩΠઌαʔόʔ͕૿͑ͨͱ͖ʹ͕࣌ؒԆͼΔ• ͕͔͔࣌ؒΔ = τϥϒϧͷݩ• ͭ·Γ…ʹ͍αʔόʔ͕૿͖͑ͯͨͱ͖ʹαʔϏεͷΛ્͢ΔՄೳੑ͕͋Δैདྷͷख๏ʹ͓͚Δ՝
αʔϏεͷ͕Λ્͢Δͷආ͚͍ͨ
• PullܕσϓϩΠҠߦ• ֤αʔόʔ͕ࣗίʔυΛऔಘ͠ɺΓସ͑ʢfujiwara/stretcherʣ• Capistrano͔Βར༻͢ΔͨΊɺΓͳ͍෦ΛՃ࣮!20ɿͰσϓϩΠͰ͖ΔΑ͏ʹ͢ΔͧʂʂʂᶃΞϓϦͷίʔυΛऔಘϏϧυᶆ֤αʔόʔ͕Λૹ৴ ϓϩηε࠶ىಈᶄϏϧυࡁΈΛετϨʔδʹอଘᶅσϓϩΠઌαʔόʔΫϥελʹରͯ͠σϓϩΠ໋ྩΛૹΔ
!21• αʔϏεͷنɺঢ়ଶʹԠͯ͡దͳٕज़Λબ͢Δ͜ͱͰΛҡ࣋ɾՃͤ͞Δ• Γͳ͍෦࣮࣮͠ݱ͢Δٕज़ɾͦΕΛਪ͢ΔจԽσϓϩΠํࣜͷΓସ͔͑ΒΘ͔Δٕज़ɾจԽ
ΞϓϦέʔγϣϯͷΘ͔ͬͨɻϛυϧΣΞͱ͔αʔόʔͷઃఆͱ͔Ծαʔόʔʁ
ϨΠϠʔຖͷϥΠϑαΠΫϧΛҙࣝ͠ɺޮΑ͘σϓϩΠ
!26• ݚڀνʔϜͱͷίϥϘϨʔγϣϯ• ϩά͔ΒະདྷͷΞΫηεසΛ༧ଌͯ͠ࣄલʹ૿ݮ• ͦͷ࣌ʑͰΞΫηεΛॲཧͰ͖ΔదͳࣄલʹભҠɿΞΫηεස༧ଌΛ༻͍ͨαʔόʔ૿ݮ
!27ܭըతεέʔϦϯάͷߏΞΫηεස༧ଌίϯϙʔωϯταʔόʔܭࢉɾ૿ݮίϯϙʔωϯτ༧ଌ݁Ռอ࣋ετϨʔδ IaaS Endpointճɺ࣌ؒ୯ҐͰ ͦͷͷΞΫηεසΛ༧ଌ࣌ؒʹճɺ࣍ͷ࣌ؒඞཁͳαʔόʔΛܭࢉɺ૿ݮ࣍ͷ࣌ؒͷΞΫηεස༧ଌΛऔಘαʔόʔΛ૿ݮظͷΞΫηε༧ଌΛอଘ
!28ΞΫηεසͱαʔόʔͷมԽܭըతεέʔϧɿແޮ ܭըతεέʔϧɿ༗ޮ
͏·͍͕ͬͨ͘ɺ՝͋ͬͨ
αʔόʔΛ૿࣌͢ɺαʔϏεΠϯ͕ؒʹ߹Θͳ͍͜ͱ͕
αʔόʔىಈ͔ΒαʔϏεΠϯ·ͰͷλΠϜϥά͕ݪҼͷͭͩͬͨ
ϥΠϑαΠΫϧͷҧ͍
!33γεςϜͷ֤ϨΠϠϥΠϑαΠΫϧ͕ͦΕͧΕҧ͏ΞϓϦέʔγϣϯ ଟ͍ͱɺʹճʙेճೖΕସΘΔϛυϧΣΞ ΞϓϦέʔγϣϯΑΓมߋස͍αʔόʔΓํ࣍ୈ ΞϓϦέʔγϣϯɺϛυϧΣΞΑΓ͍͜ͱ͕ଟ͍
!34αʔόʔͷσϓϩΠαΠΫϧwwwimage v1wwwimage v2wwwimage v3deletedwwwserver v1minne v1wwwserver v2minne v1wwwserver v3minne v1deletedGolden Imageํࣜw1VQQFUߋ৽࣌ʹΠϝʔδϏϧυwϛυϧΣΞ(nginx, td-agent)wΞϓϦέʔγϣϯ(rails)wଈΞϓϦ͕ىಈ͢Δdeleted
!35αʔόʔͷσϓϩΠαΠΫϧwwwimage v1 deletedwwwimage v2wwwimage v3deletedwwwserver v1minne v1wwwserver v2minne v1wwwserver v3minne v1
!36αʔόʔͷσϓϩΠαΠΫϧwwwimage v1 deletedwwwimage v2wwwimage v3deletedwwwserver v1minne v1wwwserver v2minne v1wwwserver v3minne v1Immutable Infrastructure
!37ΞϓϦέʔγϣϯͷσϓϩΠαΠΫϧdeployminne-app v2wwwimagedeletedwwwserverminne v1wwwserverminne v2wwwserverminne v3deployminne-app v3terminateserverlaunch server & deploy latest minne
!38ΞϓϦͱͦΕҎ֎ͰσϓϩΠํࣜΛม͑ͯΈ͚ϛυϧΣΞαʔόʔઃఆมߋ͕͋ΕΰʔϧσϯΠϝʔδΛߋ৽αʔόʔΛೖΕସ͑ͯө(Immutable Infrastructure)ΞϓϦέʔγϣϯαʔόʔͷίʔυΛߋ৽ αʔϏεΛ࠶ىಈͯ͠ө αʔόʔͷೖΕସ͑ෆཁͰߴ
Ұݟ͏·͘Ͱ͖͍ͯΔ͕ʜʁ
!40σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔wwwimage v1 wwwserver v1minne v1deployminne-app v2wwwserver v1minne v2
!41σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔wwwimage v1 deletedwwwserver v1minne v1wwwserver v1minne v1deployminne-app v2wwwserver v1minne v2
!42σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔wwwimage v1 wwwserver v1minne v1wwwserver v1minne v1deployminne-app v2wwwserver v1minne v2ΞϓϦͷόʔδϣϯ͕ҧ͏ʂ
!43σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔wwwimage v1 deletedwwwserver v1minne v1wwwserver v1minne v1deployminne-app v2wwwserver v1minne v2wwwserver v1minne v2αʔϏεΠϯલʹΞϓϦΛ࠷৽൛ʹ
!44σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔wwwimage v1 deletedwwwserver v1minne v1wwwserver v1minne v1deployminne-app v2wwwserver v1minne v2wwwserver v1minne v2αʔϏεΠϯલʹΞϓϦΛ࠷৽൛ʹλΠϜϥά
• αʔόʔىಈ࣌ʹ࠷৽ίʔυΛऔಘ͔ͯ͠ΒαʔϏεΠϯ• ίʔυऔಘ͚͕͔͔ͩ࣌ؒΔ• ૄ݁߹ԽΛਐΊ͖ͯͨͨΊʹൃੜ!45ݪҼͷͭ
• ΞϓϦσϓϩΠ࣌ʹϕʔεΠϝʔδΛϏϧυ͢Δ• Πϝʔδ͔Βىಈͨ࣌͠ɺৗʹ࠷৽ίʔυͰ্͕ͬͯ͘Δ• ΞϓϦͷσϓϩΠɺαʔόʔͷೖΕସ͑ͷͲͪΒʹӨڹΛ༩͑ͳ͍✌!46γϯϓϧͳղܾํ๏
!47• ͏·͘γεςϜͷϨΠϠʔΛ͚Δ͜ͱͰɺͦΕͧΕ͕࠷ͷํ๏ͰมߋΛՃ͑ଓ͚Δ͜ͱ͕Ͱ͖Δ• ͦΕͧΕͷ୲ϝϯόʔ͕ɺޓ͍ʹ࿈ܞ્ͭͭ͢͠Δ͜ͱͳ͘։ൃΛਐΊΔ͜ͱ͕Ͱ͖ΔจԽϨΠϠΛҙࣝͨ͠σϓϩΠ͔ΒΘ͔Δٕज़ͱจԽ
͋ΕʜΞϓϦͱΠϯϑϥΛ͏·͚͘ΔʜͲ͔͜Ͱฉ͍ͨ͜ͱ͕͋Δ
$BB41BB4͡ΌΜʂ
ϓϥοτϑΥʔϜͷಛੑΛཧղ͠ɺΓͳ͍෦ඞཁͳΒ࣮͢Δ
!51• CaaSɿΞϓϦΛίϯςφͰϥοϓɺίϯςφҎԼҙࣝෆཁ• PaaSɿΞϓϦέʔγϣϯϥϯλΠϜɺར༻ϦιʔεΛҙࣝ͢ΕΑ͍ૄ݁߹ҙࣝͨ͠Β$BB41BB4ʹࣅ͖ͯͨ
!52αʔϏεͷ։ൃऀ͕ҙࣝ͢ΔͷͲͩ͜Ζ͏ʁ7JSUVBM.BDIJOF3VOUJNF"QQMJDBUJPO$POUBJOFS7JSUVBM.BDIJOF3VOUJNF"QQMJDBUJPO*BB41BB43VOUJNF"QQMJDBUJPO$BB4 1BB4
!53• CaaSPaaSΛ͑ɺ͜Ε·Ͱ͖ͯͨ͜͠ͱΒͳͯ͘Α͔ͬͨʁ• IaaS͔ΒCaaS/PaaSʹΓ͑Δͷ͕ਖ਼ղͩͬͨʁ• ٕज़બΛؒҧ͍͑ͯͨͷ͔ʁͱ͍͏͜ͱʜ
'ͦΜͳ͜ͱͳ͍
!55NJOOFϦϦʔε࣌Ͱ͑ͨϓϥοτϑΥʔϜʁ2006 2009 2013minne release2012/01 2015PaaSherokuContainerdocker"84&$Ͱ։࢝ Ұ෦Λ/ZBIҠઃIaaSAWSPrivate IaaSNyah
!56• ϝϯόʔ͕ΞϓϦέʔγϣϯΤϯδχΞͷΈ• ϋʔυΣΞௐୡΛͨͳ͍• AWSͷݟΛಘΔૉૣ͘࡞Γ࢝ΊΔͨΊͷબʢʙࠒʣ
!57• CaaS/PaaSʹΓ͑Δ͜ͱબࢶͷ1ͭ• తΛୡ͢ΔͨΊʹࠓͱΕΔ࠷దղԿ͔ʁ• ϓϥοτϑΥʔϜͷಛੑΛཧղ͢Δ• Γͳ͍෦Λ࣮Ͱ͖Δٕज़ॏཁͳͷඞཁʹԠͯ͡બɾ࣮Ͱ͖Δ͜ͱ
ϓϥοτϑΥʔϜΛબͿͷඞཁͳιϑτΣΞΛ࣮͢Δͷʮٕज़ʯ
1. αʔϏεͷঢ়ଶʹԠͯ͡ɺదͳٕज़Λબ͢Δ2. γεςϜͷϨΠϠʔຖͷϥΠϑαΠΫϧΛҙࣝ͢Δ͜ͱͰ։ൃΛߴԽ3. ϓϥοτϑΥʔϜͷಛੑΛཧղ͠ɺՃͰඞཁͳཁૉ࣮͢Δٕज़!59ࠓͨ͜͠ͱ
!60• IaaS্ͰޮΑ͘σϓϩΠ͢Δٕज़Λຏ͘• ࠷ળͷબ͕Ͱ͖ΔΑ͏ʹ͢Δ• બࢶΛ૿͢ʢPrivate CaaSɺPrivate PaaSͱ͔ʣ• બͰ͖Δٕज़ɺࣝΛΊΔ• ٕज़ͷมԽΛָ͠ΉϖύϘΑΓΑ͍ͯͧ͘͘͠ʂ
ͬͱ͓͠Ζ͘Ͱ͖Δ0QFO4UBDLɾ$MPVE/BUJWF
We are hiring!Senior Software EngineerSoftware Engineer (Site Reliability)Senior Software Engineer (Site Reliability)