多くの企業が後付けとしてこれに焦点を当てているのをよく見かけます。 基本原理 CI / CD それは、あらゆる組織がより迅速にイノベーションを起こし、より迅速に顧客に機能を提供できるよう支援することです。 顧客に何かをより早く提供することは、どの組織にとっても CI/CD を行う大きな動機となるはずです。
CI と CD の分野はここ数年で大きく成熟しました。 クラウド プロバイダーに依存している人にとって、導入までの道のりを非常に簡単にする利用可能なサービスが数多くあります。
組織の成熟度は、以下の 3 つの主要な概念をどの位置に置くかによって決まります。
継続的インテグレーション
ビルドを中断することは、開発者にとって罪であるはずです :-)。
開発者にこのことを理解してもらうことは、技術文化に根付かせる必要があります。 開発者の分散チームが世界中で作業している場合、常に実行される安定したコードベースを確保することが非常に重要です。 テスト駆動開発 (TDD) は議論の余地のあるトピックです。 ただし、自動テストが存在しないと、大惨事が発生します。 自動テストにはさまざまな種類がありますが、それらについては別の日のトピックとして説明します。 マイクロサービス リポジトリを CI サーバーに接続してテストを実行し、安定したブランチが維持されていることを確認することは、CI の基本的な要求です。
継続的な展開
業界の多くは、コードを自動化された方法で本番環境に導入することが継続的なデプロイメントを構成すると信じています。 ただし、多くの規制によるチェック アンド バランスのニーズのため、通常、CD はステージング環境まで実行され、その後、通常は実稼働環境へのプッシュ ボタン デプロイメントが行われます。
継続的なデプロイは、ステージング環境でも運用環境でも、開発ライフサイクルを合理化する優れた方法であると私は強く信じています。
連続放出
開発者がコミットしてパイプラインにプッシュしているものが効果的で、欠陥がなく、そして最も重要なことに、既存の機能が損なわれていないことを確認するために、各段階でチェックとバランスを行うことが強く必要です。 CD^ は、複数のレベルの単体テスト、統合テスト、パフォーマンス テスト、および受け入れテストを使用して、このプロセス全体が合理化され、最終的には現在存在するものを壊すことを恐れることなく実行できるようにし、新機能が確実に機能することを確認します。受け入れテストに従って納品されます。
CD が異なると私が考える点は、継続的デリバリーでは、提供しているものがエンドユーザーにとって価値があることを確認する必要があるということです。 それはバグ修正、新機能、またはパフォーマンスの向上である可能性があります。
CI/CD を効果的に有効にするために利用できるツールが多数あります。 検討する価値があると思われるもののいくつかを以下に示します。
- Github と Bitbucket は、バージョン管理管理においてある程度 Mercurial が非常に人気があります。
- AWS CodePipeline — CodePipeline は、定義したリリースプロセスモデルに基づいてコードが変更されるたびに、コードを構築、テスト、デプロイします。
- AWS CodeDeploy — AWS CodePipeline は 連続配送 高速かつ信頼性の高いアプリケーション更新のためのサービス。 CodePipeline は、コードが変更されるたびに、定義したリリース プロセス モデルに基づいてコードをビルド、テスト、デプロイします。
- Heroku コード パイプラインとレビュー アプリは、まだ試したことがない場合には素晴らしい機能です。
CD ツールとオプション
- クラウドミツバチ — Enterprise Jenkins およびその他のツール
- コードシップ — ホスト型継続的デリバリー サービス。
- サークルCI — 開発者向けに最先端の継続的インテグレーションおよびデリバリー プラットフォームを構築するという使命を持っています。
- チームシティ (Jet Brains) — TeamCity は、ソフトウェアが確実に構築、テスト、展開されるようにし、その旨をお客様が選択した方法で通知します。
- トラビスCI — Travis CI は、GitHub 上のオープンソースおよびプライベート プロジェクトがビルドの品質を継続的に監視し、ビルドが成功した後にコードを本番環境に直接送信できるようにする、ホストされた継続的インテグレーション プラットフォームです。
設定管理
- Ansible — アプリケーションとシステムの導入を容易にする、極めてシンプルな IT 自動化プラットフォーム。
- シェフ — ユーザーがフリート内のインスタンスがどのように構成されているかを説明するレシピを作成できるようにする構成管理ツール。
- 人形 :ITインフラストラクチャの状態を定義し、正しい状態を自動的に適用できる構成管理システム。
- 塩 — データセンターの自動化、クラウド オーケストレーション、サーバー プロビジョニング、構成管理などのための、高速でスケーラブルかつ柔軟なシステム管理ソフトウェアです。
@intentwise 内部では、AWS と Heroku の両方を使用しています。 CircleCI は、AWS と Heroku の両方で適切に動作し、Github または Bitbucket と適切に統合される優れた CI/CD ツールです。 私たちが使用する機能には、Code Deploy、Heraku Code Pipeline、Review アプリなどがあります。 私たちは継続的デリバリーの概念を容易にする AWS Code Pipeline の使用を進めています。
試してみるべき他のツールについて何か考えはありますか?
私たちの投稿を読んでください」クラウドにするか否か」では、ビジネスをクラウド上にすべきかどうかについての私たちの見解について説明します。