Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~

2,266 views

Published on

第8弾 週末ランサーズ
http://weekendlancers.doorkeeper.jp/events/11216

Published in: Technology
  • Be the first to comment

Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~

  1. 1. 2014/05/24 第8弾 週末ランサーズ Tomonari NAKAMURA Infrastructure as Code ツールスタック / ヌーラボの事例 http://www.flickr.com/photos/statuelibrtynps/6276757947/
  2. 2. 自己紹介 •名前:中村知成 ( @ikikko ) •所属 •株式会社ヌーラボ •日本Jenkinsユーザ会 •推しメン:さっしー 現在、総選挙 速報1位!
  3. 3. •  • 
  4. 4. •  • 
  5. 5. •  •  • 
  6. 6. in ヌーラボ ! •アプリ寄りの開発者 •インフラ方面も関わり出す ! •Jenkinsやビルド環境の整備
  7. 7. アジェンダ •背景 •Infrastructure as Code とは •関連ツールスタック •ヌーラボでの事例
  8. 8. 背景 https://speakerdeck.com/nulabinc/yun-yong-devopsshi-dai-wosheng-kinukutameni
  9. 9. 背景 •インフラそこまで詳しくない •既存の手順書とか、シェルスクリ プトはあった •けど、見てもよく分からない><
  10. 10. サ | バ
  11. 11. 背景 •インフラ周りが整備されてると嬉 しいな •簡単に試せる環境とか •いつでも動くように、スクリプトがメ ンテされてるとか
  12. 12. ! ! ! Infrastructure as Code
  13. 13. アジェンダ •背景 •Infrastructure as Code とは •関連ツールスタック •ヌーラボでの事例
  14. 14. Infrastructure as Code •インフラをコードとして表現 •アプリ開発で培った開発方法論を、 インフラ領域にも適用可 •テスト / 継続的インテグレーション •コードレビュー / Pull Request
  15. 15. 参考 •naoya さんのブログ記事 • http://d.hatena.ne.jp/naoya/20131215/1387090668 •mizzy さんの Web+DB Press   「テスト駆動インフラ」 • http://gihyo.jp/magazine/wdpress/archive/2014/vol80 実は僕も 第3特集書いてます
  16. 16. アジェンダ •背景 •Infrastructure as Code とは •関連ツールスタック •ヌーラボでの事例
  17. 17. 各ツールの関連
  18. 18. Vagrant •VirtualBoxやAWSなどの仮想マ シンをコマンドで手軽に扱える •AnsibleやChefとも連携可能 Vagrant.configure(2)  do  |config|   !    config.vm.provision  "chef_solo"  do  |chef|          chef.cookbooks_path  =  "cookbooks"          chef.add_recipe  "httpd"      end   ! end
  19. 19. Ansible •Python製のサーバ構成管理ツール •冪等性: 何度実行しても結果は同じ •サーバ側はPythonとsshdだけ -­‐  name:  install  requirement  system  packages      action:  yum  name={{  item  }}      with_items:          -­‐  make          -­‐  gcc          -­‐  curl
  20. 20. serverspec •RSpec風のサー バ構成管理テ ストツール •稼働前 / 稼働 中のサーバに テスト describe  "#{ENV['TARGET_HOST']}.spec"  do   !    describe  service('tomcat')  do          it  {  should  be_running      }          it  {  should_not  be_enabled  }      end   !    describe  port(8080)  do          it  {  should  be_listening  }      end   ! ...
  21. 21. Jenkins •継続的インテグレーションツール •コミット時や定期実行で自動ビルド
  22. 22. ハンズオンで実践! https://www.flickr.com/photos/ochre_jelly/7066887773
  23. 23. ハンズオン +α
  24. 24. アジェンダ •背景 •Infrastructure as Code とは •関連ツールスタック •ヌーラボでの事例
  25. 25. ワークフロー http://nulab-inc.com/ja/blog/nulab/nulab-immutable-infrastructure_1/
  26. 26. Packer •イメージ (AMI) 作成ツール •Ansibleを起動 時に実行可能 {      "builders":  [{          "type":  "amazon-­‐ebs",          "region":  "us-­‐west-­‐2",          "source_ami":  "ami-­‐ccf297fc",          "instance_type":  "m1.small",          "ssh_username":  "ec2-­‐user",          "ami_name":  "base  {{isotime}}"      }],      "provisioners":  [          {              "type":  "ansible-­‐local",              "playbook_file":  "ansible/ami.yml",              "role_paths":  [                      "ansible/roles/base"              ]          }      ]   }
  27. 27. Fabric •Python製のデプロイツール •シェルコマンドを列挙していく、 シンプルな記述 @task   def  start_tomcat():      sudo('rm  -­‐f  /usr/java/tomcat/temp/*.{index,data}')      sudo('service  tomcat  start’)      print  green("Tomcat  started!!!")
  28. 28. Typetalk •JenkinsやAnsibleの実行結果を通知 •   /    プラグインも提供 ! ! ! •Hubotで、Typetalk->Jenkinsの連携も
  29. 29. チャットってそんなに重要? Infrastructure as Codeの先には DevOpsが見えてくる DevOpsで関わる全ての人が手軽に扱える チャットは、ますます重要に!
  30. 30. ご清聴 ありがとうございました!

×