Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
大規模ウェブサービスの成長に伴うデプロイ手法の変化から見る技術と文化 / openst...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryo Takaishi
August 02, 2018
Technology
1.2k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大規模ウェブサービスの成長に伴うデプロイ手法の変化から見る技術と文化 / openstackdays2018
Ryo Takaishi
August 02, 2018
More Decks by Ryo Takaishi
See All by Ryo Takaishi
通知再考 ~ 最高のアラート通知を今改めて考える ~
takaishi
0
600
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
900
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
940
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
720
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
13
13k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
2.2k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.9k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
1k
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.7k
Other Decks in Technology
See All in Technology
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1k
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
170
自主式軟體工廠
philipz
0
230
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
230
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
230
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
1
630
Incremental HTTP
kazuho
5
2.1k
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
430
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
200
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
130
継続的なAIコスト最適化
bgpat
1
170
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Crafting Experiences
bethany
1
370
Making the Leap to Tech Lead
cromwellryan
135
10k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
480
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
310
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
570
Making Projects Easy
brettharned
120
6.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Faster Mobile Websites
deanohume
310
32k
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)