デプロイ可能なアーキテクチャーを作成するためのベスト・プラクティス
デプロイ可能なアーキテクチャー は、1 つ以上のクラウド・リソースを結合して共通のアーキテクチャー・パターンを提供する、クラウド自動化の自己完結型のモジュラー単位です。 これにより、デプロイメント、スケーラビリティー、モジュール性が簡素化されるため、ユーザーはインフラストラクチャー・リソースを簡単にプロビジョンして管理することができます。
このガイドでは、Terraform で作成された、適切に設計され、保守可能なデプロイ可能なアーキテクチャーを構築するためのベスト・プラクティスについて概説します。 スコープ、構成可能性、使いやすさ、品質チェックなどの主要な属性に焦点を当てることで、堅固で信頼性の高いソリューションを確保できます。 このガイドの最後のセクションでは、これらのプラクティスの実装に役立つツールおよびテンプレートについて説明します。
これらのベスト・プラクティスは、Terraform を使用したデプロイ可能なアーキテクチャーの作成に適用されます。 詳しくは、 デプロイ可能アーキテクチャーの作成 を参照してください。
見て学ぶ
実物をご覧になりたいですか? 展開可能なアーキテクチャの詳細については、以下のビデオをご覧ください。
動画の文字起こし
デプロイアブル・アーキテクチャとは、クラウド上にインフラやソフトウェアをデプロイするための自動化を備えたアーキテクチャ・パターンである。 これにより、組織はインフラストラクチャとソフトウェアの導入・設定方法に一貫性を持たせることができる。 オピニオン化されたアーキテクチャーとセキュリティーを強制することで、サポート全体を軽減し、長期的には信頼性を高める。
このパターンは、デプロイ可能なアーキテクチャをインスタンス化する自動化によって実現される。 IBM Cloud 自動化は、Infrastructure-as-a-Service自動化のためのTerraformと、ソフトウェア構成のための Ansible を使って推進される。
コストを把握することは非常に重要だ。導入前にコストを見積もり、アーキテクチャの更新やカスタマイズに伴う支出の変化を追跡することができる。 そして覚えておいてほしいのは、配備するまでは一切費用がかからないということだ。
セキュリティと組織ポリシーは、企業展開において非常に重要である。 そのため、導入可能なアーキテクチャーは、一連のポリシー要件に準拠するよう吟味され、事前にスキャンされる。 標準化された配備は、監査のための証拠収集も簡素化する。
デプロイ可能なアーキテクチャは、アーキテクチャのデプロイに必要な許可だけでなく、サポートの受け方に関する情報も提供する。
最後に、プライベート・カタログから展開可能なアーキテクチャを組織内の他のアカウントと共有できます。 さらに、カタログは、ユーザーをデプロイ可能なアーキテクチャの特定のバージョンに制限することができる。 これにより、すべての人に一貫性と標準化が保証される。
アーキテクチャー・パターンは、ドメイン固有の専門家によって作成される。 クロスドメイン・アーキテクチャーは、より複雑な展開可能なアーキテクチャーを作成するために、アーキテクチャー同士をリンクさせることで構築される。
独自のデプロイ可能なアーキテクチャを作成することもできますし、 IBM Cloud カタログや Community レジストリから IBM Cloud の既成アーキテクチャをカスタマイズして時間を節約することもできます。
展開可能なアーキテクチャは、アーキテクチャ、コードの場所、権限、コスト、サポート、説明、アイコンなどの詳細を記述した、コードとしてのマニフェストによって定義されます。 JSONで定義され、レポのルートにある。
コンソールで配置可能なアーキテクチャを入力または変更し、マニフェストをエクスポートできます。 リリースのgitスナップショットから初めてデプロイ可能なアーキテクチャを作成できます。 リリース.tgzのURLをソースとして使用してください。
次に、展開可能なアーキテクチャのカタログエントリの詳細(アイコンや名前など)を編集する。 依存関係や、必須ではないがあなたのものとうまく機能するオプションのアーキテクチャを追加することができる。
また、展開可能なアーキテクチャのコンプライアンス請求を管理することもできる。 これらの主張は、デプロイ可能なアーキテクチャを公開する前にカタログで検証するときに検証される。
最後に、デプロイ可能なアーキテクチャのバージョンをオンボードした後、カタログ マニフェスト ファイルをエクスポートしてソース リポジトリに保存できます。 カタログマニフェストを簡単にエクスポートし、必要であれば後で編集することができるため、コンソールを使用することは、通常、ネットニューのデプロイ可能なアーキテクチャをオンボーディングするための最良のアプローチです。 そうすれば、カタログマニフェストファイルをゼロから作成する必要はありません。
IBM Cloud カタログで、 「Deployable architectures」 タブを開き、 IBM でサポー トされているアーキテクチャを検索します。
Communityレジストリにあるデプロイ可能なアーキテクチャは、頻繁に変更されたり、短期間で廃止されたりする可能性があります。
IBM Cloud カタログに掲載されている、 VPC landing zone 配備可能なアーキテクチャを考えてみよう。 クラウドでワークロードを実行するつもりならVPCが必要なので、一般的に便利なデプロイ可能なアーキテクチャだ。
VPC landing zone は、 プロファイルに準拠するように設計されている。 IBM Cloud Framework for Financial Services 管理ワークロードとワーカーワークロードを分離し、鍵管理を使用してクラウドオブジェクトストレージを暗号化し、通信にプライベートエンドポイントを使用する。 そのまま使うこともできるし、ランディングゾーンのニーズに合わせてカスタマイズすることもできる。
より複雑な展開が可能なアーキテクチャについては、 IBM Cloud Essential SecurityとObservabilityサービスをご検討ください。 そのデプロイ可能なアーキテクチャは、 IBM Cloud カタログから複数のアーキテクチャをリンクさせることで作られた。 これにより、 IBM Cloud のあらゆるセキュリティサービスを活用することができます。 カスタマイズが可能なので、必要なサービスだけを盛り込み、不要なサービスを省くこともできる。
展開可能なアーキテクチャがどこにあるかわかったところで、それをどのように展開し、アカウント全体で維持するのか IBM Cloud。
プロジェクトでは、デプロイ可能なアーキテクチャの入力変数を設定します。 コスト、リソースのドリフト、コンプライアンス・スキャンを監視し、展開可能なアーキテクチャの最新バージョンがカタログに掲載されたらアップグレードすることができる。 プロジェクトは通常、ハブアカウントに配置され、さまざまなスポークアカウント(ターゲットアカウントとも呼ばれる)にリソースを展開する。
IBM Cloud で安全なワークロードを実行する方法については、ドキュメントをご覧ください。 または、 IBM Cloud のカタログに飛び込んで、どのようなデプロイアブル・アーキテクチャがお客様のビジネスに有効かを見つけてください。
デザインの原則
スコープ、構成可能性、およびコンシューマビリティーは、デプロイ可能なアーキテクチャーを作成する際に考慮する必要がある 3 つの主要な設計原則です。
計画と調査のフェーズ では、オファリングの現在のエコシステムを評価し、ビジネス・ユース・ケースと要件を評価する必要があります。 ウェル・アーキテクチャー・フレームワーク および アーキテクチャー設計フレームワーク を使用して、アーキテクチャーに必要なコンポーネントを計画および設計します。
スコープ
デプロイ可能なアーキテクチャーのスコープを明確に定義することが重要です。これは、必要なすべてのリソースを含めることができるだけの包括的なものであると同時に、不要な複雑さを回避するために十分な重点を置く必要があるためです。
ベスト・プラクティスは、通常は 1 つの単位として一緒にデプロイされ、同様のアクセス権とアクセス権を必要とし、同じライフサイクルを持つインフラストラクチャー・リソースを組み込むことです。 例えば、 VPC landing zone デプロイ可能なアーキテクチャー について考えてみましょう。 このデプロイ可能なアーキテクチャーには、以下のインフラストラクチャー・リソースを含む、明確に定義されたスコープがあります。
リソース | 説明 |
---|---|
VPC | セキュア VPC トポロジーを作成します。 |
ネットワーク・インフラストラクチャー | サブネット、パブリック・ゲートウェイ、ACL、中継ゲートウェイ、およびセキュリティー・グループが含まれます。 |
エッジ・ネットワーキング | パブリック・インターネットへのトラフィックを分離します。 |
モニタリングとロギング | VPC トラフィックの可観測性と監査のためにフロー・ログを統合します。 |
これらのリソースは通常、1 つの単位として一緒にデプロイされ、同様のネットワーク管理権限とアクセス権を必要とし、同じライフサイクルを持ちます。つまり、以下のようになります。
- 関連付けられたサブネット、パブリック・ゲートウェイ、およびセキュリティー・グループを使用して新規 VPC がプロビジョンされた場合などに、一緒に作成されます。
- サブネット、パブリック・ゲートウェイ、およびセキュリティー・グループを更新する必要がある VPC のネットワーク構成に変更が加えられた場合などに、一緒に更新されます。
- VPC が廃止され、そのすべての関連リソース (サブネット、パブリック・ゲートウェイ、セキュリティー・グループなど) が削除された場合など、一緒に削除されます。
構成可能性
展開可能なアーキテクチャの基本原則は複合化可能性であり、複数の展開可能なアーキテクチャを積み重ねることで、より広範な展開可能なアーキテクチャを作り出すことができる。 このモジュラー・アプローチにより、自動化リソースの柔軟性と再利用性を最大限に高めることができます。
構成可能性を実現するには、デプロイ可能なアーキテクチャーを以下のように設計する必要があります。
-
出力値を通じて表示される情報量を最大化しながら、出力タイプを単純化します。 この手法により、デプロイ可能なアーキテクチャーの自動化を幅広いシナリオで再利用できるようになり、さまざまな自動化ソリューションの汎用性の高いビルディング・ブロックになります。
-
リソース・グループ、 IBM® Key Protect for IBM Cloud® または Hyper Protect Crypto Services インスタンス、および IBM Cloud Secrets Manager インスタンスなど、既存のデプロイ済みリソースへのオプションの参照を許可します。 その後、ユーザーは既存のインスタンスを構成したり、既存のリソース・グループにデプロイしたりできるため、自動化の汎用性が向上します。 Secrets Manager のデプロイ可能なアーキテクチャー は、この原則の有効な例です。 ユーザーが既存の Secrets Manager インスタンス、リソース・グループ、および KMS 暗号鍵を再利用できるようにすることで、この自動化は高度な柔軟性と適応性を提供します。 例えば、以下の操作を行うことができます:
- 既存の Secrets Manager インスタンスの ID を渡してそのインスタンスを構成し、既存のインスタンスにシークレット・グループを作成します。
- Key Protect または Hyper Protect Crypto Servicesなどの既存の鍵管理システムと統合します。
- 既存のリソース・グループにデプロイするか、カスタマイズ可能な命名規則を使用して新しいリソース・グループを作成します。
あるいは、このデプロイ可能なアーキテクチャーでは、新規 Secrets Manager インスタンス、新規リソース・グループ、およびその他のリソースを最初から作成して、スタンドアロン・ソリューションを提供することもできます。
コンポーザビリティを採用することで、展開可能なアーキテクチャは、他の展開可能なアーキテクチャと積み重ねることで、より複雑なソリューション・アーキテクチャに容易に統合することができる。 例えば、 Retrieval Augmented Generationパターンは、 Secrets Manager の展開可能なアーキテクチャを含む複数の展開可能なアーキテクチャをどのように組み合わせて複雑なソリューションを構築できるかを示している。 コンポーザビリティを念頭に置いて設計された展開可能なアーキテクチャは、こうした複雑なソリューションの基盤となる。
展開可能なアーキテクチャを積み重ねると、各メンバーの展開可能なアーキテクチャは独立した構成状態を維持し、個別の展開、更新、または展開解除が可能になる。 このモジュラー・アプローチにより、コスト、コンプライアンス、サポート、品質の保証を、含まれる展開可能なアーキテクチャから得ることができる一方、全体的なソリューションは、独自の説明とリファレンス・アーキテクチャにより、独自のバージョンを維持することができる。 詳しくは、 展開可能なアーキテクチャをスタックするとはどういうことか?
コンシューマビリティー
デプロイ可能なアーキテクチャーは、コンシューマビリティーを念頭に置いて設計する必要があります。これにより、ユーザーは理解してデプロイすることが容易になります。 これを実現するために、デプロイ可能なアーキテクチャーは、以下を含む包括的な文書を提供する必要があります。
- 前提条件
- デプロイメントに必要なソフトウェア依存関係とインフラストラクチャー要件。
- 詳細な入力変数および出力値の説明
- 目的、データ型、およびデフォルト値が含まれます。
- 必要な最小限の権限
- デプロイ可能なアーキテクチャーの自動化を実行するために必要な許可。
- ダイアグラムおよびアーキテクチャー・マップ
- デプロイ可能なアーキテクチャーのコンポーネントおよび関係のビジュアル表示。
- 簡素化された構成
- 導入と管理が容易です。
- リソース要件の削減
- 導入可能なアーキテクチャーを最適化して、CPU とメモリーの所要量の削減など、ハードウェアとリソースの要件を最小限に抑え、より手ごろな価格で効率的なものにします。
- 効率的な導入
- より迅速かつ簡単に開始できます。
デプロイ可能なアーキテクチャーを簡単に利用できるようにするもう 1 つの側面は、クイック・スタート・バリエーションを含む複数のバリエーションを提供することです。 デプロイ可能なアーキテクチャーのクイック・スタート・バージョンを提供する必要があります。これは、より安価で高速に実行できます。 例えば、 VPC landing zone 上の Red Hat OpenShift Container Platform の QuickStart バリエーション のデプロイ可能アーキテクチャーは、完全にカスタマイズ可能な仮想プライベート・クラウド (VPC) 環境を単一のリージョンに作成し、ワークロード用のセキュアな VPC に単一の Red Hat OpenShift クラスターを提供します。 このクイック・スタート・バリエーションは、デモンストレーションおよび開発の目的で設計されており、実行にかかるコストは 1 カ月当たり 400 ドル未満です。
対照的に、 Red Hat OpenShift VPC landing zone デプロイ可能アーキテクチャー上のコンテナー・プラットフォームは、 IBM Cloud Framework for Financial Services 参照アーキテクチャーに基づいて、{{site.data.keyword.redhat.month}} を作成し、セキュアになります。 また、管理 VPC サービス、ワークロード VPC サービス、管理 VPC とワークロード VPC の分離、高度なネットワーク・セキュリティー・アーキテクチャーの決定などの高度な機能も備えています。
入力変数
以下のベスト・プラクティスを使用して、ユーザーがデプロイ可能なアーキテクチャーの入力変数を簡単に構成できるようにします。
- 一般的に変更される引数のみを公開する
- ほとんどのユーザーが変更する必要がある変数のみを公開することで、ユーザーを圧倒する大量の入力変数を持つデプロイ可能なアーキテクチャーを回避します。 上級ユーザーの場合は、さらにカスタマイズするために単一の JSON 入力フィールドを指定することを検討してください。 例えば、VPC ランディング・ゾーンのデプロイ可能なアーキテクチャーでは、
override_json_string
という名前の単一フィールドが表示され、デプロイされたトポロジーで上級ユーザーに完全な制御が提供されます。 詳しくは、 VPC ランディング・ゾーン・デプロイメント・ガイド を参照してください。 - 既存のリソースに対して明確で分かりやすい名前を使用する
- 既存のリソースを参照する場合は、あいまいさを避けるために、参照先を明確に示す名前 (
cluster_name
ではなくexisting_cluster_name
など) を使用してください。 - ID よりも名前を優先
- 既存のリソースを参照する場合は、ユーザーの使いやすさを向上させるために、ID ではなく名前を使用してください。
- 頭字語を使用しない
- 頭字語を使用する代わりに、完全な製品名を使用すると、製品やサービスに精通していないユーザーが参照先を理解しやすくなります。 例えば、
sm
の代わりにsecrets_manager
を使用したり、kms
の代わりにkey_management
を使用したりします。 - 高度なタイピング機能の使用
- IBM Cloud プロジェクト・サービスを有効にして、変数の適切な入力ウィジェットをレンダリングします。これにより、ユーザーが値を簡単に構成できるようになります。 以下に例を示します。
- VPC リージョン: IBM Cloudで使用可能なすべての VPC リージョンのドロップダウン・リスト。
- VPC SSH 鍵: SSH 鍵管理用のセキュア入力フィールド。
- クラスター: IBM Cloud上の使用可能なクラスターのドロップダウン・リスト。
詳しくは、 カタログ・マニフェスト値のローカル編集 を参照してください。
これらのガイドラインに従うことで、デプロイ可能なアーキテクチャーをより利用しやすくすることができ、ユーザーはそれを素早く理解してデプロイすることができます。
品質
デプロイ可能なアーキテクチャーの信頼性と一貫性を確保するには、品質検査を実装して自動化することが不可欠です。 これらのチェックは、コード品質、構成検証、テスト、および継続的統合など、デプロイ可能なアーキテクチャーのさまざまな側面をカバーする必要があります。
コード品質
Linting とコード・フォーマット設定を活用します。 一貫性のあるコーディング・スタイルとフォーマット設定を適用して、コードの読み取りと保守を容易にします。 デプロイメント中の問題を防止するために、コード内のエラーおよび警告を検出します。 Terraform コードだけではなく、デプロイ可能なアーキテクチャー内のすべてのリソースに関連するツール (Bash スクリプト、 Python スクリプト、YAML ファイルと JSON ファイル、Golang など) を取り込むことを検討してください。
例:
- Terraform コードをフォーマットするには、
terraform_fmt
を参照してください。 go-fmt
は、Go コードをフォーマット設定します。- Python コードをフォーマットするには、
black
を参照してください。 isort
: Python インポートをソートします。flake8
。 Python コードでエラーおよび警告を確認します。shellcheck
は、シェル・スクリプトにエラーおよび警告がないかどうかを検査します。golangci-lint
で、Go コードにエラーおよび警告がないかどうかを確認します。
構成の検証
静的検証を使用して、デプロイ可能なアーキテクチャーの構文と構成を検査し、それが正しく一貫性のあるものであることを確認します。 デプロイ可能なアーキテクチャーの構成を検証して、デプロイメント中にエラーが発生しないようにします。 ここでも、Terraform コードだけでなく、デプロイ可能なアーキテクチャー内のすべてのリソースに関連するツール (Bash スクリプト、 Python スクリプト、YAML ファイルと JSON ファイル、Golang など) を組み込むことを検討してください。
例:
- Terraform 構成を検証するには、
terraform_validate
を参照してください。 checkov
。Terraform コードにセキュリティーとコンプライアンスの問題がないかどうかを確認します。- 「
tflint
」をクリックして、エラーおよび警告がないかを確認します。 detect-secrets
。コード内のシークレットを検出します。hadolint
。 Docker ファイルでエラーおよび警告がないかどうかを確認します。helmlint
Helm チャートでエラーおよび警告を確認します。
テスト
インフラストラクチャー・コードのテストに関しては、アプリケーション・コードの場合と同様に、純粋な単体テストはありません。 代わりに、テスト戦略には、インフラストラクチャーを実際の環境にデプロイし、それが機能することを検証してからアンデプロイすることが含まれます。
自動化された検証テスト・スイート
以下の基礎をカバーする基本的な自動化テスト・スイートを用意することをお勧めします。
- デプロイメント・テスト
- インフラストラクチャー・コードを実環境に正常にデプロイできることを確認します。 仮想マシン、データベース、ネットワークなど、必要なすべてのリソースを作成します。 これらのテストは、インフラストラクチャー・コードが正しく、実際の環境に正常に適用できることを確認するのに役立ちます。 これらのテストでは、デプロイ可能なアーキテクチャーの入力パラメーターを変更して、一般的な使用法に合わせて広範囲のカバレッジを確保することをお勧めします。
- 破棄テスト
- インフラストラクチャー・コードを正常にアンデプロイまたは破棄できることを確認し、作成されたすべてのリソースを削除します。 これらのテストにより、インフラストラクチャー・コードを実際の環境から安全に削除することができ、孤立リソースを残すことも、意図しない結果を招くこともありません。
- べき等の検定
- 意図しない変更やエラーを発生させることなく、インフラストラクチャー・コードを複数回再適用できることを確認します。 つまり、適用される回数に関係なく、コードは同じ結果を生成する必要があります。 これらのテストは、 IBM Cloudなどの環境で重要です。この環境では、プラットフォームは、デプロイされたインフラストラクチャーと真のソース (自動化コード) との間のドリフトを検出するために、定期的に変更を検査します。 べき等テストは、インフラストラクチャー・コードが問題を引き起こすことなく、繰り返されるデプロイメントや更新を処理できることを確認するのに役立ちます。 また、これらのテストは、ドリフト検出機能が、意図された状態とインフラストラクチャーの実際の状態との間の矛盾を正確に識別し、修復できることを確認するのにも役立ちます。 詳しくは、 ドリフトの管理 を参照してください。
- バージョン・アップグレード・テスト
- エラーや意図しない変更を引き起こすことなく、インフラストラクチャー・コードをあるバージョンから別のバージョンに正常にアップグレードできることを確認します。 これらのテストにより、既存のリソースを中断または破棄したり、意図しない結果を招くことなく、インフラストラクチャー・コードを安全にアップグレードできることが保証されます。
拡張テスト・ケース
拡張テスト・ケースには、以下のようなシナリオが含まれます。
- 同じアカウントでのデプロイ可能アーキテクチャーの複数回のデプロイ
- リソース名の競合やその他の問題を引き起こすことなく、インフラストラクチャー・コードが同じアカウント内の複数のデプロイメントを処理できることを確認します。
- トラステッド・プロファイルを使用したデプロイ可能アーキテクチャーのデプロイ
- Cloud Identity and Access Management トラステッド・プロファイルを使用してインフラストラクチャー・コードをデプロイできることを確認します。 詳しくは、 認証方式の定義 を参照してください。
これらのテストを自動化されたテスト・スイートに組み込むことで、インフラストラクチャー・コードが信頼性が高く、堅固で、実動環境に安全にデプロイできるようにすることができます。
継続的統合
デプロイ可能なアーキテクチャーの信頼性、整合性、および保守容易性を確保するために、開発サイクルの早い段階で品質検査とテストが統合される、シフト・レフト・アプローチをお勧めします。 このアプローチは、エラーや欠陥を早期にキャッチするのに役立ち、ダウンストリームの問題の可能性を減らし、全体的な品質を向上させます。
このアプローチの一環として、以下の品質検査が推奨されます。
- クライアント・サイドの品質管理
- コードをコミットする前に開発者マシンで検査を実行するには、クライアント・サイドの Git commit hooks を使用する必要があります。 これには、コーディング標準、構文エラー、および機密データの検査が含まれます。 「コミット前」 などのツールを使用して、このプロセスを自動化できます。
- CI プラクティス
- 継続的統合 (CI) のベスト・プラクティスに従う必要があります。 ソフトウェア・エンジニアリング製品の一般的な手法は、以下のようなデプロイ可能なアーキテクチャー開発に適用されます。
- タイムリーなレビューを促進し、マージの競合を削減するために、焦点を絞った小規模なプル・リクエスト (PR) を処理する。
- 長期間存続するフィーチャー・ブランチを防止し、マージの複雑さを軽減するために、定期的にコード変更をメイン・ブランチに統合します。
- コードの品質と一貫性を確保するために、自動化されたテストとコード・レビューを実装する。
- デプロイ可能なアーキテクチャーの構成と構文を継続的に検証して、正確さと一貫性を確保する。
- CI パイプライン
- これらのプラクティスを自動化するために CI パイプラインをセットアップする必要があります。これにより、デプロイ可能なアーキテクチャーでのすべてのコード変更が体系的にテストされ、検証されるようになります。 このパイプラインにより、デプロイ可能なアーキテクチャーが正しく一貫して機能し、エラーや障害が早期にキャッチされることが保証されます。
ツールおよびリソース
高品質のデプロイ可能なアーキテクチャーの作成を容易にするために、ツールとリソースの包括的なセットが提供されています。 キュレートされた Terraform モジュールは、60 を超える再利用可能かつセキュアな検証済みのモジュールを備えた重要な要素であり、幅広いインフラストラクチャーのニーズに対応します。 これらのモジュールは、 GitHub で入手でき、 IBM Cloud 開発組織からのコントリビューションによってサポートされ、オープン・ソースのコントリビューション・モデルを通じて最新の状態に保たれています。
キュレートされた Terraform モジュールに加えて、デプロイ可能なアーキテクチャーとモジュール・オーサリングに役立つベスト・プラクティスとテンプレートも提供されています。 これには、文書、オーサリングのベスト・プラクティスに沿った GitHub デプロイ可能アーキテクチャー・リポジトリー・テンプレート 、および Terraform モジュールと Terraform ベースのデプロイ可能アーキテクチャーの両方に適用される モジュール・オーサリング・ガイドライン が含まれます。 これらのリソースを使用して、新しいデプロイ可能なアーキテクチャーを素早く開始することができます。
自動化されたテスト・フレームワークも提供されており、「Go」で記述されたテストを備えた、「Terratest」ライブラリーに基づいています。 このフレームワークは、冪等性テスト、アップグレードテスト、GitHub,をカバーし、https://github.com/terraform-ibm-modules/ibmcloud-terratest-wrapperライブラリのテストヘルパー関数を使用する。 詳しくは、 テスト資料を参照してください。
CI パイプラインの開発をサポートするために、以下のようなさまざまなツールとリソースが用意されています。
- 再使用可能な GitHub アクション。
- 文書の自動生成。
- IBM Cloudへのオンボーディングが自動化されました。
- カスタムの renovate を使用した依存関係の自動更新。
- ローカル開発セットアップ・ツールおよびプリコミット・フックの構成について詳しくは、 ローカル開発セットアップの資料 を参照してください。
これらのツールおよびリソースは、高品質のデプロイ可能アーキテクチャーの作成を加速および促進するように設計されています。
次のステップ
デプロイ可能なアーキテクチャーをビルドするためのベスト・プラクティスを理解したので、自動化コードを開発する前に、ツールとリソースを使用し、以下の IBM Cloud 資料を確認することができます。 これにより、 IBM Cloudで共有するソリューションを十分に計画して設計することができます。
- アーキテクチャーを設計するための計画と調査-ビジネス要件を満たす実行可能な再使用可能なパターンであるアーキテクチャーを設計していることを確認します。
- モジュールの作成、デプロイ可能なアーキテクチャの作成、デプロイ可能なアーキテクチャを積み重ねることの違いを理解していることを確認する 。
- ソリューションを共有する場所を決定するにはどうすればよいですか? ソリューションを共有または公開する予定の場所に応じて要件を満たすことができます。