第6章 継続的インテグレーションと継続的デプロイ 継続的インテグレーションと継続的デプロイ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
著者ノア
継続的インテグレーション(CI)と継続的デプロイ(CD)のプラクティスは、最新のソフトウェア開発ライフサイクルプロセスに不可欠である。CIシステムは、GitHubのようなソース管理システムから対象ソフトウェアのコードベースをクローンし、ソフトウェアをバイナリ、tarアーカイブ、Dockerイメージなどの成果物にビルドし、非常に重要なことだが、ソフトウェアの単体テストや統合テストも実行する。CDシステムは、CIシステムによってビルドされた成果物をターゲット環境にデプロイする。このデプロイは、非本番環境では自動化できるが、本番環境では通常、手作業による承認ステップが含まれる。このようなシステムのより高度なタイプは継続的デプロイプラットフォームであり、本番環境へのデプロイステップを自動化し、監視およびロギングプラットフォームから得られるメトリックに基づいてデプロイをロールバックすることができる。
実際のケーススタディ:整備不良のWordPressサイトをHugoに変換する
少し前のことだが、友人から会社のWebサイトを直してほしいという依頼があった。その会社は非常に高価な中古の科学機器を販売しており、その在庫はワードプレスのサイトを通じて提供されていた。通常、私はこのようなプロジェクトに巻き込まれないようにしているが、友人だったので手伝うことにした。変換プロジェクトのコードはこのGitリポジトリで参照できる。
変換プロセスの各ステップは、GitHubリポジトリでカバーされている。ステップには以下が含まれる:
-
バックアップ
-
変換する
-
アップグレード
-
デプロイする
注
この話にはおかしな結末が待っていた。驚異的なパフォーマンス、セキュリティ、自動デプロイ、そして驚異的なSEOを備えた、防弾仕様の「戦車」のようなWebサイトを作成した後、そのWebサイトは脆弱性や停止時間ゼロで何年も稼動した。私がそのプロジェクトのことを忘れていたずっと後、友人からメールが届いた。最後に彼と話してから数年が経っていた。彼はWebサイトがダウンしたので、私の助けが必要だと言った。
どうすればこんなことが可能なのか、私は彼にメールで質問した。このサイトは99.9999999%の稼働率を誇るAmazon S3で運営されている。彼は最近WordPressに戻した、とメールを返してきた。私は笑って、彼のプロジェクトに私は向いていないと言った。よく言われるように、善い行いは罰せられない。
私が考慮したいくつかの条件は以下の通りだ:
-
継続的なデプロイが必要だった。
-
走りも展開も速くなければならない!
-
クラウドプロバイダーからホスティングされた静的サイトであるべきだ。
-
WordPressからの変換には、合理的なワークフローがあるはずだ。
-
Pythonを使って合理的な検索インタフェースを作成することは可能なはずだ。
最終的に、Hugo、AWS、Algoliaを使うことにした。一般化アーキテクチャは図6-1のようになった。
図6-1. Hugoによる継続的デプロイ
ヒューゴをセットアップする
Hugoを使い始めるのはとても簡単だ(Hugoを使い始めるガイドを参照)。まず、ソフトウェアをインストールする。私のOS ...
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