8章リリースエンジニアリング
執筆:Dinah McNutt
編集:Betsy Beyer、Tim Harvey
リリースエンジニアリングは、ソフトウェアエンジニアリングにおいて急速に成長している比較的新しい分野であり、簡単に表現するなら、ソフトウェアをビルドし、リリースすることです[McN14a]。リリースエンジニアは、ソースコード管理、コンパイラ、ビルド設定言語、自動ビルドツール、パッケージマネージャー、インストーラについて(エキスパートとまではいかなくとも)しっかりと理解していなければなりません。リリースエンジニアのスキルセットには、開発、設定管理、テストの統合、システム管理、カスタマーサポートといった、複数の領域に関する深い理解が含まれます。
高い信頼性の下でサービスを動作させるためには、信頼性の高いリリースプロセスが必要になります。サイトリライアビリティエンジニア(SRE)が使用するバイナリと設定は、再現性があり、自動化された方法で構築されていなければなりません。すなわち、リリースは同じものを繰り返し作ることが可能でなければならず、「個性的」であってはならないのです。リリースプロセスへのあらゆる変更は、偶然に行われるものではなく、必ず意図したものでなければなりません。SREは、ソースコードからデプロイメントに至るこのプロセスに注意を払わなければなりません。
Googleにおいて、リリースエンジニアリングは明確に一つの職能と位置づけられています。リリースエンジニアは、ソフトウェアエンジニア(SWE)とプロダクト開発に携わると共に、ソフトウェアのリリースに求められる、ソースコードリポジトリへのソフトウェアの格納から、コンパイルのためのビルドのルール、テストの方法、パッケージング、デプロイの進行といったすべてのステップをSREと共に規定します。 ...
Get SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.