Skip to Content
Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス
book

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

by Titus Winters, Tom Manshreck, Hyrum Wright, 竹辺 靖昭, 久富木 隆一
November 2021
Intermediate to advanced
684 pages
10h 37m
Japanese
O'Reilly Japan, Inc.
Content preview from Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

23章継続的インテグレーション

Rachel Tannenbaum 著

Lisa Carey 編

 継続的インテグレーション(Continuous Integration)、あるいはCIは、「チームのメンバーが作業分を頻繁に統合するソフトウェア開発のプラクティスであり(中略)各インテグレーションは、できるだけ迅速にインテグレーションのエラーを検出するために、自動ビルド(テストを含む)により検証される」ようなものとして一般に定義される†1。簡単に言うと、CIの根本的なゴールは、問題のあるコード変更をできるだけ早期に、自動的に捕捉することである。

 実践上は、「作業分を頻繁に統合する」とは、モダンな分散アプリケーションにとって何を意味するのか。今日のシステムには、リポジトリー内の最新バージョンのコードのみならず、たくさんの変動する要素がある。事実、マイクロサービスへと向かう最近のトレンドでは、アプリケーションを破綻させるコード変更は、そのアプリケーションのプロジェクトがある直接のコードベース内に存在している見込みは低く、ネットワーク経由の呼び出しの反対側にある疎結合したマイクロサービス内にある見込みの方が高い。伝統的な継続的ビルドがバイナリ内の変更をテストする一方で、そのような継続的ビルドを拡張したものは、上流のマイクロサービスへの変更をテストするかもしれない。依存関係が、自身のアプリケーション内の関数呼び出しスタックから、HTTPリクエストやリモート関数呼び出し(RPC)へと移っているだけのことだ。

 コードの依存関係からさらにもっと進んだ先では、アプリケーションが定期的にデータを摂取したり機械学習モデルを更新したりするかもしれない。アプリケーションは、発展を続けるオペレーティングシステム、ランタイム、クラウドホスティングサービス、デバイス等の上で実行されているかもしれない。アプリケーションは、発展するプラットフォームの上に載っている機能であったり、あるいは発展を続ける基本機能を収容しなければならないプラットフォームであったりするかもしれない。これら全てのものが依存関係とみなされるべきであり、これらの変更を「継続的に統合する」ことも目指すべきだ。物事をさらに複雑にしているのは、これらの変化する構成要素は往々にして、チームや組織や企業の外部にいる開発者たちがオーナーとなっており、オーナーである外部の開発者たち自身のスケジュールに基づいてデプロイされていることだ。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

サイトリライアビリティワークブック ―SREの実践方法

サイトリライアビリティワークブック ―SREの実践方法

Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, Stephen Thorne, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, 玉川 竜司
初めてのSQL 第3版

初めてのSQL 第3版

Alan Beaulieu, 株式会社クイープ
プログラミングRust

プログラミングRust

Jim Blandy, Jason Orendorff, 中田 秀基
仕事ではじめる機械学習 第2版

仕事ではじめる機械学習 第2版

有賀 康顕, 中山 心太, 西林 孝

Publisher Resources

ISBN: 9784873119656Other