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
DevOpsの今とこれから #init_devops
Search
Naoya Ito
July 19, 2013
Technology
18k
68
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevOpsの今とこれから #init_devops
Naoya Ito
July 19, 2013
Transcript
46 slides
%FW0QTͷࠓͱ͜Ε͔Β /BPZB*UPJOBPZB!HNBJMDPN
l0CBNBGPS"NFSJDBz
None
0CBNBਞӦͷγεςϜ • Ҏ্ͷlϞμϯͳzΞϓϦέʔγϣϯ – KFLZMM MFTT HJUIVC QZUIPOSVCZ K2VFSZ NPEFSOJ[S
NVTUBDIF DPEFLJU 1VQQFU – "84ઍΠϯελϯε 4 – ϞόΠϧϑΝʔετɺϨεϙϯγϒσβΠϯ
0CBNBਞӦͱ%FW0QT • l1VMM3FRVFTUzϕʔε։ൃ – (JUIVC • %FW0QT – l*OGSBTUSBDUVSFBT$PEFz
%FW0QT
%FW0QTͷॳग़ • +"MMTQBX1)BNNPOE 'MJDLS 7FMPDJUZ
ͳͥ%FWͱ0QT͕ڠྗग़དྷ͍ͯͳ͔͔ͬͨ • ଐਓੑ͕ൃੜͤ͞Δಛݖ – ࠷ऴ֬ೝऀŋŋŋϨϏϡʔͰϦϦʔεΛࢭΊΔಛݖ – σϓϩΠ୲ŋŋŋσϓϩΠ࡞ۀͰϦϦʔεΛࢭΊΔಛݖ – Πϯϑϥ୲ŋŋŋෛՙࢼݧͰϦϦʔεΛࢭΊΔಛݖ •
։ൃΛअຐ͢Δଟ͘ʮಛݖʯ – ˓˓͞ΜͷνΣοΫ͕௨Βͳ͔ͬͨɺ୲ऀ͕͍ͳ͔ͬͨɺม ߋͰ͖Δਓ͕͍ͳ͔ͬͨŋŋŋ – ͯ͢ͷಛݖࣗͣͱഊ͢Δ • ୲ͷʮؾʯɺରਓؔͷঢ়ଶʹۀͷਐΊқ͕͞ґଘ
ଐਓੑͷഉআ • ଐਓੑ͕अຐͳΒࣗಈԽͪ͠Ό͍͍͑͡Όͳ͍ (ࠓ͓ʹ͜ ͜ͷ)
%FW0QTͷࢦ͢ͱ͜Ζ • ʮϏδωεʹ͓͍ͯࢼߦࡨޡΛଟ܁Γฦ͍ͨ͠ʯ – ʹසൟʹϦϦʔε͍ͨ͠ – සൟͳϦϦʔεͷ͛ʹͳΔͷΛഉআ͍ͨ͠ – ଐਓੑͷഉআˠࣗಈԽ –
ܧଓతͳϦϦʔεŋŋŋ$POUJOVT%FMJWFSZ ͜ͷͨΊʹDevͱOps͕ ಉ͡ํΛ͖·͠ΐ ͏ = DevOps
ΞδϟΠϧ։ൃͱܧଓతσϦόϦʔ http://www.ryuzee.com/contents/blog/4241
ܧଓతσϦόϦʔͱ *OGSBTUSVDUVSFBT$PEF
$%ͱࣗಈԽ • ܧଓత˓˓ – 㱺։ൃɾӡ༻ϓϩηεͷՄೳͳݶΓͷࣗಈԽ – ʮσϓϩΠʯͷۤ௧ΛऔΓআ͘ • ΠϯϑϥετϥΫνϟΛࣗಈԽ –
*BB4ŋŋŋϋʔυΣΞΛԾԽ͢Δ͜ͱͰzιϑτΣΞ෦ zʹ
l*OGSBTUSVDUVSFBT$PEFz • ϓϩάϥϚϒϧͳΠϯϑϥ – 7BHSBOU 1VQQFU $IFG – "NB[PO$MPVE'PSNBUJPO "840QTXPSLT
ԾԽͨ͠ͳΒίʔυͰࣗಈԽ
7BHSBOU $ vagrant init $ vagrant up -‐-‐provider=aws
7BHSBOU
$IFG ʮΫϥυͰΠϯϑϥ͕ιϑτΣΞʹͳͬͨͳΒɺϓϩϏδϣχϯάίʔ υͰॻ͚͍͍͡Όͳ͍ʯ
$IFGʹΑΔΦʔτϝʔγϣϯ
$IFGJTOPUPOMZࣗಈԽπʔϧ • $IFGγεςϜΛʮ͋Δ͖ঢ়ଶʯʹऩଋͤ͞Δϑ ϨʔϜϫʔΫ – αʔόʔߏஙΛࣗಈԽ͢Δతͷঢ়ଶʹ͢Δ • ˢ͜Ε͔Γʹண͕ͪ͠ – த్ͳঢ়ଶͷαʔόʔΛ͋Δ͖ঢ়ଶʹ͢Δ
– աڈͷ".*εφοϓγϣοτ͔Β࡞ͬͨΠϯελϯεΛɺࠓݱ ࡏͷঢ়ଶʹ͍͔ͭͤΔ – োରԠͰҰ࣌తʹઃఆΛม֤͑ͨछঢ়ଶΛͱʹ͢ – ڞ༗͍ͯ͠Δݸਓ։ൃ༻7.ʹɺଞͷ։ൃऀ͕มߋͨ͠ঢ়ଶΛద ༻͢Δ
$IFGͷϫʔΫϑϩʔ • ʮϨγϐʯΛ3VCZͰॻ͘ • LOJGFTPMPͳͲͰ࣮ߦ – SZTODͰϨγϐΛసૹ – DIFGTPMP͕ͦͷϨγϐΛ࣮ߦ –
αʔόʔߏ͕ఆٛͨ͠ঢ়ଶʹऩଋ • HJUDPNNJU
$IFG (JUIVC ʮϓϩϏδϣχϯάΛίʔυͰॻ͍ͨͳΒόʔδϣϯཧͯ͠4PDJBM$PEJOH ͢Ε͍͍͡Όͳ͍ʯ
ʮΠϯϑϥΛόʔδϣϯཧʯ
TFSWFSTQFD ʮίʔυͰॻ͍ͨΜͩͬͨΒςετॻ͚͍͍͡Όͳ͍ʯ
7BHSBOU $IFG TFSWFSTQFDͰ5%%
Πϯϑϥͷ$* via http://mizzy.org/blog/2013/03/27/1/ 6LJHVNP TFSWFSTQFD 1VQQFUʹΑΔܧଓతΠϯςάϨʔγϣϯ ʮςετॻ͍ͨΜͩͬͨΒܧଓతΠϯςάϨʔγϣϯ͢Ε͍͍͡Όͳ͍ʯ
Πϯϑϥ1VMM3FRVFTUͰߏ
%FW0QTͷ͍· • ʮΠϯϑϥ4PDJBM$PEJOHʯ – *OGSBTUSVDUVSFBT$PEF – (JUIVC – 5%%ͱܧଓతΠϯςάϨʔγϣϯ Πϯϑϥͷߏங1VMM3FRVFTUͰɺ4PDJBM$PEJOHͰɻ
ʮ֤ݸਓͷखॱॻʯͱ͍͏҉͔Β ʮڞ༗͞Εͨιʔείʔυʯͱ͍͏ܗࣜ
͜Ε͔Βͷ%FW0QT
ϓϩϏδϣχϯά'8ͷݱࡏ • $IFG͕σϑΝΫτʹͳΓͭͭ͋Δ – GBDFCPPL "84ͦͷଞͰͷར༻࣮ – 1VQQFUݦࡏ • Ұํɺ$IFGʹ༷ʑͳ
όου ϊϋ – ϨγϐͷґଘؔɺLOJGF ɺػೳཁΔཁΒͳ͍ɺ֦ுํ๏ – :FU"OPUIFSͳ࣮͕͍͍͋ͬͯ㱺"OTJCMFFUD
"OTJCMF
γϯϓϧ -‐ hosts: webserver user: vagrant
sudo: yes tasks: -‐ name: install apache action: yum pkg=httpd state=installed -‐ name: install php action: yum pkg=php state=installed $ ansible-‐playbook webapp.yml TPVSDFIUUQBQBUIFJBJOGPCMPHBCPVUBOTJCMF ͪΖΜႈ
"OTJCMF • γϯϓϧ – σΟϨΫτϦߏͱ͔ͳ͍ – υΩϡϝϯτগͳ͍ • ݴޠඇґଘ –
Ϟδϡʔϧඪ४ೖग़ྗ +40/ • DIFGTPMP LOJGFTPMPͬΆ͍࣮ߦΞʔΩςΫνϟΛ แ – ͭύϥϨϧ࣮ߦ • $IBUOPUJpDBUJPOͷϞδϡʔϧแ
"OTJCMF%FTJHO1SJODJQMFT TPVSDFIUUQTHJUIVCDPNBOTJCMFBOTJCMF
l::::::::::::::::::|_!::lヽ::::::::: ハ::::::::::::::::::::::::::::::::i、::! ノ !:::::::::::::::::l-‐ェ!;ト ヽ:::::l ´!:::::::::::::::::::::::::::::l ` ヽ 幺ク 亡 月 | ┼‐ .|]
|] l:::::::::::::::::「(;;;)ヽ、__、::レ'´l:::::::::/l、:::::::::::::l / 小巴 三l三. ヽ_ノ / こ o o !:::::::::/l:::l__,,,rタ"゙、;!)、__!::::/ノ 〉、::::::::l \ l::::/ lヽ! _ _ l;/´ ! >、::l / Che◦に絶望した!! ノノlヽ、_! r――‐┐ /_ノ:::| / l::::::>、 レ,二二ェ! /i:::::::::::l  ̄ ̄|_ /ヽ、 /\ /\ / l:::/ /::ヽ、 `ー-―-' ,ィ'::::!\:::::l (ヽ、//\/ \/ \/ \/ レ' ム-''´lヽ、 _,,./! ゙ヾ!__ヽ! ヽ´ヽ、ヽ !  ̄ レ;'´ | (,ゝ、 \ ヽ l、 /| _,,.-/´ ;; .,,,-! ヽ、 ヽ、 | | ! l / 斤'"〇 /´ ,;;:''" _,l_ ヽ ヽ/ l | l /; l、」_,,/ '' ゙;;/ ヽ、 〉 `ヽ l/ /!,r''´!/ / ';,/"゙''':;,,,,;;'' \ / ,! / l ,;; |l /`'';, ,, / ,;;''"゙'' l / !?
5SBWJT$*ศརͰ͢ΑͶ
%FW0QTΣΞͷࠓޙ • ݱࡏͷ%FW0QTΣΞ – 7BHSBOUͰ$IFGͰTFSWFSTQFDͰ+FOLJOTͰŋŋŋ – چདྷͷಓ۩ΛࣗಈԽͯ͠Έ߹Θ͍͍ͤͯͬͯ͡Δײ͡ – Πϯϑϥ͕ࣗޮԽ͚ͨͩ͠Ͱɺ্Ͱಈ͘ΞϓϦʹ৽͍͠ՃՁఏڙ Ͱ͖͍ͯͳ͍
• ࣗಈԽ͢Δ͚͕ͩ%FW0QTͷΰʔϧͰͳ͍ • ͜Ε͔Βͷ%FW0QTΣΞ – )FSPLV5SBWJT$*ͷΑ͏ʹʹύοέʔδ͞ΕͨΞϓϦέʔγϣϯΛ QVTI͢Δͱউखʹ˓˓ͯ͘͠ΕΔ – ্Ͱಈ͘ΞϓϦʹ৽͍͠ՃՁΛఏڙ͢Δ – ൺᄻࠓ͕*BB4ͱ͢Δͱɺ1BB4Έ͍ͨͳ
%PDLFS
%PDLFS • 5IF-JOVYDPOUBJOFSFOHJOF – -9$ "6'4 – ΑΓϓϩάϥϚϒϧͳԾڥΤϯδϯ • 7.Λҙͷঢ়ଶͰ͔ͭॠ࣌ʹɺϓϩάϥϚϒϧʹ
࡞Γग़͢͜ͱ͕Ͱ͖Δ – ҙͷঢ়ଶʮ04$FOU04Ͱɺ3VCZɺ$IFGɺ3BJMT͕ೖͬͯ ΔʯFUD – ॠ࣌7.ͷىಈ࣌ؒ͑͞ͳ͍ – ϓϩάϥϚϒϧίʔυ͔Β
EPDLFSSVO # Dockerfile ʹඞཁࣄ߲ॻ͍ͯŋŋŋ $ docker build –t naoya/chef_and_rails
$ docker run –d naoya/chef_and_rails # ΑΓϓϩάϥϚϒϧʹ require 'docker' docker = Docker::API.new(base_url:'http://...:4243') containers = docker.containers result = containers.create(nil, 'naoya/chef_and_rails') containers.start(result['Id'])
%PDLFSͳΒŋŋŋ • ͻͳܗ͔Βॠ࣌ʹ7.Λ࡞ΕΔɺͱ͍͏͜ͱŋŋŋ – 1BB4Έ͍ͨͳ͕؆୯ʹͭ͘ΕΔʂ – ࣮ࡍ࡞ͬͨਓ㱺%PLLV – 5SBWJT$*ͷΑ͏ͳͷ࡞ΕΔͷͰ
%PDLFSతͳͷͷະདྷ • %PDLFSతͳͷ͕ΧδϡΞϧʹ͑ΔΑ͏ʹͳΔͱŋŋŋ – ྫܧଓతσϓϩΠͷߴԽ • ΞϓϦέʔγϣϯ#VOEMFతʹ·ͱΊͯ • (JUQVTI͢Δͱ7.͕ίϐʔ͞ΕͯσϓϩΠ։࢝ •
ΞϓϦέʔγϣϯ͕σϓϩΠ͞ΕͨΒεϞʔΫςετΛ࣮ߦ • ςετ͕௨ͬͨΒຊ൪ڥσϓϩΠ
ͦΕ4USJEFS$%ͰͰ͖ΔΑ
#SJMMJBOU$POUJOVT%FQMPZNFOU github ʹ push ͕͖ͨ ͷͰ... σϓϩΠͯ͠ ςετ௨ͬͨ ͠ Herokuʹ
deploy ͢Δͥ!
ࠓޙͷ%FW0QTŋŋŋͨͿΜ • ΠϯϑϥετϥΫνϟΑΓʮαʔϏεʯతੑ֨Λ૿͍ͯ͘͠ – %FWͷՃՁ্Λٻ͍ͯ͘͠ͱࣗવͱͦ͏ͳΔɺͣ – ΑΓ1BB4తΤοηϯε͕ڧ͘ͳΔ%FWΤϯδχΞHJUQVTI͢Δ͚ͩ • αʔϏεؒͰͷΞϓϦέʔγϣϯͷަ͕༰қʹ
– 8FCΞϓϦࣗવͱͦͷΠϯϑϥαʔϏεΛड͚ΔͨΊͷߏʹ·ͱΊΒΕΔ • ύοέʔδϯάɺ#VOEMF • ີ݁߹͍ͯͨ͠ΞϓϦέʔγϣϯͱΠϯϑϥૄͰϙʔλϒϧͳͷʹ – ྫ4USJEFS$%తͳͷͰςετͰ͖ͯɺ)FSPLVͰಈ͔͢ɺΈ͍ͨͳܗ • ςετɺ֎෦ґଘίʔυͷCVOEMFɺΞϓϦέʔγϣϯίʔυͰҰͭͷύοέʔδ – ݁Ռ4USJEFS$%5SBWJT$*ͷΑ͏ͳɺΞϓϦέʔγϣϯ͚4BB4ͰͷΞϓϦέʔγϣ ϯަ͕༰қʹͳ͍ͬͯ͘ – ΞϓϦέʔγϣϯ͕·ΔͰϏϧυύΠϓϥΠϯͷΑ͏ʹ֤छ4BB4Λ௨ͬͯ࠷ऴతʹαʔϏ εڥʹσϓϩΠ͞ΕΔΑ͏ʹ
·ͱΊ • %FW0QTͷ͍· – ΫϥυԾԽͨΓલʹͳͬͯࣗಈԽඞવʹ – 7BHSBOUɺ$IFG1VQQFUɺTFSWFSTQFDͳͲͰ*OGSBTUSVDUVSF BT$PEFͷجૅଗͬͨ – Πϯϑϥ4PDJBM$PEJOH͢Δ࣌
• %FW0QTͷະདྷ – %FWͷΑΓ৽͍͠ՃՁͷ্ – ΠϯϑϥΛΑΓʮαʔϏεʯతͳͷʹ্͛Δํʹ – %PDLFS 4USJEFS$%͔ΒͦΕ͕֞ؒݟ͑Δ
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
4.7k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.9k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8.2k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.9k
20230227-engineer-type-talk.pdf
naoya
91
88k
関数型プログラミングと型システムのメンタルモデル
naoya
64
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
農家は秘伝のタレを知らない - NOBODY KNOWS THE HIDDEN SOURCE - Kaggriculture 3rd Place Solution
masspeaks
0
360
Go初心者のクラウドエンジニアが、デプロイを通して旨味を知っていく話
ryudai
1
220
An Introduction to Context Ontology Accelerator (teaching AI agents what your data means)
inariku
PRO
1
270
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
200
AWS Emulator を評価する: 手元で動く AWS の API の仕組み、始め方、確かめ方
inariku
PRO
1
650
サーバーラックは作る時代! 3Dプリンターで作る10インチラックのススメ
jacopen
1
170
自治体AIコンタクトセンター、何をどこに任せる?~Amazon Connect Customer +Amazon Bedrockの実践知~ / 20261107 Satoshi Torano
shift_evolve
PRO
1
140
Intro to Kiro (One agent, every surface) | Kiro: Zero to Hero 01
inariku
PRO
2
140
Kiro を使うコツ (頼み方、覚えさせ方、任せ方) | 目指せ Kiro マスター 09
inariku
PRO
3
170
DevOps Agentにあらゆるセキュリティインシデントのトリアージを任せた件
jirtosterone
1
160
マネジメントされる側の仕事は「文句」を言うこと
riyaamemiya
6
5k
目を覚ませ!僕らの認証情報が何者かに侵略されてるぞ
tkito
1
260
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
590
The SEO Collaboration Effect
kristinabergwall1
1
620
Odyssey Design
rkendrick25
PRO
3
950
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
2
520
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
Highjacked: Video Game Concept Design
rkendrick25
PRO
2
570
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Being A Developer After 40
akosma
PRO
92
590k