SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
【デブサミ2013】セッションレポート(AD)

【デブサミ2013】15-D-4 レポート
「Opsから挑むDevOps」

  • X ポスト
  • このエントリーをはてなブックマークに追加

 近年、DevOpsという言葉が頻繁に聞かれるようになってきた。インフラエンジニアであるエクシードの千葉則行氏は、DevOpsという考え方に賛同はするものの、運用をコード化するという行為は非常にハードルが高いと考えている。そこで、本セッションでは、生産モデル、標準化という視点からITシステム運用にまつわる課題について考察。その課題に対する1つの解として、McollectiveとChefの組み合わせによるアプローチが紹介された。

  • X ポスト
  • このエントリーをはてなブックマークに追加

株式会社エクシード 千葉則行氏
株式会社エクシード 千葉則行氏

DevOpsでエンジニアを解放できるか

 エクシードは、最近では珍しい、社員のおそらく90%以上がインフラエンジニアという会社である。その中でもベテランである千葉則行氏は「インフラエンジニアの数は少ないのに、要求されることは多い」と感じている。例えば「明日までにシステムを用意して欲しい」と言われても、限られた人数ではできることに限界がある。

 それでも5年ほど前までは、がんばれば何とかなったが、近年ではいよいよ無理になってきた。その背景には、IT技術の進化、複雑化がある。一人のエンジニアがすべてのスキルセットを持つことが困難になり、専門化が進んでいる。その中で、開発vs運用、エンジニアvs営業、企画部門vs技術部門といった組織、グループ間で、「どちらかが喜べば、一方が泣く」というような一種の対立構造が生まれている。千葉氏は「会社の中で対立していても不毛なだけで、何も解決しない。前向きに考え、ハードルを越えたい」と語る。

 そこで必要になってくるのが「関係する人がコラボレーションする仕組みであり、それこそがDevOpsなのではないか」というのが千葉氏の考えだ。

 DevOpsで重要とされているのは、Culture、Lean、Automation、Measurement、Sharingだ。コラボレーション実現が大事という文化を醸成した上で無駄をなくし、自動化し、取り組みや測定した情報を共有する。

Chef、Mcollectiveの特徴と使用例

 最近、DevOpsというと、Chef、Puppet、CFEngineなどが話題になる。特にChefは、Facebookがデータセンター自動化ツールとして最新バージョンを全面採用するなど、すごく盛り上がっている。ただ、Chefの認知度は確実に上がっているが、実際に使っているエンジニア数は伸びていない。

 千葉氏はChefを実際に使ってみて「よく考えて作られている」と思っている。例えばChefの手順書ともいえるクックブックには、大きなくくりがある。

図:ChefによるMySQLインストールの構成要素
図:ChefによるMySQLインストールの構成要素

 例えばMySQLをインストールする場合、まずRecipeという単位で、どういう目的なのか、ただのクライアントとしてなのか、それともサーバなのかなどを管理する。Templateは設定ファイル。Resourceではインストール、バージョン管理を行い、Attributeでサーバ固有の情報を管理する。

 では具体的にはどうか。Apacheのインストールであれば、『package "apache2" do action :install end』だけ書けば完了する。同様にイネーブル、自動起動を設定して起動するのは『service "apache2" do action [ :enable, :start ] end』。設定値(attribute)は…『Listen <%= port %> NameVirtualHost *:<%= port %>』…というように、非常に簡単だ。

 Chefでは、スクリプトよりも簡単、確実に記述できる。例えばどこかからパッケージを取ってきてインストールする操作をスクリプトで書くと、『インストール済みかどうかを確認してから』と書くことが一般的だが、Chefでは一回実行されていると自動的にスキップしてくれる。そうした細かいことを考えなくても書くことができる。

 また、必ず期待した通りの結果が戻る“べき等性”がある。Apacheが起動している状態が正として返ってくるのであれば、Chefを実行したタイミングでApacheが必ず起動し、落ちれば再起動する。1つのクックブックで書けばよく、一つ一つスクリプトを書く必要はない。ただ千葉氏は「Chefは、柔軟性はあるのだが、分かりにくい部分があるのは確か」とも語る。

 Chefに続き、千葉氏はPuppet labsのプロダクト、Mcollectiveを紹介した。これは条件にマッチする複数のサーバ群に対して任意のオペレーションを一括実行できるツールで、非同期でメッセージをデリバリーできるという特徴がある。実際はメッセージを投げる前に一度、activeMQに入れておき、ノード側がそこにキューを取りに来る形になるため、大きくスケーラビリティがある。

 例えば実際のMcollectiveのコマンドで、『Apacheのサービスリスタートを10台ごとにバッチして、2秒間のスリープで、26台同時に実行する』を書くと以下のとおりになる。

% mco service restart httpd --batch 10 --batch-sleep 2
Discovering hosts using the mongo method .... 26
 * [=============================> ] 26 / 26
  Finished processing 26 / 26 hosts in 6897.66 ms

 または、

% mco rpc service restart service=httpd -W country=uk

というように、『W country=uk』と書けば、ukに属するノードにだけこのコマンドを配布し、実行できる。

次のページ
ChefとMcollectiveの特長を束ねたツール「cloudrop」を開発

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2013】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7043 2013/03/25 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  1. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  2. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 8
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  4. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  5. 10
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  6. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  7. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  8. 8
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  9. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  10. 10
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    Google、社内AIエージェント「Google Agentspace」発表
  6. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  7. 7
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  8. 8
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  9. 9
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  10. 10
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  1. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  2. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 8
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  4. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  5. 10
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  6. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  7. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  8. 8
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  9. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  10. 10
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    Google、社内AIエージェント「Google Agentspace」発表
  6. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  7. 7
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  8. 8
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  9. 9
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  10. 10
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に