Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
大規模ウェブサービスの成長に伴うデプロイ手法の変化から見る技術と文化 / openst...
Search
Ryo Takaishi
August 02, 2018
Technology
8
1.1k
大規模ウェブサービスの成長に伴うデプロイ手法の変化から見る技術と文化 / openstackdays2018
Ryo Takaishi
August 02, 2018
Tweet
Share
More Decks by Ryo Takaishi
See All by Ryo Takaishi
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
1.7k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.4k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
870
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.5k
実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019
takaishi
2
2.5k
Consul Connect and Kubernetes Integration / cloud native meetup tokyo 7
takaishi
2
2.2k
ソフトウェアエンジニア の楽しみ / 2018-pepaboudon
takaishi
0
210
Ansible、Terraform、Packerで作るSelf-Hosted Kubernetes / JKD1812
takaishi
5
4.1k
Knative Serving 入門 / kubernetes meetup 13
takaishi
2
1.2k
Other Decks in Technology
See All in Technology
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
150
駆け出しリーダーとしての第一歩〜開発チームとの新しい関わり方〜 / Beginning Journey as Team Leader
kaonavi
0
130
AWS Community Builderのススメ - みんなもCommunity Builderに応募しよう! -
smt7174
0
190
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
510
2024AWSで個人的にアツかったアップデート
nagisa53
1
110
完全自律型AIエージェントとAgentic Workflow〜ワークフロー構築という現実解
pharma_x_tech
0
360
今年一年で頑張ること / What I will do my best this year
pauli
1
230
iPadOS18でフローティングタブバーを解除してみた
sansantech
PRO
1
150
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.6k
Copilotの力を実感!3ヶ月間の生成AI研修の試行錯誤&成功事例をご紹介。果たして得たものとは・・?
ktc_shiori
0
370
Goで実践するBFP
hiroyaterui
1
120
20250116_自部署内でAmazon Nova体験会をやってみた話
riz3f7
1
100
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
Making Projects Easy
brettharned
116
6k
Scaling GitHub
holman
459
140k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
We Have a Design System, Now What?
morganepeng
51
7.3k
Speed Design
sergeychernyshev
25
740
4 Signs Your Business is Dying
shpigford
182
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Unsuck your backbone
ammeep
669
57k
How GitHub (no longer) Works
holman
312
140k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
It's Worth the Effort
3n
183
28k
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)