SlideShare a Scribd company logo
2014/05/24 第8弾 週末ランサーズ Tomonari NAKAMURA
Infrastructure as Code
ツールスタック / ヌーラボの事例
http://www.flickr.com/photos/statuelibrtynps/6276757947/
自己紹介
•名前:中村知成 ( @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 とは
•関連ツールスタック
•ヌーラボでの事例
Infrastructure as Code
•インフラをコードとして表現
•アプリ開発で培った開発方法論を、
インフラ領域にも適用可
•テスト / 継続的インテグレーション
•コードレビュー / Pull Request
参考
•naoya さんのブログ記事
• http://d.hatena.ne.jp/naoya/20131215/1387090668
•mizzy さんの Web+DB Press  
「テスト駆動インフラ」
• http://gihyo.jp/magazine/wdpress/archive/2014/vol80
実は僕も
第3特集書いてます
アジェンダ
•背景
•Infrastructure as Code とは
•関連ツールスタック
•ヌーラボでの事例
各ツールの関連
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
Ansible
•Python製のサーバ構成管理ツール
•冪等性: 何度実行しても結果は同じ
•サーバ側はPythonとsshdだけ
-­‐	
  name:	
  install	
  requirement	
  system	
  packages	
  
	
  	
  action:	
  yum	
  name={{	
  item	
  }}	
  
	
  	
  with_items:	
  
	
  	
  	
  	
  -­‐	
  make	
  
	
  	
  	
  	
  -­‐	
  gcc	
  
	
  	
  	
  	
  -­‐	
  curl
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	
  
!
...
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",	
  
	
  	
  	
  	
  "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"	
  
	
  	
  	
  	
  	
  	
  ]	
  
	
  	
  	
  	
  }	
  
	
  	
  ]	
  
}
Fabric
•Python製のデプロイツール
•シェルコマンドを列挙していく、
シンプルな記述
@task	
  
def	
  start_tomcat():	
  
	
  	
  sudo('rm	
  -­‐f	
  /usr/java/tomcat/temp/*.{index,data}')	
  
	
  	
  sudo('service	
  tomcat	
  start’)	
  
	
  	
  print	
  green("Tomcat	
  started!!!")
Typetalk
•JenkinsやAnsibleの実行結果を通知
•   /    プラグインも提供
!
!
!
•Hubotで、Typetalk->Jenkinsの連携も
チャットってそんなに重要?
Infrastructure as Codeの先には
DevOpsが見えてくる
DevOpsで関わる全ての人が手軽に扱える
チャットは、ますます重要に!
ご清聴
ありがとうございました!

More Related Content

PDF
Devとopsをつなぐchat ops
PDF
エンジニア目線での対外ブランディング ~ヌーラボ編~
PDF
Nulabとawsと私
PDF
継続的インテグレーションの過去・現在・そして未来 〜ヌーラボの事例と共に考える〜
PDF
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
PDF
ヌーラボのサービス開発の裏側公開しちゃいます
PPTX
アプリ開発&チーム管理で 役立った拡張機能
PPTX
開発チーム管理で役立ったVSCode拡張機能
Devとopsをつなぐchat ops
エンジニア目線での対外ブランディング ~ヌーラボ編~
Nulabとawsと私
継続的インテグレーションの過去・現在・そして未来 〜ヌーラボの事例と共に考える〜
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
ヌーラボのサービス開発の裏側公開しちゃいます
アプリ開発&チーム管理で 役立った拡張機能
開発チーム管理で役立ったVSCode拡張機能

What's hot (20)

PDF
OpenShift のある生活
PPTX
Azure周りの振り返り
PPTX
裏クラウドデザインパターン
PPTX
A/BテストをAzure×Googleアナリティクスで試してみました。
PDF
2014年のChefとInfrastructure as code
PPTX
ゼロから始めるオープンソース生活
PDF
遅いクエリと向き合う仕組み #CybozuMeetup
PDF
Infrastructure as Codeと 組織のドキュメンテーション + Immutable Infrastructure事例
PDF
Ansible softlayer
PDF
20150905 stream analytics
PPTX
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
PPTX
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
PDF
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
PPTX
テスト自動化の現場で困ること SI-Toolkitが解決すること
PDF
Micronaut on Azure 試してみた
PPTX
Vscodemeetup6
PDF
Ciじゃない方のJenkins
PDF
ポストJenkins時代のCI戦略
PPTX
Editorlt
PPTX
.NETラボ2021年10月 .NETの過去と現在
OpenShift のある生活
Azure周りの振り返り
裏クラウドデザインパターン
A/BテストをAzure×Googleアナリティクスで試してみました。
2014年のChefとInfrastructure as code
ゼロから始めるオープンソース生活
遅いクエリと向き合う仕組み #CybozuMeetup
Infrastructure as Codeと 組織のドキュメンテーション + Immutable Infrastructure事例
Ansible softlayer
20150905 stream analytics
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
テスト自動化の現場で困ること SI-Toolkitが解決すること
Micronaut on Azure 試してみた
Vscodemeetup6
Ciじゃない方のJenkins
ポストJenkins時代のCI戦略
Editorlt
.NETラボ2021年10月 .NETの過去と現在
Ad

Viewers also liked (20)

PPTX
Deploying On-Prem as SaaS: Why we go with Ansible
PDF
AnsibleによるInfrastructure as code入門
PDF
Opuscle ser multiling
PDF
PDF
Ggc scrum i jun14 slides
PPTX
FCEVs and H2 in California
PDF
Etiologia de la celulitis
PPS
Flooding and Death in Rio 2011
PDF
Cooperation needs on Field Operational Tests
PPT
Airtightphoto
PDF
Cooperation needs on Field Operational Tests: FOT Methodology
PDF
Bolyst - når gamlekjæresten prøver seg igjen
PPS
Unbelievable
PPTX
Technology Products as Timeshare VS Reading and Sports
PDF
男前豆腐店株式会社
PPT
Alternative Locations
PDF
Video in Marketing
PPTX
Palmer Presentation (Slideshare)
PPTX
Mobile Congress Presentation
Deploying On-Prem as SaaS: Why we go with Ansible
AnsibleによるInfrastructure as code入門
Opuscle ser multiling
Ggc scrum i jun14 slides
FCEVs and H2 in California
Etiologia de la celulitis
Flooding and Death in Rio 2011
Cooperation needs on Field Operational Tests
Airtightphoto
Cooperation needs on Field Operational Tests: FOT Methodology
Bolyst - når gamlekjæresten prøver seg igjen
Unbelievable
Technology Products as Timeshare VS Reading and Sports
男前豆腐店株式会社
Alternative Locations
Video in Marketing
Palmer Presentation (Slideshare)
Mobile Congress Presentation
Ad

Similar to Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~ (20)

PDF
【Camphor ×サイボウズ】selenium勉強会
PDF
Visual Studioで始めるTypeScript開発入門
PPTX
DeNAのサーバー"コード"レスアーキテクチャ
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
アセットビルドパイプラインについて考えてみる
PDF
TDUCTFの実行基盤
PDF
Play jjug2012spring
PDF
Redmine Ansible
PDF
恋するJenkins
PPTX
次世代エンタープライズの開発環境をライブで読み解く
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
Android 開発, 運用時に使いたいライブラリやサービスの紹介
PDF
Room metro Tokyo #3 発表資料です。
PPTX
今さら聞けない人のためのDevOps超入門
PDF
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
PDF
Aws privte20110406 arai
PDF
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
【Camphor ×サイボウズ】selenium勉強会
Visual Studioで始めるTypeScript開発入門
DeNAのサーバー"コード"レスアーキテクチャ
今さら聞けない人のためのDevOps超入門
アセットビルドパイプラインについて考えてみる
TDUCTFの実行基盤
Play jjug2012spring
Redmine Ansible
恋するJenkins
次世代エンタープライズの開発環境をライブで読み解く
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Room metro Tokyo #3 発表資料です。
今さら聞けない人のためのDevOps超入門
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
Aws privte20110406 arai
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)

More from ikikko (19)

PDF
SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
PDF
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
PDF
スクラム風でのつまずき体験から学んだこと
PDF
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
PDF
Jenkinsユーザカンファレンス2015 前座資料
PDF
Jenkinsプラグインの中身を覗いてみよう
PDF
Jenkins実践入門のnext step
PDF
JenkinsによるCIの導入
PPTX
レガシーコード改善ガイド輪読会 第9章
PPTX
モテBTS ~ backlog ~
PDF
Google Apps Scirpt勉強会 #1
PDF
G*ワークショップ+忘年LT大会
PPTX
エルシャダイで学ぶ、大丈夫な「ビルド通知」
PDF
今から始めるGoogle apps scirpt
PDF
引越しのタスクをBTSで管理したときのお話
PDF
渋谷の端っこでBTSをさけぶ ~とある会社の開発環境~の紹介
PDF
リファクタリング勉強会 第2回
PDF
Yet anothor プロジェクト管理ツール ~Backlog~
PDF
初めてのプラグイン開発
SCRUMMASTER THE BOOKで広がるスクラムマスターの世界
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
スクラム風でのつまずき体験から学んだこと
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsプラグインの中身を覗いてみよう
Jenkins実践入門のnext step
JenkinsによるCIの導入
レガシーコード改善ガイド輪読会 第9章
モテBTS ~ backlog ~
Google Apps Scirpt勉強会 #1
G*ワークショップ+忘年LT大会
エルシャダイで学ぶ、大丈夫な「ビルド通知」
今から始めるGoogle apps scirpt
引越しのタスクをBTSで管理したときのお話
渋谷の端っこでBTSをさけぶ ~とある会社の開発環境~の紹介
リファクタリング勉強会 第2回
Yet anothor プロジェクト管理ツール ~Backlog~
初めてのプラグイン開発

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