今もっとも学習コスパの高い技術はChefだと、Chef勉強会に行って確信した

Chefが熱い!

OC_Chef_Logo

株式会社Engine Yardさん主催の、Chef(opschef)勉強会第一回「初めてのChefの教室 #eytokyo」に行って来ました。勉強会の全編動画は、「初めてのChefの教室」を開催しました。(動画&資料) - Engine Yard Blog JP | Engine Yard Blog JP で観ることができます。

Chef勉強会 #eytokyo Chef勉強会 #eytokyo
勉強会では登壇者が「シェフの帽子」を被って発表していましたw 発表者の皆様方も豪華すぎ!

Chefとは

Chef(シェフ)とは、ざっくりいうとサーバーインフラの構築・更新を自動化する技術で、類似としてはpuppetがあります。(参考:オープンソースなシステム自動管理ツール Puppet:連載|gihyo.jp … 技術評論社 

属人性や、面倒なドキュメントや構築手順書に囚われていたサーバーインフラ構築を「コード化」でき、今まで必要とされてきた多数のインフラエンジニアのリソースを大幅に削減できる、色んな意味で破壊的な技術です。

Chefは最近nanapi社内でも使われ始めていて、僕も覚えなきゃなーくらいのつもりで今回の勉強会に参加したのですが、沢山のプレゼンを見終えて思ったことは「これからChefの流れがくる。めちゃくちゃくる。もしChefの株があったら買いたい。Chefアツい」と思ったのでした。

そしてさらに「今もっとも学習コスパの高い技術はChefだ!」と結論が出たので、なぜなのか暑苦しくお伝えします。

今Chefをやるべき8つの理由

猛烈に流行り始めている

ある技術が流行り始めの頃と同時に習得し始めると、いいことが沢山あります。

  • ブログや技術情報系サイトで情報がどんどん流れてくる。
  • 先に手をつけていればそういった情報をきっちり読める。
  • 同じ学習レベルの人が周りにいると、使い方を共有したり相談しやすい。
  • 勉強会が沢山開かれる。(安藤さん、Engine Yardさん、発表者の皆様方、ありがとうございます)
  • アプリケーションエンジニアの集まりだけでは接しなかったようなエンジニアと接することができる。(逆もまたしかり)
  • 周辺ビジネスも活発化してきている。

「乗るしか無い、このビッグウェーブに」状態です。もちろん、使える技術であることが前提ですが。

インフラ構築は誰もがやる

サーバーやPCのセットアップは、程度差はあれど、エンジニアであれば誰もがやります。今後数十年はなくなることはないでしょう。Chefに限らず「インフラ構築の自動化」は、始めておいてぜったいに損はありません。競争力にもなります。

ちなみにChefはLinux系のOSだけではなくWindows、Mac OSXにも対応しているので、デスクトップPCのセットアップですら自動化可能です。

個人でも使い道がある

エンジニアなら自分のサーバーのひとつやふたつは運用しているでしょう。そしてレンタルサーバーでも自宅サーバーでも、サーバーの引越しをしたことや、する未来は必ずあるはずです。そんなときに数年前に行った設定を思い出すのは不可能ですから、Chef化していれば、自動化もできるし、何をやるべきかがはっきりします。

仕事だけではなく個人でも使い道があるので、実地作業の機会が自然に作れて、無理なく習得できます。(座学はモチベーションの維持コストが高いですよね...)

Chefはサーバー・クラアント型の構成と、chef-soloという単独で動作する構成があります。どちらもメリット・デメリットがあります。個人や小規模ならchef-soloでよいでしょう。僕もとりあえずはchef-soloを覚えていきます。(nanapiではサーバー・クライアント型です)

インフラ構築を「コード化」できる

「手間ひまかけて熟成されたサーバー構築手順書」は、それはそれは独特の世界です。書いた本人にしかわからない箇所もあるでしょう。そして手作業ですから、複数台に適用するとなると、どっかでミスしそうな感じでいっぱいになります。

Chefを使えばそういった手作業を「コード化」できるので、やるべきことがはっきりし、ミスの不安もかなり解消されます。サーバー構築そのものが、属人性の高い職人芸の世界観でしたが、Chefによってサーバー構築の大部分がコモディティ化(ここでこの言葉を使うのがあってるかわかりませんが)する気がします。

インフラエンジニアにChefは必須になる

手作業での構築とChef化は、手作り対機械化の構図ですから、インフラエンジニアはChef(ないしは同様の技術)を使えなければ競争力を保てないんじゃ…ってくらいに思えてきます。

インフラの「更新」もできる

それなりにインフラ構築をやってきた人であれば、手順書だけでなく「自動構築スクリプト」をお持ちかと思います。ただ、自動構築スクリプトでも「初回だけ、まともに動く」ものがやっとではないでしょうか。もしくは動いたとしても、一から全部上書きインストールするような仕様だったりするでしょう。(わざわざif文なんて書きませんしね)

Chefでは構築対象の状態に応じて、やる、やらないを自動で判断してくれるので、そういった無駄がありません。最近だと、--dry-run (Chefでいうと--why-run) オプションをつけると「どういった更新が行われるのか」を確認することができます。便利すぎですね。

3,4年は廃れなそう

単なる感覚値ですが、少なくとも3,4年は陳腐化しないとみています。github時代の今、cookbook(Chefの設定内容)がどんどん共有されて、周辺ビジネスも発展してきていて、まだまだ進化する感もあるので、最悪すぐに代替が現れることは無いんじゃないかなーと思います。

Chef自体はそんなに難しくない

インフラ構築の自動化自体やったことない人がほとんどでしょうから、概念的な素養も無いので、最初はとっつきにくいでしょう。ただ、とっつきにくさがあるだけで、実際、そんなに複雑なことはしません。

いや、複雑というか、単語や機能が多くて「こんなに一気に覚えられないよ〜」って最初は思うんですが、よくよく見ると、よく使う設定は「パッケージのインストール」「ファイルの設置」くらいなので、やたらリッチなプラグインや機能を使う必要も最初はありません。

というわけで

これだけメリットがある技術ですから、学習に対する見返りは確実です。Chef、コスパ高いですよ!

「初めてのChefの教室」を開催しました。(動画&資料) - Engine Yard Blog JP | Engine Yard Blog JP にChef未経験者向けのスライドがありますので、まずはここから見るとよいでしょう。ちょっと慣れてきたら、他の資料やプレゼンも観るといいんじゃないかと思います。

僕も個人サーバーをいくつか管理しているので、順次Chef化していきます。がんばるぞー。

コメント / トラックバック

コメント / トラックバック 4 件

  1. mizoguche.info より:

    […] です。Puppetとかの対抗馬。今、一番学習コスパが良い技術だそうで。 […]

  2. […] 今もっとも学習コスパの高い技術はChefだと、Chef勉強会に行って確信した – akiyan.com […]

  3. […] 今もっとも学習コスパの高い技術はChefだと、Chef勉強会に行って確信した […]

  4. シニアエンジニア より:

    インフラエンジニアなんてクラウドでどんどん仕事がないのに。。。
    ワロタ.