Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
大規模ウェブサービスの成長に伴うデプロイ手法の変化から見る技術と文化 / openst...
Search
Ryo Takaishi
August 02, 2018
Technology
8
1.2k
大規模ウェブサービスの成長に伴うデプロイ手法の変化から見る技術と文化 / openstackdays2018
Ryo Takaishi
August 02, 2018
Tweet
Share
More Decks by Ryo Takaishi
See All by Ryo Takaishi
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
810
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
550
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
13
12k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
1.9k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.7k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
960
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.6k
実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019
takaishi
2
2.6k
Consul Connect and Kubernetes Integration / cloud native meetup tokyo 7
takaishi
2
2.3k
Other Decks in Technology
See All in Technology
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
10
6.4k
グレートファイアウォールを自宅に建てよう
ctes091x
0
130
生成AI・AIエージェント時代、データサイエンティストは何をする人なのか?そして、今学生であるあなたは何を学ぶべきか?
kuri8ive
2
2k
Multimodal AI Driving Solutions to Societal Challenges
keio_smilab
PRO
1
140
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
670
たかが特別な時間の終わり / It's Only the End of Special Time
watany
28
7.7k
Design System Documentation Tooling 2025
takanorip
2
990
Microsoft Agent 365 を 30 分でなんとなく理解する
skmkzyk
1
490
Claude Code Getting Started Guide(en)
oikon48
0
170
21st ACRi Webinar - Univ of Tokyo Presentation Slide (Ayumi Ohno)
nao_sumikawa
0
120
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
250
Uncertainty in the LLM era - Science, more than scale
gaelvaroquaux
0
730
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Practical Orchestrator
shlominoach
190
11k
Writing Fast Ruby
sferik
630
62k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Why Our Code Smells
bkeepers
PRO
340
57k
Building Applications with DynamoDB
mza
96
6.8k
[SF Ruby Conf 2025] Rails X
palkan
0
470
Code Review Best Practice
trishagee
73
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Transcript
∁ੴྒ / GMO Pepabo, Inc. 2018-08-02 OpenStackDays 2018 େنΣϒαʔϏεͷʹ͏ σϓϩΠख๏ͷมԽ͔ΒݟΔٕज़ͱจԽ
∁ੴ ྒ / @r_takaishi https://repl.info/ TAKAISHI Ryo Ruby, Go OpenStack,
Kubernetes Belgian beer
1. αʔϏεͷঢ়ଶʹԠͯ͡ɺదͳٕज़Λબ͢Δ 2. γεςϜͷϨΠϠʔຖͷϥΠϑαΠΫϧΛҙࣝ͢ Δ͜ͱͰ։ൃΛߴԽ 3. ϓϥοτϑΥʔϜͷಛੑΛཧղ͠ɺՃͰඞཁͳ ཁૉ࣮͢Δٕज़ !3 ࠓ͢͜ͱ
None
None
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 -#BB4 w $JOEFS 4DBMF*0 w *OGSBTUSVDUVSFBT$PEFXJUI5FSSBGPSN w :BP1SPEVDUT XSJUUFOCZ3VCZ
ຊ
ࠓͷςʔϚ
σϓϩΠ
σϓϩΠͱɺओʹωοτϫʔΫΛ ௨ͯ͡ఏڙ͞ΕΔ8FCΞϓϦέʔγϣ ϯͳͲͷγεςϜ։ൃఔʹ͓͍ͯɺ γεςϜΛར༻Մೳͳঢ়ଶʹ͢Δ͜ ͱͰ͋Δɻ *5༻ޠࣙయ8FCMJPࣙॻ
!13 1.γεςϜΛར༻Մೳʹ͢Δ = Ϣʔβʔ͕ར༻Ͱ͖Δ 2.ߴͰ҆ఆͨ͠σϓϩΠ => ϢʔβʔՁ্ 3.αʔϏεʹ͓͍ͯɺॏཁͳٕज़ͷҰͭ ͳͥσϓϩΠΛςʔϚͱͨ͠ͷ͔ʁ
࠷దͳσϓϩΠٕज़αʔϏεͷ نঢ়ଶʹԠͯ͡มԽ͢Δ
࣮ྫ
!16 • ϋϯυϝΠυϚʔέοτϓϥοτϑΥʔϜ • Web(Rails)ɾiOSɾAndroid • 7 NJOOF
• PushܕΛ࠾༻ • σϓϩΠઌαʔόʔίʔυΛૹΓɺΓସ͑Δ • Capistranoͱ͍͏RubyͷπʔϧΛ༻ !17 ैདྷͷσϓϩΠख๏ ᶃΞϓϦͷίʔυΛऔಘϏϧυ ᶄ֤αʔόʔ44)ͰίʔυΛૹ৴
ϓϩηε࠶ىಈ
!18 • σϓϩΠઌαʔόʔ͕૿͑ͨͱ͖ʹ͕࣌ؒԆͼΔ • ͕͔͔࣌ؒΔ = τϥϒϧͷݩ • ͭ·Γ…ʹ͍αʔόʔ͕૿͖͑ͯͨͱ͖ ʹαʔϏεͷΛ્͢ΔՄೳੑ͕͋Δ
ैདྷͷख๏ʹ͓͚Δ՝
αʔϏεͷ͕ Λ્͢Δͷආ͚͍ͨ
• PullܕσϓϩΠҠߦ • ֤αʔόʔ͕ࣗίʔυΛऔಘ͠ɺΓସ͑ʢfujiwara/stretcherʣ • Capistrano͔Βར༻͢ΔͨΊɺΓͳ͍෦ΛՃ࣮ !20 ɿͰσϓϩΠͰ͖ΔΑ͏ʹ͢Δͧʂʂʂ ᶃΞϓϦͷίʔυΛऔಘϏϧυ ᶆ֤αʔόʔ͕Λૹ৴
ϓϩηε࠶ىಈ ᶄϏϧυࡁΈΛ ετϨʔδʹอଘ ᶅσϓϩΠઌαʔόʔΫϥελ ʹରͯ͠σϓϩΠ໋ྩΛૹΔ
!21 • αʔϏεͷنɺঢ়ଶʹԠͯ͡దͳٕज़Λબ͢ Δ͜ͱͰΛҡ࣋ɾՃͤ͞Δ • Γͳ͍෦࣮࣮͠ݱ͢Δٕज़ɾͦΕΛਪ͢ ΔจԽ σϓϩΠํࣜͷΓସ͔͑ΒΘ͔Δٕज़ɾจԽ
ΞϓϦέʔγϣϯͷΘ͔ͬͨɻ ϛυϧΣΞͱ͔αʔόʔͷઃఆͱ ͔Ծαʔόʔʁ
ϨΠϠʔຖͷϥΠϑαΠΫϧΛ ҙࣝ͠ɺޮΑ͘σϓϩΠ
࣮ྫ
None
!26 • ݚڀνʔϜͱͷίϥϘϨʔγϣϯ • ϩά͔ΒະདྷͷΞΫηεසΛ༧ଌͯ͠ࣄલʹ૿ݮ • ͦͷ࣌ʑͰΞΫηεΛॲཧͰ͖Δదͳࣄલ ʹભҠ ɿΞΫηεස༧ଌΛ༻͍ͨαʔόʔ૿ݮ
!27 ܭըతεέʔϦϯάͷߏ ΞΫηεස༧ଌ ίϯϙʔωϯτ αʔόʔܭࢉɾ૿ݮ ίϯϙʔωϯτ ༧ଌ݁Ռอ࣋ ετϨʔδ IaaS Endpoint
ճɺ࣌ؒ୯ҐͰ ͦͷͷΞΫηεසΛ༧ଌ ࣌ؒʹճɺ࣍ͷ࣌ؒඞཁͳ αʔόʔΛܭࢉɺ૿ݮ ࣍ͷ࣌ؒͷ ΞΫηεස༧ଌΛऔಘ αʔόʔΛ૿ݮ ظͷ ΞΫηε༧ଌΛอଘ
!28 ΞΫηεසͱαʔόʔͷมԽ ܭըతεέʔϧɿແޮ ܭըతεέʔϧɿ༗ޮ
͏·͍͕ͬͨ͘ɺ՝͋ͬͨ
αʔόʔΛ૿࣌͢ɺ αʔϏεΠϯ͕ؒʹ߹Θͳ͍͜ͱ͕
αʔόʔىಈ͔Β αʔϏεΠϯ·ͰͷλΠϜϥά͕ ݪҼͷͭͩͬͨ
ϥΠϑαΠΫϧͷҧ͍
!33 γεςϜͷ֤ϨΠϠϥΠϑαΠΫϧ͕ͦΕͧΕҧ͏ ΞϓϦέʔγϣϯ ଟ͍ͱɺʹճʙेճೖΕସΘΔ ϛυϧΣΞ ΞϓϦέʔγϣϯΑΓมߋස͍ αʔόʔ Γํ࣍ୈ ΞϓϦέʔγϣϯɺϛυϧΣΞΑΓ͍͜ͱ͕ଟ͍
!34 αʔόʔͷσϓϩΠαΠΫϧ www image v1 www image v2 www image
v3 deleted www server v1 minne v1 www server v2 minne v1 www server v3 minne v1 deleted Golden Imageํࣜ w1VQQFUߋ৽࣌ʹΠϝʔδϏϧυ wϛυϧΣΞ(nginx, td-agent) wΞϓϦέʔγϣϯ(rails) wଈΞϓϦ͕ىಈ͢Δ deleted
!35 αʔόʔͷσϓϩΠαΠΫϧ www image v1 deleted www image v2 www
image v3 deleted www server v1 minne v1 www server v2 minne v1 www server v3 minne v1
!36 αʔόʔͷσϓϩΠαΠΫϧ www image v1 deleted www image v2 www
image v3 deleted www server v1 minne v1 www server v2 minne v1 www server v3 minne v1 Immutable Infrastructure
!37 ΞϓϦέʔγϣϯͷσϓϩΠαΠΫϧ deploy minne-app v2 www image deleted www server
minne v1 www server minne v2 www server minne v3 deploy minne-app v3 terminate server launch server & deploy latest minne
!38 ΞϓϦͱͦΕҎ֎ͰσϓϩΠํࣜΛม͑ͯΈ͚ ϛυϧΣΞ αʔόʔ ઃఆมߋ͕͋ΕΰʔϧσϯΠϝʔδΛߋ৽ αʔόʔΛೖΕସ͑ͯө (Immutable Infrastructure) ΞϓϦέʔγϣϯ αʔόʔͷίʔυΛߋ৽
αʔϏεΛ࠶ىಈͯ͠ө αʔόʔͷೖΕସ͑ෆཁͰߴ
Ұݟ͏·͘Ͱ͖͍ͯΔ͕ʜʁ
!40 σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔ www image v1 www server v1 minne v1
deploy minne-app v2 www server v1 minne v2
!41 σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔ www image v1 deleted www server v1 minne
v1 www server v1 minne v1 deploy minne-app v2 www server v1 minne v2
!42 σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔ www image v1 www server v1 minne v1
www server v1 minne v1 deploy minne-app v2 www server v1 minne v2 ΞϓϦͷόʔδϣϯ͕ҧ͏ʂ
!43 σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔ www image v1 deleted www server v1 minne
v1 www server v1 minne v1 deploy minne-app v2 www server v1 minne v2 www server v1 minne v2 αʔϏεΠϯલʹΞϓϦΛ࠷৽൛ʹ
!44 σϓϩΠͷϥΠϑαΠΫϧ͕ҧ͏ͱԿ͕ى͖Δ͔ www image v1 deleted www server v1 minne
v1 www server v1 minne v1 deploy minne-app v2 www server v1 minne v2 www server v1 minne v2 αʔϏεΠϯલʹΞϓϦΛ࠷৽൛ʹ λΠϜϥά
• αʔόʔىಈ࣌ʹ࠷৽ίʔυΛऔಘ͔ͯ͠ΒαʔϏεΠϯ • ίʔυऔಘ͚͕͔͔ͩ࣌ؒΔ • ૄ݁߹ԽΛਐΊ͖ͯͨͨΊʹൃੜ !45 ݪҼͷͭ
• ΞϓϦσϓϩΠ࣌ʹϕʔεΠϝʔδΛϏϧυ͢Δ • Πϝʔδ͔Βىಈͨ࣌͠ɺৗʹ࠷৽ίʔυͰ্͕ͬͯ͘Δ • ΞϓϦͷσϓϩΠɺαʔόʔͷೖΕସ͑ͷͲͪΒʹӨڹΛ༩͑ͳ ͍✌ !46 γϯϓϧͳղܾํ๏
!47 • ͏·͘γεςϜͷϨΠϠʔΛ͚Δ͜ͱͰɺͦΕͧ Ε͕࠷ͷํ๏ͰมߋΛՃ͑ଓ͚Δ͜ͱ͕Ͱ͖Δ • ͦΕͧΕͷ୲ϝϯόʔ͕ɺޓ͍ʹ࿈ܞ્ͭͭ͠ ͢Δ͜ͱͳ͘։ൃΛਐΊΔ͜ͱ͕Ͱ͖ΔจԽ ϨΠϠΛҙࣝͨ͠σϓϩΠ͔ΒΘ͔Δٕज़ͱจԽ
͋ΕʜΞϓϦͱΠϯϑϥΛ ͏·͚͘Δʜ Ͳ͔͜Ͱฉ͍ͨ͜ͱ͕͋Δ
$BB41BB4͡ΌΜʂ
ϓϥοτϑΥʔϜͷಛੑΛཧղ͠ɺ Γͳ͍෦ඞཁͳΒ࣮͢Δ
!51 • CaaSɿΞϓϦΛίϯςφͰϥοϓɺίϯςφҎԼ ҙࣝෆཁ • PaaSɿΞϓϦέʔγϣϯϥϯλΠϜɺར༻Ϧιʔ εΛҙࣝ͢ΕΑ͍ ૄ݁߹ҙࣝͨ͠Β$BB41BB4ʹࣅ͖ͯͨ
!52 αʔϏεͷ։ൃऀ͕ҙࣝ͢ΔͷͲͩ͜Ζ͏ʁ 7JSUVBM.BDIJOF 3VOUJNF "QQMJDBUJPO $POUBJOFS 7JSUVBM.BDIJOF 3VOUJNF "QQMJDBUJPO *BB4
1BB4 3VOUJNF "QQMJDBUJPO $BB4 1BB4
!53 • CaaSPaaSΛ͑ɺ͜Ε·Ͱ͖ͯͨ͜͠ͱ Βͳͯ͘Α͔ͬͨʁ • IaaS͔ΒCaaS/PaaSʹΓ͑Δͷ͕ਖ਼ղͩͬͨʁ • ٕज़બΛؒҧ͍͑ͯͨͷ͔ʁ ͱ͍͏͜ͱʜ
'ͦΜͳ͜ͱͳ͍
!55 NJOOFϦϦʔε࣌Ͱ͑ͨϓϥοτϑΥʔϜʁ 2006 2009 2013 minne release 2012/01 2015 PaaS
heroku Container docker "84&$Ͱ։࢝ Ұ෦Λ/ZBIҠઃ IaaS AWS Private IaaS Nyah
!56 • ϝϯόʔ͕ΞϓϦέʔγϣϯΤϯδχΞͷΈ • ϋʔυΣΞௐୡΛͨͳ͍ • AWSͷݟΛಘΔ ૉૣ͘࡞Γ࢝ΊΔͨΊͷબʢʙࠒʣ
!57 • CaaS/PaaSʹΓ͑Δ͜ͱબࢶͷ1ͭ • తΛୡ͢ΔͨΊʹࠓͱΕΔ࠷దղԿ͔ʁ • ϓϥοτϑΥʔϜͷಛੑΛཧղ͢Δ • Γͳ͍෦Λ࣮Ͱ͖Δٕज़ ॏཁͳͷඞཁʹԠͯ͡બɾ࣮Ͱ͖Δ͜ͱ
ϓϥοτϑΥʔϜΛબͿͷ ඞཁͳιϑτΣΞΛ࣮͢Δͷ ʮٕज़ʯ
1. αʔϏεͷঢ়ଶʹԠͯ͡ɺదͳٕज़Λબ͢Δ 2. γεςϜͷϨΠϠʔຖͷϥΠϑαΠΫϧΛҙࣝ͢ Δ͜ͱͰ։ൃΛߴԽ 3. ϓϥοτϑΥʔϜͷಛੑΛཧղ͠ɺՃͰඞཁͳ ཁૉ࣮͢Δٕज़ !59 ࠓͨ͜͠ͱ
!60 • IaaS্ͰޮΑ͘σϓϩΠ͢Δٕज़Λຏ͘ • ࠷ળͷબ͕Ͱ͖ΔΑ͏ʹ͢Δ • બࢶΛ૿͢ʢPrivate CaaSɺPrivate PaaSͱ͔ʣ •
બͰ͖Δٕज़ɺࣝΛΊΔ • ٕज़ͷมԽΛָ͠Ή ϖύϘΑΓΑ͍ͯͧ͘͘͠ʂ
ͬͱ͓͠Ζ͘Ͱ͖Δ 0QFO4UBDLɾ $MPVE/BUJWF
We are hiring! Senior Software Engineer Software Engineer (Site Reliability)
Senior Software Engineer (Site Reliability)