New RelicのリードソフトウェアエンジニアがNew RelicのエンジニアリングチームがDevOpsで使ってるツールや実践している考え方についてサマリを書いている。DevOpsの役割の進化や、自分たちの製品を含む利用しているツール、この文化の目に見える利点について書いている。
New Relicのチーフアーキテクトであり、エンジニアリング部門のバイスプレジデントであるNic Benders氏は、2012年に初めてSite Reliability Engineering(SRE)チームを作った。強制されるわけではなく、DevOpsの利点がわかるとエンジニアが自主的にDevOpsの考えを実践した。このボトムアップの動きに関わらず、開発と運用のチームの間には壊す必要のある従来の壁があった。適したツールとプロセスを導入することもハードルの一つだった。
DevOpsに適した役割を作るのが最初の一歩だった。最初の段階では、Forward SRE (FSRE)の考えを試した。これは、SREがコンサルタントの役割を果たすというものだ。異なるプロダクトチームにアサインされ、時には同時に一つ以上のプロダクトに関わり、チームの物事がスムーズに進むように支援した。これがProduct Reliability Engineer (PRE)の役割へと進化した。PREは直接的にチームの一員になる。PREはチームに統合され、チケットシステムを使わずにダイレクトにやりとりする。最近では、エンジニアリングチームはProject Upscaleと呼ばれるより大きな動きの一部となっている。エンジニア地震が働きたいチームを選ぶのだ。
New RelicのDevOpsチームの仕事を支えている二つの技術はCassandraとDockerだ。以前は、データをMySQLに保存されており、異なるチームで管理されていた。Javaで書かれているCassandraはコードを探りたい開発者が探索しデバッグする。このCassandraは同じエンジニアによって簡単に配置と運用ができる。DockerはDockerfilesを使ってさえいれば、開発者が異なる技術スタックで統一したコマンドセットが使えるように支援する。メインのアプリケーションがサービス志向アーキテクチャに再設計されてから異なる技術スタックが増えてきた。Dockerを使うことで開発と運用の障壁が下がる。配置ユニットを運用する時のコマンドが一致するからだ。
Docker化を進める内部のツールがCenturionとShiprightだ。ShiprightはDockerになれていない開発者がベースのイメージと構成コマンドを使って簡単にDockerfileを作れるようにする。Centurionを使うとDockerコンテナを特定の構成をしたマシンに簡単に配置できる。Centurionを使えば開発のラップトップとプロダクションのマシンの環境が同じになっていることを保証する、オープンソースのツールだ。
New Relicの一部もNew RelicのDevOpsチームに使われている。InsightsはHygieiaに似たダッシュボードであり、メトリクスとイベントを一つのビューで確認できる。
New RelicがDevOpsのアプローチを取ったことで手に入れたのは、チーム間に依存関係のある場合のボトルネックの排除、ソフトウェアデリバリのプロセスの見える化、ランブックやインシデントの記録など全てを記録する文化だ。
Rate this Article
- Editor Review
- Chief Editor Action