
多くの企業が後付けとしてこれに焦点を当てているのをよく見かけます。 基本原理 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ツールとオプション
- クラウドミツバチ — エンタープライズ版Jenkinsおよびその他のツール
- コードシップ — ホスト型継続的デリバリーサービス。
- サークルCI — 開発者向けに最先端の継続的インテグレーションおよびデリバリー プラットフォームを構築するという使命を持っています。
- チームシティ (Jet Brains) — TeamCityは、ソフトウェアのビルド、テスト、デプロイを確実に実行し、選択した方法でその進捗状況を通知します。
- トラビスCI — Travis CI は、GitHub 上のオープンソースおよびプライベート プロジェクトがビルドの品質を継続的に監視し、ビルドが成功した後にコードを本番環境に直接送信できるようにする、ホストされた継続的インテグレーション プラットフォームです。
設定管理
- Ansible ― アプリケーションやシステムの導入を容易にする、極めてシンプルなIT自動化プラットフォーム。
- シェフ — ユーザーがフリート内のインスタンスがどのように構成されているかを説明するレシピを作成できるようにする構成管理ツール。
- 人形 — ITインフラストラクチャの状態を定義し、その正しい状態を自動的に維持する構成管理システム。
- Salt ― データセンターの自動化、クラウドオーケストレーション、サーバープロビジョニング、構成管理などに対応する、高速で拡張性と柔軟性に優れたシステム管理ソフトウェア。
@intentwise 内部では、AWS と Heroku の両方を使用しています。 CircleCI は、AWS と Heroku の両方で適切に動作し、Github または Bitbucket と適切に統合される優れた CI/CD ツールです。 私たちが使用する機能には、Code Deploy、Heraku Code Pipeline、Review アプリなどがあります。 私たちは継続的デリバリーの概念を容易にする AWS Code Pipeline の使用を進めています。
他に試してみるべきツールがあれば教えてください。
私たちの投稿をお読みくださいクラウドにするか否か貴社がクラウドを利用すべきかどうかについての当社の見解については、こちらをご覧ください。

