SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
DevOpsを実現する為の 
Chef活用テクニック 
Yusuke Ando 
株式会社 Engine Yard 
2014/10/19! 
Chef12対応版
2! 
自己紹介 
• Engine Yard 
• Twitter: yando 
• GitHub: yandod 
• PHPer 
• RedmineのPHP移植 
CandyCane
3! 
Chef実践入門 好評発売中 
• 技術評論社 
• 豪華執筆陣 
• 増刷決定! 
• 基礎から応用まで 
• 一冊でひとまず安心
4! 
Engine Yard 
• 2006年創業 
• AWS/Azure 
• Terremark 
• Chefを活用 
• 自動構築 
• 運用サービス
5! 
国内事例例 
 
idobata.io 
 
永和システムマネジメント様のコメント: 
アプリケーション環境のカスタマイズ性が優れ、われわれのニーズに⾮非常に 
マッチするプラットフォームです。また、AWS東京データセンターを利利⽤用で 
きる点や、Engine Yardのサポート品質が⾮非常に⾼高く、安⼼心してidobata.ioを 
稼働させることができています。
6! 
国内事例例 
 
toreta.in 
 
増井 雄⼀一郎郎様 (TORETA CTO) のコメント: 
TORETAは、24時間365⽇日稼働し続ける必要がありました。 
ただ、保守運⽤用の観点で深夜の緊急対応を⽇日本のスタッフで⾏行行う 
ことは困難でした。Engine Yardのプレミアム サポートによる 
24時間365⽇日体制の運⽤用⽀支援を得ることで、安⼼心してTORETAを 
稼働し続けられています。
7! 
国内事例例 
 
a2mato.com 
 
セブンバイツ様のコメント: 
Engine Yardを使うことでサーバー管理理の⼿手間を減らし、アプリケーション開 
発に注⼒力力出来ています。Engine Yardの製品だけでなく、サポートが素晴らし 
く、最適なサーバー構成・アプリケーションの軽量量化の際に⼒力力を貸していただ 
いています。このサポートは同様のサービスベンダーには無い、素晴らしいサ 
ービスだと思います。
8! 
国内事例例 
 
svgn.biz 
 
スタジオ・アルカナ様のコメント: 
サービスの趣旨から、セキュリティレベルの⾼高いシステム環境が必要でした。 
その点で、HIPAAやSOC2の遵守にも対応可能なEngine Yardは安⼼心して稼働 
できる条件になりました。また、将来的にB to B向けのサービスを展開予定の 
ため、システム環境を容易易に構築できる仕組みと、保守運⽤用を代⾏行行できるサー 
ビスとして、Engine Yardは我々のニーズに⾮非常にマッチしていました。
9! 
導入パートナー募集中 
詳細はブースにて
Agenda! 
1. DevOpsとChef 
2. Chefの基本 
3. Chefをさらに活用するポイント
DevOpsとChef
12! 
「DevOps」知っていますか?
13! 
DevOps 
• 2009年6月 Velocity2009での講演 
• 開発者と運用者の関係改善 
• 変化に素早く対応する
14!
15!
16! 
組織の文化 
• 尊重 
• 信頼 
• 失敗に対する健全な態度 
• 相手を非難しない 
ツール 
• 自動化されたインフラ 
• バージョン管理システム 
の共有 
• ワンステップによるビル 
ドとデプロイ 
• フィーチャーフラグ 
• メトリクスの共有 
• IRCとインスタントメッ 
センジャーのbot 
DevOps
17! 
DevOps的な人気ツール・サービス
18! 
Infrastructure as Code 
• インフラの構築をコードで自動化 
• サーバーの台数などに左右されない 
• 手順書の手動実行より正確・高速 
• Chefは実現する手段の1つ
19! 
メディアでも話題に
20! 
これまでとこれから
21! 
日経SYSTEMS (2014/09/30) 
図10●直近2年間で利用した環境構築ツールの割合(N=62、複数回答)
22! 
Chef(等)を使ってビジネスの速度の変化に 
対応していきたいという機運
Chefの基本
24! 
Chef 
• 構成管理ツール 
• Chef社の製品 
• Ruby / Erlang 
• 冪等性が特長 
• 高い人気
25! 
主要なバージョン 
• Chef 0.10.x 
‒ 開発初期の 0.6 から継続していたバージョン 
• Chef 11.x 
‒ アーキテクチャとインストール方法が変更 
• Chef 12.x 
‒ 課金体系の変更、Chef SoloとClientの統合
26! 
課金体系 
• Enterprise Chef (~Chef11) 
‒ サブスクリプション方式の有償版 
‒ OSSよりもリッチなWeb UI 
• OpenSource Chef-Server 
‒ 機能が大幅に強化され、Analyticsなどの機能が追加 
• Chef Subscription 
‒ サポートの提供 
‒ レプリケーション、ハイアベイラビリティ 
‒ ホスティング 
Chef12~
27! 
採用事例 
• Engine Yard 
• Facebook 
• Prezi 
• サイバーエージェント 
• グリー
28! 
基本的な構成 
Serverにアップロード 
クックブックを書く 
クライアント起動 
クックブックを反映
29! 
サーバー無し構成(Chef Solo) 
各サーバーへクックブ 
ックを配置 
クックブックを書く 
Chef-Solo起動、反映 
※Chef Soloは廃止予定
30! 
サーバー無し構成(chef-client local) 
各サーバーへクックブ 
ックを配置 
クックブックを書く 
Chef-Client 
Local 起動、 
反映 
Chef 
Zero 
Chef 
Zero 
Chef 
Zero 
Chef Zero起動 
Chef12~
31! 
ローカルモードとChef-Zero 
• Chef Clientと通信するAPIを提供 
• データを保存しないChef Server 
• 元々はテスト用に開発された 
• 現在はローカルモードに採用 
• http://qiita.com/sawanoboly/items/ 
4f363909615d8a76e9e5 
Chef12~
32! 
基本的な流れ 
• 対象ノードへのChefのインストール 
• クックブック(レシピ)を書く 
• クックブック(レシピ)を送る 
• Chefクライアント、Chef Soloの実行
33! 
インストール 
• 現在のChefは必要なRubyなどを同梱 
• /opt/chef 配下にインストールされる 
• ChefにさらにGemを追加する際は注意
34! 
クックブック 
package apache2 do! 
action :install! 
end! 
! 
service apache2 do! 
action :start! 
end 
apache2のインストール 
apache2のサービス化
35! 
apt-get / シェルスクリプトとの違い 
• 単純なパッケージ導入以上の処理が可能 
• ohaiを使ったノード情報の取得 
• 設定ファイルの動的な生成 
• 繰り返し実行可能 → 冪等性・収束
36! 
Chef / Chef Soloの実行 
• Chef Clientのcronからの実行 
• デーモン化も一応可能 
• why run (dry run)も可能 
• knife-solo ※ローカルモードに対応予定 
• なるべく頻繁に実行するのが望ましい 
(15分~30分) 
• 実行結果をハンドラで通知
Chefをさらに活用するポイント
38! 
Chefを使っている際の悩み 
• Chefのバージョン (前出) 
• Chefの内部動作 
• クックブックの書き方、品質 
• コミュニティクックブック (Supermarket)
39! 
Chefの内部動作 
• クックブックが実行される順序 
• ファイルなどの変更タイミング 
• 上から順番に実行されない 
• リソースコレクションと収束
40! 
Chefの内部動作
41! 
詳しくはブログにて
42! 
クックブックの書き方にはみんな困る
43! 
クックブックのCIは欠かせない 
• Infrastructure as Code 
• テストのないコードはレガシーコード 
• クックブックが常に健全である事を担保 
• 単体テストを行う 
• 単体テストを継続的に実行する (CI)
44! 
クックブックのテストに使うツール 
• Berkshelf / librarian-chef 
クックブックの収集 
• foodcritic 
クックブックの規約チェック 
• Test-kitchen 
クックブックの単体テスト 
• Severspec 
サーバーの状態の単体テスト
45! 
テストスイートの構成 
クックブック クックブック 
Test Kitchen 
CI環境 Jenkins / Travis CI / Circle CI 
仮想マシン 
Vagrant 
Docker 
VirtualBox 
LXC 
VMWare 
Amazon EC2 
Azure 
FoodCritic Serverspec 
Berkshelf / librarian-chef 
Chef Solo 
Chef Client 
Chef Zero
46! 
Qiitaに詳しく乗っています
47! 
コミュニティクックブック (supermarket) 
• 人類の叡智を結集 
• 多様なプラットフォームに対応 
• 利用者が少ない 
• 作成者も少ない
48!
49! 
皆様に提案 
• クックブックを書こう 
• クックブックをテストしよう 
• コミュニティに登録しよう 
• オープンソースのフローでコード改善
50! 
しつこいようですが、 好評発売中 
• 技術評論社 
• 豪華執筆陣 
• 増刷決定! 
• 基礎から応用まで 
• 一冊でひとまず安心
51! 
又は、Engine Yardにお任せください
52! 
Engine Yard が主要なクックブックを提供 
カスタムレシピ コアレシピ
53! 
導入パートナー募集中 
詳細はブースにて
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Windows7でもchefしたい!
Windows7でもchefしたい!Windows7でもchefしたい!
Windows7でもchefしたい!Tamie YAMAMOTO
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Yoshinori Nakanishi
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Kazuto Ohara
 
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 Hideo Takahashi
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE辰徳 斎藤
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudyTakeshi Komiya
 
ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築Masahiro Wakame
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-vx-pc-club
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Takashi Kanai
 
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱Kiyotaka Oku
 
20130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.020130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.0NIFTY Cloud
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編kimulla
 
Jenkinsの導入 vol.02 Bitbucketと連携する
Jenkinsの導入 vol.02 Bitbucketと連携するJenkinsの導入 vol.02 Bitbucketと連携する
Jenkinsの導入 vol.02 Bitbucketと連携するregret raym
 
入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalkBIGLOBE Tech Talk
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-Masashi Shinbara
 
DevOps for Small Starter
DevOps for Small StarterDevOps for Small Starter
DevOps for Small Starter大要 伊藤
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみたTakeo Noda
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)佐久本正太
 
Powershellで始める.net プログラミング
Powershellで始める.net プログラミングPowershellで始める.net プログラミング
Powershellで始める.net プログラミング祐樹 夏目
 

Was ist angesagt? (20)

Windows7でもchefしたい!
Windows7でもchefしたい!Windows7でもchefしたい!
Windows7でもchefしたい!
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門
 
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
 
ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築ReVIEW & CI - ChefでCI環境構築
ReVIEW & CI - ChefでCI環境構築
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
 
20130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.020130723 ecシステムにchefを導入してみた v1.0
20130723 ecシステムにchefを導入してみた v1.0
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
 
130412 kayac-cinnamon
130412 kayac-cinnamon130412 kayac-cinnamon
130412 kayac-cinnamon
 
Jenkinsの導入 vol.02 Bitbucketと連携する
Jenkinsの導入 vol.02 Bitbucketと連携するJenkinsの導入 vol.02 Bitbucketと連携する
Jenkinsの導入 vol.02 Bitbucketと連携する
 
入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
 
DevOps for Small Starter
DevOps for Small StarterDevOps for Small Starter
DevOps for Small Starter
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみた
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Powershellで始める.net プログラミング
Powershellで始める.net プログラミングPowershellで始める.net プログラミング
Powershellで始める.net プログラミング
 

Ähnlich wie DevOpsを実現する為のChef実践テクニック Chef12対応版

第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸  開発運用の現場でのChef活用第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用Takuro Sasaki
 
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックYu Kitazume
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成Microsoft Azure Japan
 
AWS クックパッドの運用事例
AWS クックパッドの運用事例AWS クックパッドの運用事例
AWS クックパッドの運用事例Satoshi Takada
 
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as codeYukihiko SAWANOBORI
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Shota Umeda
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門Mahito Ogura
 
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤Daichi Koike
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Makoto Nishimura
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例健一 辰濱
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト健一 辰濱
 
自動化のコストパフォーマンス
自動化のコストパフォーマンス自動化のコストパフォーマンス
自動化のコストパフォーマンス裕貴 荒井
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理Oshitari_kochi
 
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~Rakuten Group, Inc.
 

Ähnlich wie DevOpsを実現する為のChef実践テクニック Chef12対応版 (20)

Dev opschef
Dev opschefDev opschef
Dev opschef
 
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸  開発運用の現場でのChef活用第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
 
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニック
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
Chef入門
Chef入門Chef入門
Chef入門
 
S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成S16 Microsoft Azure 上での Chef 環境の構成
S16 Microsoft Azure 上での Chef 環境の構成
 
AWS クックパッドの運用事例
AWS クックパッドの運用事例AWS クックパッドの運用事例
AWS クックパッドの運用事例
 
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code
 
社内Chef勉強会
社内Chef勉強会社内Chef勉強会
社内Chef勉強会
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 
Citrix eco new
Citrix eco newCitrix eco new
Citrix eco new
 
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト
 
自動化のコストパフォーマンス
自動化のコストパフォーマンス自動化のコストパフォーマンス
自動化のコストパフォーマンス
 
面白いは正義
面白いは正義面白いは正義
面白いは正義
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
 
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
 

Mehr von Yusuke Ando

ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大Yusuke Ando
 
Testing your app with Selenium on Travis CI
Testing your app with Selenium on Travis CITesting your app with Selenium on Travis CI
Testing your app with Selenium on Travis CIYusuke Ando
 
Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発Yusuke Ando
 
Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突Yusuke Ando
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Yusuke Ando
 
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツYusuke Ando
 
Travis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーションTravis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーションYusuke Ando
 
ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行Yusuke Ando
 
Shimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるShimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるYusuke Ando
 
Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境Yusuke Ando
 
Engine Yard Cloud
Engine Yard CloudEngine Yard Cloud
Engine Yard CloudYusuke Ando
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めようYusuke Ando
 
PHPの教室「foreachを極める」
PHPの教室「foreachを極める」PHPの教室「foreachを極める」
PHPの教室「foreachを極める」Yusuke Ando
 
90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室Yusuke Ando
 
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHPYusuke Ando
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室Yusuke Ando
 
4時間耐久 PHP on Heroku
4時間耐久 PHP on Heroku4時間耐久 PHP on Heroku
4時間耐久 PHP on HerokuYusuke Ando
 

Mehr von Yusuke Ando (20)

ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大
 
Testing your app with Selenium on Travis CI
Testing your app with Selenium on Travis CITesting your app with Selenium on Travis CI
Testing your app with Selenium on Travis CI
 
Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発
 
Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
 
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツ
 
Travis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーションTravis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーション
 
ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行
 
Shimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるShimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆ける
 
Paa s and oss
Paa s and ossPaa s and oss
Paa s and oss
 
New relic
New relicNew relic
New relic
 
Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境
 
Engine Yard Cloud
Engine Yard CloudEngine Yard Cloud
Engine Yard Cloud
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
 
PHPの教室「foreachを極める」
PHPの教室「foreachを極める」PHPの教室「foreachを極める」
PHPの教室「foreachを極める」
 
20121225 php
20121225 php20121225 php
20121225 php
 
90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室
 
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
 
4時間耐久 PHP on Heroku
4時間耐久 PHP on Heroku4時間耐久 PHP on Heroku
4時間耐久 PHP on Heroku
 

Kürzlich hochgeladen

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 

Kürzlich hochgeladen (8)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 

DevOpsを実現する為のChef実践テクニック Chef12対応版

  • 1. DevOpsを実現する為の Chef活用テクニック Yusuke Ando 株式会社 Engine Yard 2014/10/19! Chef12対応版
  • 2. 2! 自己紹介 • Engine Yard • Twitter: yando • GitHub: yandod • PHPer • RedmineのPHP移植 CandyCane
  • 3. 3! Chef実践入門 好評発売中 • 技術評論社 • 豪華執筆陣 • 増刷決定! • 基礎から応用まで • 一冊でひとまず安心
  • 4. 4! Engine Yard • 2006年創業 • AWS/Azure • Terremark • Chefを活用 • 自動構築 • 運用サービス
  • 5. 5! 国内事例例 idobata.io 永和システムマネジメント様のコメント: アプリケーション環境のカスタマイズ性が優れ、われわれのニーズに⾮非常に マッチするプラットフォームです。また、AWS東京データセンターを利利⽤用で きる点や、Engine Yardのサポート品質が⾮非常に⾼高く、安⼼心してidobata.ioを 稼働させることができています。
  • 6. 6! 国内事例例 toreta.in 増井 雄⼀一郎郎様 (TORETA CTO) のコメント: TORETAは、24時間365⽇日稼働し続ける必要がありました。 ただ、保守運⽤用の観点で深夜の緊急対応を⽇日本のスタッフで⾏行行う ことは困難でした。Engine Yardのプレミアム サポートによる 24時間365⽇日体制の運⽤用⽀支援を得ることで、安⼼心してTORETAを 稼働し続けられています。
  • 7. 7! 国内事例例 a2mato.com セブンバイツ様のコメント: Engine Yardを使うことでサーバー管理理の⼿手間を減らし、アプリケーション開 発に注⼒力力出来ています。Engine Yardの製品だけでなく、サポートが素晴らし く、最適なサーバー構成・アプリケーションの軽量量化の際に⼒力力を貸していただ いています。このサポートは同様のサービスベンダーには無い、素晴らしいサ ービスだと思います。
  • 8. 8! 国内事例例 svgn.biz スタジオ・アルカナ様のコメント: サービスの趣旨から、セキュリティレベルの⾼高いシステム環境が必要でした。 その点で、HIPAAやSOC2の遵守にも対応可能なEngine Yardは安⼼心して稼働 できる条件になりました。また、将来的にB to B向けのサービスを展開予定の ため、システム環境を容易易に構築できる仕組みと、保守運⽤用を代⾏行行できるサー ビスとして、Engine Yardは我々のニーズに⾮非常にマッチしていました。
  • 10. Agenda! 1. DevOpsとChef 2. Chefの基本 3. Chefをさらに活用するポイント
  • 13. 13! DevOps • 2009年6月 Velocity2009での講演 • 開発者と運用者の関係改善 • 変化に素早く対応する
  • 14. 14!
  • 15. 15!
  • 16. 16! 組織の文化 • 尊重 • 信頼 • 失敗に対する健全な態度 • 相手を非難しない ツール • 自動化されたインフラ • バージョン管理システム の共有 • ワンステップによるビル ドとデプロイ • フィーチャーフラグ • メトリクスの共有 • IRCとインスタントメッ センジャーのbot DevOps
  • 18. 18! Infrastructure as Code • インフラの構築をコードで自動化 • サーバーの台数などに左右されない • 手順書の手動実行より正確・高速 • Chefは実現する手段の1つ
  • 21. 21! 日経SYSTEMS (2014/09/30) 図10●直近2年間で利用した環境構築ツールの割合(N=62、複数回答)
  • 24. 24! Chef • 構成管理ツール • Chef社の製品 • Ruby / Erlang • 冪等性が特長 • 高い人気
  • 25. 25! 主要なバージョン • Chef 0.10.x ‒ 開発初期の 0.6 から継続していたバージョン • Chef 11.x ‒ アーキテクチャとインストール方法が変更 • Chef 12.x ‒ 課金体系の変更、Chef SoloとClientの統合
  • 26. 26! 課金体系 • Enterprise Chef (~Chef11) ‒ サブスクリプション方式の有償版 ‒ OSSよりもリッチなWeb UI • OpenSource Chef-Server ‒ 機能が大幅に強化され、Analyticsなどの機能が追加 • Chef Subscription ‒ サポートの提供 ‒ レプリケーション、ハイアベイラビリティ ‒ ホスティング Chef12~
  • 27. 27! 採用事例 • Engine Yard • Facebook • Prezi • サイバーエージェント • グリー
  • 28. 28! 基本的な構成 Serverにアップロード クックブックを書く クライアント起動 クックブックを反映
  • 29. 29! サーバー無し構成(Chef Solo) 各サーバーへクックブ ックを配置 クックブックを書く Chef-Solo起動、反映 ※Chef Soloは廃止予定
  • 30. 30! サーバー無し構成(chef-client local) 各サーバーへクックブ ックを配置 クックブックを書く Chef-Client Local 起動、 反映 Chef Zero Chef Zero Chef Zero Chef Zero起動 Chef12~
  • 31. 31! ローカルモードとChef-Zero • Chef Clientと通信するAPIを提供 • データを保存しないChef Server • 元々はテスト用に開発された • 現在はローカルモードに採用 • http://qiita.com/sawanoboly/items/ 4f363909615d8a76e9e5 Chef12~
  • 32. 32! 基本的な流れ • 対象ノードへのChefのインストール • クックブック(レシピ)を書く • クックブック(レシピ)を送る • Chefクライアント、Chef Soloの実行
  • 33. 33! インストール • 現在のChefは必要なRubyなどを同梱 • /opt/chef 配下にインストールされる • ChefにさらにGemを追加する際は注意
  • 34. 34! クックブック package apache2 do! action :install! end! ! service apache2 do! action :start! end apache2のインストール apache2のサービス化
  • 35. 35! apt-get / シェルスクリプトとの違い • 単純なパッケージ導入以上の処理が可能 • ohaiを使ったノード情報の取得 • 設定ファイルの動的な生成 • 繰り返し実行可能 → 冪等性・収束
  • 36. 36! Chef / Chef Soloの実行 • Chef Clientのcronからの実行 • デーモン化も一応可能 • why run (dry run)も可能 • knife-solo ※ローカルモードに対応予定 • なるべく頻繁に実行するのが望ましい (15分~30分) • 実行結果をハンドラで通知
  • 38. 38! Chefを使っている際の悩み • Chefのバージョン (前出) • Chefの内部動作 • クックブックの書き方、品質 • コミュニティクックブック (Supermarket)
  • 39. 39! Chefの内部動作 • クックブックが実行される順序 • ファイルなどの変更タイミング • 上から順番に実行されない • リソースコレクションと収束
  • 43. 43! クックブックのCIは欠かせない • Infrastructure as Code • テストのないコードはレガシーコード • クックブックが常に健全である事を担保 • 単体テストを行う • 単体テストを継続的に実行する (CI)
  • 44. 44! クックブックのテストに使うツール • Berkshelf / librarian-chef クックブックの収集 • foodcritic クックブックの規約チェック • Test-kitchen クックブックの単体テスト • Severspec サーバーの状態の単体テスト
  • 45. 45! テストスイートの構成 クックブック クックブック Test Kitchen CI環境 Jenkins / Travis CI / Circle CI 仮想マシン Vagrant Docker VirtualBox LXC VMWare Amazon EC2 Azure FoodCritic Serverspec Berkshelf / librarian-chef Chef Solo Chef Client Chef Zero
  • 47. 47! コミュニティクックブック (supermarket) • 人類の叡智を結集 • 多様なプラットフォームに対応 • 利用者が少ない • 作成者も少ない
  • 48. 48!
  • 49. 49! 皆様に提案 • クックブックを書こう • クックブックをテストしよう • コミュニティに登録しよう • オープンソースのフローでコード改善
  • 50. 50! しつこいようですが、 好評発売中 • 技術評論社 • 豪華執筆陣 • 増刷決定! • 基礎から応用まで • 一冊でひとまず安心
  • 52. 52! Engine Yard が主要なクックブックを提供 カスタムレシピ コアレシピ