Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOpsの今とこれから #init_devops

DevOpsの今とこれから #init_devops

Naoya Ito

July 19, 2013
Tweet

More Decks by Naoya Ito

Other Decks in Technology

Transcript

  1. 0CBNBਞӦͷγεςϜ •  Ҏ্ͷlϞμϯͳzΞϓϦέʔγϣϯ –  KFLZMM MFTT HJUIVC QZUIPOSVCZ K2VFSZ NPEFSOJ[S

     NVTUBDIF DPEFLJU 1VQQFU –  "84਺ઍΠϯελϯε 4 –  ϞόΠϧϑΝʔετɺϨεϙϯγϒσβΠϯ
  2. ͳͥ%FWͱ0QT͕ڠྗग़དྷ͍ͯͳ͔͔ͬͨ •  ଐਓੑ͕ൃੜͤ͞Δಛݖ –  ࠷ऴ֬ೝऀŋŋŋϨϏϡʔͰϦϦʔεΛࢭΊΔಛݖ –  σϓϩΠ୲౰ŋŋŋσϓϩΠ࡞ۀͰϦϦʔεΛࢭΊΔಛݖ –  Πϯϑϥ୲౰ŋŋŋෛՙࢼݧͰϦϦʔεΛࢭΊΔಛݖ • 

    ։ൃΛअຐ͢Δଟ͘͸ʮಛݖʯ –  ˓˓͞ΜͷνΣοΫ͕௨Βͳ͔ͬͨɺ୲౰ऀ͕͍ͳ͔ͬͨɺม ߋͰ͖Δਓ͕͍ͳ͔ͬͨŋŋŋ –  ͢΂ͯͷಛݖ͸ࣗͣͱ෗ഊ͢Δ •  ୲౰ͷʮؾ෼ʯ΍ɺରਓؔ܎ͷঢ়ଶʹۀ຿ͷਐΊқ͕͞ґଘ
  3. $IFGJTOPUPOMZࣗಈԽπʔϧ •  $IFGγεςϜΛʮ͋Δ΂͖ঢ়ଶʯʹऩଋͤ͞Δϑ ϨʔϜϫʔΫ –  αʔόʔߏஙΛࣗಈԽ͢Δ໨తͷঢ়ଶʹ͢Δ •  ˢ͜Ε͹͔Γʹண໨͕ͪ͠ –  த్൒୺ͳঢ়ଶͷαʔόʔΛ͋Δ΂͖ঢ়ଶʹ͢Δ

    –  աڈͷ".*εφοϓγϣοτ͔Β࡞ͬͨΠϯελϯεΛɺࠓݱ ࡏͷঢ়ଶʹ௥͍͔ͭͤΔ –  ো֐ରԠͰҰ࣌తʹઃఆΛม֤͑ͨछঢ়ଶΛ΋ͱʹ໭͢ –  ڞ༗͍ͯ͠Δݸਓ։ൃ༻7.ʹɺଞͷ։ൃऀ͕มߋͨ͠ঢ়ଶΛద ༻͢Δ
  4. ϓϩϏδϣχϯά'8ͷݱࡏ •  $IFG͕σϑΝΫτʹͳΓͭͭ͋Δ –  GBDFCPPL "84ͦͷଞͰͷར༻࣮੷ –  1VQQFU΋ݦࡏ •  Ұํɺ$IFGʹ΋༷ʑͳ

    όου ϊ΢ϋ΢ –  Ϩγϐͷґଘؔ܎ɺLOJGF ɺػೳཁΔཁΒͳ͍ɺ֦ுํ๏ –  :FU"OPUIFSͳ࣮૷͕͋ͬͯ΋͍͍㱺"OTJCMFFUD
  5. γϯϓϧ -­‐  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 ΋ͪΖΜႈ౳
  6. "OTJCMF •  γϯϓϧ –  σΟϨΫτϦߏ੒ͱ͔ͳ͍ –  υΩϡϝϯτগͳ͍ •  ݴޠඇґଘ – 

    Ϟδϡʔϧ͸ඪ४ೖग़ྗ +40/ •  DIFGTPMP LOJGFTPMPͬΆ͍࣮ߦΞʔΩςΫνϟΛ಺ แ –  ׌ͭύϥϨϧ࣮ߦ •  $IBUOPUJpDBUJPO౳ͷϞδϡʔϧ΋಺แ
  7.   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     / !?
  8. %FW0QT΢ΣΞͷࠓޙ •  ݱࡏͷ%FW0QT΢ΣΞ –  7BHSBOUͰ$IFGͰTFSWFSTQFDͰ+FOLJOTͰŋŋŋ –  چདྷͷಓ۩ΛࣗಈԽͯ͠૊Έ߹Θͤͯ௚઀͍͍ͬͯ͡Δײ͡ –  Πϯϑϥࣗ਎͕ޮ཰Խ͚ͨͩ͠Ͱɺ্Ͱಈ͘ΞϓϦʹ৽͍͠෇ՃՁ஋͸ఏڙ Ͱ͖͍ͯͳ͍

    •  ࣗಈԽ͢Δ͚͕ͩ%FW0QTͷΰʔϧͰ͸ͳ͍  •  ͜Ε͔Βͷ%FW0QT΢ΣΞ –  )FSPLV΍5SBWJT$*ͷΑ͏ʹʹύοέʔδ͞ΕͨΞϓϦέʔγϣϯΛ QVTI͢Δͱউखʹ˓˓ͯ͘͠ΕΔ –  ্Ͱಈ͘ΞϓϦʹ৽͍͠෇ՃՁ஋Λఏڙ͢Δ –  ൺᄻࠓ͕*BB4ͱ͢Δͱɺ1BB4Έ͍ͨͳ
  9. %PDLFS •  5IF-JOVYDPOUBJOFSFOHJOF –  -9$ "6'4 –  ΑΓϓϩάϥϚϒϧͳԾ૝؀ڥΤϯδϯ •  7.Λ೚ҙͷঢ়ଶͰ͔ͭॠ࣌ʹɺϓϩάϥϚϒϧʹ

    ࡞Γग़͢͜ͱ͕Ͱ͖Δ –  ೚ҙͷঢ়ଶʮ04͸$FOU04Ͱɺ3VCZɺ$IFGɺ3BJMT͕ೖͬͯ ΔʯFUD –  ॠ࣌7.ͷىಈ࣌ؒ͑͞ͳ͍ –  ϓϩάϥϚϒϧίʔυ͔Β
  10. 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'])
  11. ࠓޙͷ%FW0QTŋŋŋͨͿΜ •  ΠϯϑϥετϥΫνϟ͸ΑΓʮαʔϏεʯతੑ֨Λ૿͍ͯ͘͠ –  %FW΁ͷ෇ՃՁ஋޲্Λ௥ٻ͍ͯ͘͠ͱࣗવͱͦ͏ͳΔɺ͸ͣ –  ΑΓ1BB4తΤοηϯε͕ڧ͘ͳΔ%FWΤϯδχΞ͸HJUQVTI͢Δ͚ͩ  •  αʔϏεؒͰͷΞϓϦέʔγϣϯͷަ׵͕༰қʹ

    –  8FCΞϓϦ͸ࣗવͱͦͷΠϯϑϥαʔϏεΛड͚ΔͨΊͷߏ଄ʹ·ͱΊΒΕΔ •  ύοέʔδϯάɺ#VOEMF •  ີ݁߹͍ͯͨ͠ΞϓϦέʔγϣϯͱΠϯϑϥ͸ૄͰϙʔλϒϧͳ΋ͷʹ –  ྫ4USJEFS$%తͳ΋ͷͰςετͰ͖ͯɺ)FSPLVͰಈ͔͢ɺΈ͍ͨͳܗ •  ςετɺ֎෦ґଘίʔυͷCVOEMFɺΞϓϦέʔγϣϯίʔυͰҰͭͷύοέʔδ –  ݁Ռ4USJEFS$%΍5SBWJT$*ͷΑ͏ͳɺΞϓϦέʔγϣϯ޲͚4BB4ͰͷΞϓϦέʔγϣ ϯަ׵͕༰қʹͳ͍ͬͯ͘ –  ΞϓϦέʔγϣϯ͕·ΔͰϏϧυύΠϓϥΠϯͷΑ͏ʹ֤छ4BB4Λ௨ͬͯ࠷ऴతʹαʔϏ ε؀ڥʹσϓϩΠ͞ΕΔΑ͏ʹ
  12. ·ͱΊ •  %FW0QTͷ͍· –  Ϋϥ΢υԾ૝Խ͸౰ͨΓલʹͳͬͯࣗಈԽ͸ඞવʹ –  7BHSBOUɺ$IFG1VQQFUɺTFSWFSTQFDͳͲͰ*OGSBTUSVDUVSF BT$PEFͷجૅ͸ଗͬͨ –  Πϯϑϥ΋4PDJBM$PEJOH͢Δ࣌୅

    •  %FW0QTͷະདྷ –  %FW΁ͷΑΓ৽͍͠෇ՃՁ஋ͷ޲্ –  ΠϯϑϥΛΑΓʮαʔϏεʯతͳ΋ͷʹ࢓্͛Δํ޲ʹ –  %PDLFS 4USJEFS$%͔ΒͦΕ͕֞ؒݟ͑Δ