bookshelf

DevOps部の本棚

View the Project on GitHub fra-dev-ops-bu/bookshelf

第1章 大局を見る

この章は、devopsという言葉の本来の意味を説いている。 devopsが組織を変えるほどの力を持っている秘密は、その文化的・人間的側面にある—特定のツールを指すような薄っぺらい概念ではないのだ。

1.1 devops 文化のスナップショット

devopsと言われても、イメージがわかない。 そこで、devops文化が浸透したとある米国企業: Etzyのやり方をみてみよう:

コラム: 本番環境って?

「本番環境」という言葉は、水研職員にとって馴染みがないと思われるので解説する。 本番環境とは、Webサービスを提供中のサーバーのことだ。 Webサービスとは、Amazonを例にとれば、あのサイトで我々ができること全て—商品検索、カートへの追加、購入—を指す。 IT系の大企業がみなWebサービスを持っているのは、これが現時点において、顧客に価値を届けるための最善の方法だからだ。

さて、「本番環境で仕事をする」とはどういうことだろう。 例えば、Amazonのトップページには「こんにちは」という文字列が出るようになっている。 もし、本番環境でこれを「こんばんは」に書き換えれば、このサイトにアクセスする全てのユーザーの画面にただちに影響してしまう。 こんな状況では、危険すぎて仕事を進められない。 そこで開発者には、本番環境とほぼ同じファイル構成の「開発環境」が必要になる。 開発環境で仕事ができれば、開発者は自分だけに閉じた環境でコードを書き換え、変更の結果を手元で確認できる。

仕事が終わると、開発者は成果を「テスト環境に」送る。 他の開発者も並行して仕事をしていることがほとんどなので、全ての変更がうまく噛み合うかを試験するわけだ。 テスト環境でも動作が確認できたら、開発者の仕事は晴れて本番環境に反映される。

1.2 文化の発展の経緯

Etzyの仕事のすすめ方は今でこそ模範的だが、はじめは苦労していたようだ:

Etzyはどうやって生まれ変わったのか? 彼らの改革は、鬱憤がたまった社員たち、つまり現場主導で始まったようだ(これは我々と似ている)。 しかし改革には資金が必要なので、彼らは CEO と CTO に相談したようだ(ちゃんと上層部の支持を得ているところを我々も見習うべき)。

改革の発端は、それまで縦割りの壁を挟んで働いていた部署を結ぶことから始まった。 運用エンジニアが開発エンジニアと手を結び、社内向けのデプロイツールを開発した。 これによって、社員たちが抱くデプロイのイメージが変わった—月に一度の嫌なものではなく、ユーザーに価値を届ける手段となったのだ。

これらの改革のカギは、ツールではない。 まず改善の必要性に気づいた人たちがいて、彼らに時間と資金が与えられたことだ。 Etzyでは、どんなレベルでもこの文化を維持することが重視されている (「どんなレベルでも」: 水研でいえば、チーム、グループ、部、所、機構、というレベルだろう。すばらしい)。

devops とは、以下のような事項に影響を与える文化的改革を大切にする組織だ(ここでの devops の使われ方はおもしろい):

1.3 ストーリーの価値

本書は、ただ理屈をこねるだけの本ではない。 実際のケーススタディを失敗事例まで含めて紹介するものだ。 著者たちのケースもあいさつ代わりに紹介されている。 ちょっと見てみよう。

1.4 リンのストーリー

第1著者リンは、devops という概念が産まれたころにちょうどキャリアをスタートさせた。 彼女はもともと devops 的価値観を持ったタイプだったが、入社したスタートアップは残念ながら旧態依然な体質だったようだ。 彼女は組織をよりよくしようと努力したが、周りとうまく噛み合わなかった。 New York で開催された devops カンファレンスでの人脈をきっかけに、彼女は Etsy へ転職した。 彼女が本書の執筆を思い立った理由:

1.5 ジェニファーのストーリー

第2著者ジェニファーのストーリーからは、スーパーマンによって回っている組織の弱さを学ぶことができる。 失敗は、システムの弱さを見つける貴重なきっかけだ。 組織は、失敗から学ばなければならない。 失敗しないように細心の注意を払うのでは、まだまだ甘い。 どんどん失敗することでシステムに揺さぶりをかけ、そもそも失敗が起こり得ないように育て上げないといけないのだ—組織みんなで。 すべては人間関係から始まる。

1.6 devops をストーリーで説明する

本書にはたくさんのストーリーが載っているが、これらをただ猿真似しても効果は出ない。 コンテクストも冷静に見つめ、そして読むだけでなく、実際に試してみるといい。 ただし、必ず効果を計測し、うまくいったかどうかを評価して、そこから学びを引き出すこと。