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
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
590
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
900
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
940
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
680
どうやればインシデント対応能力を鍛えられるのか? / 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
「大丈夫そう?」をObservabilityで確かめる
mrmtsu
0
240
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
100
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
620
AI coding 整合正規方法
philipz
0
580
OpenClawでAzure DevOpsのWiki更新を自動化する - クラウドAIだけでは届かない場所へ
yutakaosada
0
130
Antigravity SDK for the Java Developer
glaforge
0
240
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
340
Meet AgentCore Identity Consent Portal
hironobuiga
2
140
Coil3を内部実装から読み解く~キャッシュ戦略とAVIF画像の描画〜/nikkei-tech-talk50
nikkei_engineer_recruiting
0
180
The kernel report
ennael
PRO
1
150
Confitura 2026
logico_jp
0
110
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
430
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Believing is Seeing
oripsolob
1
230
How STYLIGHT went responsive
nonsquared
100
6.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
How to build a perfect <img>
jonoalderson
1
6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
250
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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)