第2回 JAWS−UG 神戸  開発運用の現場でのChef活用
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

第2回 JAWS−UG 神戸 開発運用の現場でのChef活用

  • 4,241 views
Uploaded on

セッションタイトル:「開発運用の現場でのChef活用。」

セッションタイトル:「開発運用の現場でのChef活用。」
簡単な説明:SIerの現場での、Chef活用について。Knife-Solo,ChefServer,OpsWorksの中から、どういった観点で選んだのか?またインフラ管理とアプリ管理の狭間での、ChefとCapistranoの使い分けについて。インフラの構成管理とアプリのデプロイとAutoScalingの為のAMI化をどう考えるか?一緒に悩みましょう!!

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment

Views

Total Views
4,241
On Slideshare
2,444
From Embeds
1,797
Number of Embeds
16

Actions

Shares
Downloads
27
Comments
0
Likes
17

Embeds 1,797

http://d.hatena.ne.jp 952
http://benkana.hatenadiary.jp 321
http://blog.cloudpack.jp 303
https://twitter.com 80
http://blog.hatena.ne.jp 48
http://yoshidashingo.hatenablog.com 27
http://hatenatunnel.appspot.com 16
http://blog.takuros.net 14
http://jfeeds.carsmantra.com 12
http://www.feedspot.com 9
http://cloud.feedly.com 6
http://3449707904234438373_ebb5d0aa9dae40f61c46202be459da9b0f197f5a.blogspot.com 4
http://webcache.googleusercontent.com 2
http://54.249.80.26 1
http://s.deeeki.com 1
http://192.168.33.10 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 第2回 JAWS­UG 神戸 OpsWorks (Chef) 特集 ! 開発運用の現場での Chef活用 2013年7月6日 NRIネットコム株式会社 佐々木拓郎
  • 2. 本日のアジェンダ ‣ 自己紹介(5分) ‣ SIerの現場でのChef活用(15分) ‣ 自動化の先に(15分) ‣ Q&A(5分) #jawsug
  • 3. ✦ プロフィール ‣ NRIネットコム株式会社 Webクラウド事業部 ‣ Twitter: @katotaku, @dkfj(AWS関係はこちら) ‣ Facebook: takuro.sasaki ‣ blog: http://d.hatena.ne.jp/dkfj/ ‣ 好きなAWSサービス: S3,SQS ★ 備考 ‣ 認定スクラム・マスター ‣ AWS認定ソリューションアーキテクト- アソシエイトレベル @katotaku 自己紹介: 佐々木拓郎
  • 4. NRIネットコム ✦ NRIグループで唯一関西を本社とする会社 ‣ Webシステムを得意としているシステム会社 ‣ 設計開発から運用まで全て行う為、 アプリケーション・インフラエンジニアが一杯いる ‣ Web系の仕事が多いため、ディレクター・デザイナーも一杯!! ‣ 大阪本社だけど、東京の方が人が多い。でも関西Love
  • 5. NRIネットコムとAWSと私 • 2006年 米国の会社に出向中に、Amazon S3と出会うもEC2はスルー • 2007年 EC2が仮想サーバということを知って使いはじめる • 2008年 ブログでAWSのことを書き始める ✦ 2009年 会社の一部システムで、EC2を利用し始める ✦ 2010年 iPadを使った「モバイル会議」システムのインフラにAWSを採用 ✦ 2011年 既存のお客様にも、徐々に勧め始める ✦ 2012年 AWSソリューションとして本格的に営業開始 ✦ 2013年 趣味で使っていたものが本職になる。 ← イマココ
  • 6. SIerの現場での Chef活用
  • 7. Chefとは? インフラの構築・管理を自動化する為の フレームワーク
  • 8. Chefの基本 • Ruby製のサーバー設定の自動化ツール • レシピと呼ばれる手順書を元にサーバを設定 • レシピを含め設定情報をまとめたものがクックブック Infrastructure as Code インフラをコードで制御する
  • 9. と言ったものの Too Many Chefs どれを選べば良いの? http://www.flickr.com/photos/pvsbond/2256809428/
  • 10. Chefの種類 分類 概要 OSS Chef •オープンソース版 •自前で管理 Hosted Chef •Opscode社によるSaaS版 •管理台数に応じて、課金される Private Chef •Hosted Chefと同等の機能をプライベート環境で提供。 •エンタープライズ向け 参照:Chef | Opscode http://www.opscode.com/chef/
  • 11. Chefの種類 参照:Chef | Opscode http://www.opscode.com/chef/ 種類 概要 機能 Chef Server •サーバ/クライアント型 •構築が少し大変 多い Chef zero •軽量版 Chef Server •認証/データ永続化/GUIなし Chef solo •スタンドアロン型 •Knife soloと組み合わせると便利 Chef apply •Recipe単位で利用出来る 少ない OpsWorks •Chef soloをベースにしたAmazonの独自サービス 別物
  • 12. Chef Server/Client 参照:運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた http://d.hatena.ne.jp/dkfj/20130404/1365048462 chef server chef client chef client chef client chef clientがrecipieを取得&実行 chef serverのRecipeを 問い合わせ&実行 ノード情報の保存
  • 13. Chef Solo 参照:運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた http://d.hatena.ne.jp/dkfj/20130404/1365048462 chef solo ローカルのRecipeを元に実行
  • 14. Chef Solo + Knife Solo 参照:運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた http://d.hatena.ne.jp/dkfj/20130404/1365048462 chef solo knife solo から リモートで実行 knife solo knife soloからRecipeを 転送&実行 chef solo chef solo
  • 15. OpsWorks 参照:運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた http://d.hatena.ne.jp/dkfj/20130404/1365048462 chef solo knife solo から リモートで実行 OpsWorks knife soloからRecipeを 転送&実行 chef solo chef solo ノード情報の保存
  • 16. Chefのレイヤー ミドル アプリ OS ネットワーク OS&ミドルウェアの管理 • パッケージの管理 • 設定ファイルの管理 • サービスの管理 • ユーザの管理 • etc. 参照:サーバ構築・デプロイの自動化の話。或いはChefとCapistranoの素敵な関係 http://d.hatena.ne.jp/dkfj/20130425/1366852899
  • 17. Chefのレイヤー(実は) ミドル アプリ OS ネットワーク • checkout  • migrate  • symlink  • restart  Capistrano風のアプリ・デプロイ機能 参照:deploy — Chef Docs http://docs.opscode.com/resource_deploy.html
  • 18. OpsWorksのレイヤー ミドル アプリ OS ネットワーク • ネットワーク構築  • サーバ調達 • ミドルウェア設定 • アプリのdeploy  OpsWorks 全てのレイヤーを担当 (扱えるリソースは、まだ限定的)
  • 19. 何を選んだのか? Chef Server & Client
  • 20. 理由 • AWS以外のシステム構築も行う    OpsWorksが対象外に • 管理するサーバ台数/種類が多い    Chef soloだと、少ししんどい • サーバの状態を管理したい    Chef Serverを選択
  • 21. レシピは、どうやって作っているか? Community Cookbook • 大抵のプロダクトがある • 環境面の考慮が多く複雑 Custum Cookbook • 全部自前 • シンプルに書ける Community Cookbookを参考に、 独自でレシピを書き起こし。 Community or Custum Cookbook?
  • 22. ディストリビューションの選択について ディストリビュ ーション メリット ・デメリット Amazon Linux AMI •AWSのサポート対象 •無料 •RHEL互換 •AWS上でしか動かない Red Hat Enterprise Linux •サポート有り •サードパーティ製品の動作保証 •有料 CentOS •無料 •RHEL互換 •一時期、更新が停滞していた 開発環境は、Vagrantにしたい RHEL/CentOSを基本にすることを検討中
  • 23. アプリのリリース Chefのリリース機能は使わず • リリース専用ツールの方が、細かい制御が出来る    言語ごとに最適されたロールバック機能、DBマイグレーション機能 • 既にノウハウが蓄積されている    Maven,Capistrano • そもそもChefのリリース機能を知らなかった    当面は、動向を注視する
  • 24. プロジェクトの現場での使い方 ローカル開発環境 ステージング環境 Chef Server 本番サーバ 本番サーバ 本番サーバ •Chef開発、修正  •サーバの動作テスト •Chef修正 •サーバの動作テスト  •アプリ含めてのテスト ①テスト済みレシピの アップロード ②レシピを Gitに登録 ③レシピを Chef Serverに ダウンロード ④レシピを Chef Serverに 登録 ⑤Capistranoを 使いリリース対象サーバの Chef Clientをキック ⑥Chef Clientにより最新の レシピが取得され反映 ポイント • Recipeはgitに集約 • Chef Clientの定期起動していない
  • 25. 悩みどころ • AWSのAutoScaleを使っている場合は?    AMI化をどう考えるか? • アプリのリリースは、どうするの?    何を使うの? • ChefのRecipeのテストは?    手動でやってたら、何か変だよね?
  • 26. AutoScaleとAMI Chefで環境構築後にAMI化する。 AMI A AMI A AutoScale AMI化 この運用については、 検討継続中 Jenkinsとの連携とか もしくはcfn-init利用
  • 27. アプリのリリース Capistrano Rails向けにデザインされたデプロイツール 複数の環境に同じコマンドを送るツール sshで通信 DB定義も 更新 Capistrano 複数の環境に コマンド送信 AMI化は、システムに応じて柔軟に考える フレームワークに応じて、MavenとかTFSも利用
  • 28. ChefのRecipeのテスト 参照:Chef Cookbook Testing and Continuous Integration http://www.slideshare.net/JulianDunn/cookbook-testing-and-ci-chefboston • test-kitchen • serverspec • ChefSpec • Minitests • foodcritic 色々なレイヤーのテストツールが存在 どう組み合わせるか、悩み中。。。
  • 29. Chefの継続的インテグレーション 参照:ChefのrecipeをJenkinsで継続的インテグレーションする方法 | Ryuzee.com http://www.ryuzee.com/contents/blog/6371 ①テストの起動 ②まっさらな インスタンスの 立ちあげ ③Recipeの適用 ④テスト Recipeが腐らないように、日々テスト
  • 30. 自動化の先に
  • 31. 何故、自動化? Chefを使って自動化するのは、手段に過ぎない。 アジャイルやDevOpsも然り。 コアビジネスに集中出来る環境を作るのが目的
  • 32. 本音 • 面倒くさいのは嫌だ • (私の)手作業のミスの確率は、異常に高い • 同じことをやっても面白くない
  • 33. クラウド時代の前と後を比べると?
  • 34. Before AWS 参照:マイナー三兄弟なAmazon SNS,SQS,SESを激しくお勧めする。 http://d.hatena.ne.jp/dkfj/20130204/1359966577
  • 35. After AWS 参照:マイナー三兄弟なAmazon SNS,SQS,SESを激しくお勧めする。 http://d.hatena.ne.jp/dkfj/20130204/1359966577
  • 36. サーバ調達と構築の時間 調達 構築 Before AWS 調達 構築 After AWS 相対的に 大きくなった インフラ構築のスピードアップを 考える必要が出てきた
  • 37. 自動 or 手動? http://www.flickr.com/photos/bigberto/2680751025/http://www.flickr.com/photos/polanyi/188032816/
  • 38. プログラマの三大美徳 1.怠慢(Laziness) 2.短気(Impatience) 3.傲慢(Hubris)
  • 39. 自動化しかない
  • 40. アジャイルのレフトウィングとライトウィング ※株式会社チャンジビジョン 平鍋さんの許可を得ての使用。 http://blogs.itmedia.co.jp/.shared/image.html?/photos/uncategorized/2012/09/09/whereisyouragile.png 自動化のヒント
  • 41. 目指している所 黒い画面を使わずに、サーバを管理したい でも、最近のターミナルは、白いですよね
  • 42. サーバ設定以外の自動化 • アプリケーションのリリース    ロールバックの仕組み、DB定義管理 • ログ管理    ログ集約&閲覧システム • システム監視    システムの監視&障害通知
  • 43. アプリのリリース デプロイツールとJenkinsの組み合わせ Jenkins Capistrano Maven Fabric アプリ DB定義も 更新
  • 44. ログ 複数のサーバのログ管理が面倒くさい オンプレミス時代 AWS黎明期 最近 ? 自動的にサーバが増減
  • 45. fluentd 複数のサーバのログをリアルタイムで集約 参照 S3
  • 46. ログビューアー 良いのが無いので、作りました ログ管理サーバ ログビューア 参照 • Node.js  • ruby  • mongoDB  ①S3にログ転送 ②未処理のログ取得 ③DBに格納 参照
  • 47. サーバの状態監視 参考:クラウド監視サービス : 事例紹介 | NRIネットコム http://nri-net.com/products/cloud/aws_watch.html ツールを組み合わせて、センターで監視
  • 48. ログインしないサーバ管理 ほぼ管理出来るようになりつつあります でも、私はターミナルも好きです 不要
  • 49. 自律的なシステム もう少しで、自己修復するシステムが出来るのでは? • システムのあるべき状態を知っている • あるべき状態から外れたことを検知出来る • 外れた所だけ直せばよいのでは?  (プロセスの再起動、サーバの再起動) 何か出来そう。(OpsWorkの自動復旧的なもの)
  • 50. 最後に、繰り返しますが
  • 51. 自動化は目的ではない 目指しているのは、コアビジネスに注力すること (ビジネスのスピードアップの為の手段) http://www.flickr.com/photos/jiteshjagadish/5178417174/ でも、エンジニアとして自動化自体が楽しい
  • 52. 自動化に取り組む上でお勧めの書籍
  • 53. リーン開発の本質 何故、自動化するのかを整理する上でお勧め 参照:リーン開発の本質 ¦ Amazon.co.jp http://amzn.to/12gH4uE
  • 54. 継続的デリバリー どこを自動化していくのかを考える時に最適 参照:継続的デリバリー ¦ Amazon.co.jp http://amzn.to/15jGpha
  • 55. 入門Chef Solo Chefの入門書といえば、これでしょ!! 参照:入門Chef Solo ¦ Amazon.co.jp http://amzn.to/19YeKU1 達人出版バージョンもお勧め!! 参照:入門Chef Solo ¦ 達人出版 http://tatsu-zine.com/books/chef-solo
  • 56. 参考スライド • AWS上でのWebアプリケーションデプロイ : http://www.slideshare.net/AmazonWebServicesJapan/20130506-23096544 • 入門 Chef Server #biglobetechtalk : http://www.slideshare.net/biglobedojo/chefserver-rev100 • ChefとOpsWorksで EC2 楽チンクッキング! : http://www.slideshare.net/classmethod/20130513-21235033 • Chef Cookbook Testing and Continuous Integration : http://www.slideshare.net/JulianDunn/cookbook-testing-and-ci- chefboston • Chef 11概要-osct : http://www.slideshare.net/jhotta/chef-11osct • 開発に関わらないChefユーザの日々 #eytokyo : http://www.slideshare.net/koemu/chef-casual-talks20130415-18859603
  • 57. ご清聴ありがとうございました 後日の質問は、@dkfjまで