SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
Yusuke Ando
株式会社 Engine Yard
2014/06/13!
DevOpsを実現する為の
Chef活用テクニック
2!
• Twitter: yando
• GitHub: yandod
• PHPer
• CandyCane
• 「懇親会 ピザ 計算」
• Oculus Rift / Unity
自己紹介
3!
• 技術評論社
• 豪華執筆陣
• 増刷決定!
• 基礎から応用まで
• 一冊でひとまず安心
Chef実践入門 好評発売中
4!
• 2006年創業
• AWS/Azure
• Terremark
• Chefを活用
• 自動構築
• 運用サービス
Engine Yard
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!
• 2009年6月 Velocity2009での講演
• 開発者と運用者の関係改善
• 変化に素早く対応する
DevOps
14!
15!
16!
組織の文化
• 尊重
• 信頼
• 失敗に対する健全な態度
• 相手を非難しない
ツール
• 自動化されたインフラ
• バージョン管理システム
の共有
• ワンステップによるビル
ドとデプロイ
• フィーチャーフラグ
• メトリクスの共有
• IRCとインスタントメッ
センジャーのbot
DevOps
17!
• インフラの構築をコードで自動化
• サーバーの台数などに左右されない
• 手順書の手動実行より正確・高速
• Chefは実現する手段の1つ
Infrastructure as Code
18!
メディアでも話題に
19!
これまでとこれから
20!
Chef(等)を使ってビジネスの速度の変化に
対応していきたいという機運
Chefの基本
22!
• 構成管理ツール
• v11.12
• Ruby製
• 冪等性が特長
• 高い人気
Chef
23!
• Engine Yard
• Facebook
• Prezi
• サイバーエージェント
• グリー
採用事例
24!
基本的な構成
クックブックを書く
Serverにアップロード
クライアント起動
クックブックを反映
25!
サーバー無し構成(Chef Solo)
クックブックを書く
各サーバーへクックブ
ックを配置
Chef-Solo起動、反映
26!
• 対象ノードへのChefのインストール
• クックブック(レシピ)を書く
• クックブック(レシピ)を送る
• Chefクライアント、Chef Soloの実行
基本的な流れ
27!
• gem install chef は古い手法
• 現在のChefは必要なRubyなどを同梱
• /opt/chef 配下にインストールされる
• ChefにさらにGemを追加する際は注意
インストール
28!
クックブック
package "apache2" do!
action :install!
end!
!
service "apache2" do!
action :start!
end	
apache2のインストール
apache2のサービス化
29!
• 単純なパッケージ導入以上の処理が可能
• ohaiを使ったノード情報の取得
• 設定ファイルの動的な生成
• 繰り返し実行可能 → 冪等性・収束
apt-get / シェルスクリプトとの違い
30!
• Chef Clientのcronからの実行
• デーモン化も一応可能
• why run (dry run)も可能
• knife-solo
• なるべく頻繁に実行するのが望ましい
Chef / Chef Soloの実行
Chefをさらに活用するポイント
32!
• Chefのバージョン
• Chefの内部動作
• クックブックの書き方、品質
• コミュニティクックブック
Chefを使っている際の悩み
33!
Chef0.8, Chef10, Chef11 の違い
34!
• クックブックが実行される順序
• ファイルなどの変更タイミング
• 上から順番に実行されない
• リソースコレクションと収束
Chefの内部動作
35!
Chefの内部動作
36!
詳しくはブログにて
37!
クックブックの書き方にはみんな困る
38!
• Infrastructure as Code
• テストのないコードはレガシーコード
• クックブックが常に健全である事を担保
• 単体テストを行う
• 単体テストを継続的に実行する (CI)
クックブックのCIは欠かせない
39!
• Berkshelf / librarian-chef
クックブックの収集
• foodcritic
クックブックの規約チェック
• Test-kitchen
クックブックの単体テスト
• Severspec
サーバーの状態の単体テスト
クックブックのテストに使うツール
40!
テストスイートの構成
CI環境 Jenkins / Travis CI / Circle CI
クックブック クックブック
Test Kitchen
仮想マシン
Vagrant
VirtualBox
LXC
VMWare
Amazon EC2
FoodCritic Serverspec
Berkshelf / librarian-chef
Chef Solo
Chef Client
Chef Zero
41!
Qiitaに詳しく乗っています
42!
• 人類の叡智を結集
• 多様なプラットフォームに対応
• 利用者が少ない
• 作成者も少ない
コミュニティクックブック
43!
44!
• クックブックを書こう
• クックブックをテストしよう
• コミュニティに登録しよう
• オープンソースのフローでコード改善
皆様に提案
45!
又は、Engine Yardにお任せください
46!
導入パートナー募集中
詳細はブースにて
Thank you!

Mais conteúdo relacionado

Mais procurados

Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Toshiaki Maki
 
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsugSpring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Toshiaki Maki
 

Mais procurados (20)

裏クラウドデザインパターン
裏クラウドデザインパターン裏クラウドデザインパターン
裏クラウドデザインパターン
 
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazugAzure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
Azure DevOps × スクラム で実現するプロダクト開発のポイント #dotnetlab #jazug
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
 
Azure Web Apps と Azure Mobile Apps
Azure Web Apps とAzure Mobile AppsAzure Web Apps とAzure Mobile Apps
Azure Web Apps と Azure Mobile Apps
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
GitHubEnterpriseからBitbucket(Stash) への移行事例
GitHubEnterpriseからBitbucket(Stash) への移行事例GitHubEnterpriseからBitbucket(Stash) への移行事例
GitHubEnterpriseからBitbucket(Stash) への移行事例
 
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編 コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
 
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsugSpring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
Spring4とSpring Bootで作る次世代Springアプリケーション #jjug #jsug
 
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
 
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
 
OsakaArchVizCamp#1 - UE4 Introduction
OsakaArchVizCamp#1 - UE4 IntroductionOsakaArchVizCamp#1 - UE4 Introduction
OsakaArchVizCamp#1 - UE4 Introduction
 
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)
 
インフラエンジニアに送る Visual Studio Code ~Azure 編~
インフラエンジニアに送る Visual Studio Code ~Azure 編~インフラエンジニアに送る Visual Studio Code ~Azure 編~
インフラエンジニアに送る Visual Studio Code ~Azure 編~
 
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
 
Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetup
 
OsakaArchVisCamp#1 - UE4 on OculusQuest
OsakaArchVisCamp#1 - UE4 on OculusQuestOsakaArchVisCamp#1 - UE4 on OculusQuest
OsakaArchVisCamp#1 - UE4 on OculusQuest
 
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しDevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
 
AWS Device Farm を Jenkins CI から叩いてみた
AWS Device Farm を Jenkins CI から叩いてみたAWS Device Farm を Jenkins CI から叩いてみた
AWS Device Farm を Jenkins CI から叩いてみた
 
Container deployment on Azure
Container deployment on AzureContainer deployment on Azure
Container deployment on Azure
 
Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具
 

Semelhante a Dev opschef

DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版
Yusuke Ando
 
AWS クックパッドの運用事例
AWS クックパッドの運用事例AWS クックパッドの運用事例
AWS クックパッドの運用事例
Satoshi Takada
 
HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編
Monaca
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Kentaro Matsumae
 

Semelhante a Dev opschef (20)

DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版
 
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックDevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニック
 
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
第2回 JAWS−UG 神戸  開発運用の現場でのChef活用第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用
 
ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!ChefとOpsWorksで EC2 楽チンクッキング!
ChefとOpsWorksで EC2 楽チンクッキング!
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト
 
20140627_packer
20140627_packer20140627_packer
20140627_packer
 
Arukas meet Mesos/Marathon
Arukas meet Mesos/MarathonArukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
AWS クックパッドの運用事例
AWS クックパッドの運用事例AWS クックパッドの運用事例
AWS クックパッドの運用事例
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
さくらのクラウドフォーメーション with Chef [XEgg session]
さくらのクラウドフォーメーション with Chef [XEgg session]さくらのクラウドフォーメーション with Chef [XEgg session]
さくらのクラウドフォーメーション with Chef [XEgg session]
 
HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編HTML5ハイブリッド アプリ開発実践編
HTML5ハイブリッド アプリ開発実践編
 
喋って、DEMOで 伝える 僕がHerokuを使う理由
喋って、DEMOで 伝える 僕がHerokuを使う理由喋って、DEMOで 伝える 僕がHerokuを使う理由
喋って、DEMOで 伝える 僕がHerokuを使う理由
 
Micronaut on Azure 試してみた
Micronaut on Azure 試してみたMicronaut on Azure 試してみた
Micronaut on Azure 試してみた
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
 
AWS Startup Use Cases 2015
AWS Startup Use Cases 2015AWS Startup Use Cases 2015
AWS Startup Use Cases 2015
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
 

Mais de 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 CI
Yusuke Ando
 
Travis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テストTravis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テスト
Yusuke 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
 
PHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテストPHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテスト
Yusuke Ando
 
Shimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるShimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆ける
Yusuke Ando
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
Yusuke Ando
 
90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室
Yusuke Ando
 

Mais de 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
 
Travis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テストTravis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テスト
 
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への移行
 
PHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテストPHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテスト
 
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
 

Dev opschef