Δ ι ϑ τ Σ Ξ ͱ I n f r a s t r u c t u re a s C o d e ࠃ ཱ ݚ ڀ ։ ൃ ๏ ਓ ใ ௨ ৴ ݚ ڀ ػ ߏ ઌ Պ ֶ ٕ ज़ େ ֶ Ӄ େ ֶ ౬ ଜ ཌྷ / Ts u b a s a Y U M U R A @ y u m u 1 9 S I G P X 2 0 1 6 / 0 2 / 2 7
0 2 / 2 7 S p r i n g O S • StarBEDαʔό܈Λޮతʹར༻͢ΔͨΊͷιϑτΣΞ܈ • Power Manager: αʔόͷిݯཧ • Switch Manager: VLANઃఆɺϙʔτઃఆΛཧ • Experiment Resource Manager: ϊʔυཧ 10 T. Miyachi, K. Chinen, Y. Shinoda, “StarBED and SpringOS: Large-scale General Purpose Network Testbed and Supporting Software”
0 2 / 2 7 C h e f • ઃఆϑΝΠϧͷͱ͓ΓαʔόΛߏங͢Δπʔϧ • Ϩγϐ(Ruby)ʹखॱΛهड़(ྉཧͷϝλϑΝʔ) 13 # Cookbook Name:: railsapp_cookbook # Recipe:: user_ops user 'ops' do action :create supports :manage_home => true home "/home/ops" shell "/bin/bash" end http://easyramble.com/customize-own-chef-cookbooks-recipes.html
0 2 / 2 7 A n s i b l e • ઃఆϑΝΠϧͷͱ͓ΓαʔόΛߏங͢Δπʔϧ • ChefʹࣅͯΔ(SSHར༻ͰΤʔδΣϯτϨε) • playbook.ymlʹखॱΛهड़ 14 -‐ hosts: test-‐servers become: yes tasks: -‐ name: be sure httpd is installed yum: name=httpd state=installed -‐ name: be sure httpd is running and enabled service: name=httpd state=started enabled=yes http://yteraoka.github.io/ansible-tutorial/
0 2 / 2 7 D o c k e r • ίϯςφܕԾԽٕज़ • ϗετͱΧʔωϧΛڞ༗͍ͯ͠ΔͷͰϋΠύʔόΠβ ܕԾԽ(VMware)ΑΓܰྔ • Dockerhub(ϦϙδτϦ) • ΠϝʔδΛpull/push • Dockerfile • هड़ͨ͠ͱ͓ΓʹίϯςφΛߏங • Docker Compose • ෳཧ 16
0 2 / 2 7 I n f r a s t r u c t u re a s C o d e • Πϯϑϥ(αʔό)ڥઃఆΛίʔυͰهड़ • खॱॻɺൿͷλϨ(γΣϧεΫϦϓτ)͔Βͷ٫ • ႈੑ(͖ͱ͏͍ͤ)ɿԿճͬͯಉ݁͡ՌʹͳΔ • ChefɺVagrant͕·͖ͬͯͨ2012ࠒ͔Βҙࣝ͞Ε ͩͨ͠(ݸਓͷײͰ͢) 17
0 2 / 2 7 I n f r a s t r u c t u re a s C o d e • Immutable Infrastructure • Immutable: ෆมͷ • ex. Immutable Array • ෆมͷΠϯϑϥ • มߋΛՃ͑Δ߹ɺΠϯϑϥΛमਖ਼ͤͣʹίʔυΛ मਖ਼ͯ͠࡞Γͳ͓͢ • ԾԽͷීٴɺAWSͳͲͷIaaSɺCIͱͷ૬ੑ 19