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
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
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
4.3k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.6k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.8k
20230227-engineer-type-talk.pdf
naoya
91
87k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
6
6.8k
When Token Pruning is Worse than Random: Understanding Visual Token Information in VLLMs
sansantech
PRO
0
250
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
800
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
1
190
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
380
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
690
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
120
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
710
Autonomous AI Databaseサービス・アップデート(FY27)/ adb-service-update-jp-fy27
oracle4engineer
PRO
0
100
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
220
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
190
AIエージェントを雇う前に決める5つのこと
knishioka
1
150
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
310
Utilizing Notion as your number one productivity tool
mfonobong
4
570
Why Our Code Smells
bkeepers
PRO
340
58k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Building AI with AI
inesmontani
PRO
1
1.2k
sira's awesome portfolio website redesign presentation
elsirapls
0
400
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Transcript
%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$%͔ΒͦΕ͕֞ؒݟ͑Δ