2014/05/24 第8弾 週末ランサーズ Tomonari NAKAMURA
Infrastructure as Code
ツールスタック / ヌーラボの事例
http://www.flickr.com/photos/statuelibrty...
自己紹介
•名前:中村知成 ( @ikikko )
•所属
•株式会社ヌーラボ
•日本Jenkinsユーザ会
•推しメン:さっしー 現在、総選挙
速報1位!
• 
• 
• 
• 
• 
• 
• 
in ヌーラボ
!
•アプリ寄りの開発者
•インフラ方面も関わり出す
!
•Jenkinsやビルド環境の整備
アジェンダ
•背景
•Infrastructure as Code とは
•関連ツールスタック
•ヌーラボでの事例
背景
https://speakerdeck.com/nulabinc/yun-yong-devopsshi-dai-wosheng-kinukutameni
背景
•インフラそこまで詳しくない
•既存の手順書とか、シェルスクリ
プトはあった
•けど、見てもよく分からない><
サ
|
バ
背景
•インフラ周りが整備されてると嬉
しいな
•簡単に試せる環境とか
•いつでも動くように、スクリプトがメ
ンテされてるとか
!
!
!
Infrastructure
as Code
アジェンダ
•背景
•Infrastructure as Code とは
•関連ツールスタック
•ヌーラボでの事例
Infrastructure as Code
•インフラをコードとして表現
•アプリ開発で培った開発方法論を、
インフラ領域にも適用可
•テスト / 継続的インテグレーション
•コードレビュー / Pull Request
参考
•naoya さんのブログ記事
• http://d.hatena.ne.jp/naoya/20131215/1387090668
•mizzy さんの Web+DB Press  
「テスト駆動インフラ」
• http://gihyo....
アジェンダ
•背景
•Infrastructure as Code とは
•関連ツールスタック
•ヌーラボでの事例
各ツールの関連
Vagrant
•VirtualBoxやAWSなどの仮想マ
シンをコマンドで手軽に扱える
•AnsibleやChefとも連携可能
Vagrant.configure(2)	
  do	
  |config|	
  
!
	
  	
  conf...
Ansible
•Python製のサーバ構成管理ツール
•冪等性: 何度実行しても結果は同じ
•サーバ側はPythonとsshdだけ
-­‐	
  name:	
  install	
  requirement	
  system	
  pac...
serverspec
•RSpec風のサー
バ構成管理テ
ストツール
•稼働前 / 稼働
中のサーバに
テスト
describe	
  "#{ENV['TARGET_HOST']}.spec"	
  do	
  
!
	
  	
  descr...
Jenkins
•継続的インテグレーションツール
•コミット時や定期実行で自動ビルド
ハンズオンで実践!
https://www.flickr.com/photos/ochre_jelly/7066887773
ハンズオン +α
アジェンダ
•背景
•Infrastructure as Code とは
•関連ツールスタック
•ヌーラボでの事例
ワークフロー
http://nulab-inc.com/ja/blog/nulab/nulab-immutable-infrastructure_1/
Packer
•イメージ (AMI)
作成ツール
•Ansibleを起動
時に実行可能
{	
  
	
  	
  "builders":	
  [{	
  
	
  	
  	
  	
  "type":	
  "amazon-­‐ebs",...
Fabric
•Python製のデプロイツール
•シェルコマンドを列挙していく、
シンプルな記述
@task	
  
def	
  start_tomcat():	
  
	
  	
  sudo('rm	
  -­‐f	
  /usr/jav...
Typetalk
•JenkinsやAnsibleの実行結果を通知
•   /    プラグインも提供
!
!
!
•Hubotで、Typetalk->Jenkinsの連携も
チャットってそんなに重要?
Infrastructure as Codeの先には
DevOpsが見えてくる
DevOpsで関わる全ての人が手軽に扱える
チャットは、ますます重要に!
ご清聴
ありがとうございました!
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Upcoming SlideShare
Loading in …5
×

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

2,015 views
2,010 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,015
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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. ご清聴 ありがとうございました!

×