説明するコードと構成の現在の構成は、関連する技術的ソリューションによって構成されています。これは悪い設計で、メンテナンスアクティビティに多くのオーバーヘッドが追加され、多くのトラップが追加されます。代わりに、その組織は、展開しているアーティファクトを中心に構築する必要があります。
この理由は、アーティファクト(例: Dockerイメージまたはソフトウェアパッケージ)を以下の動詞のオブジェクトと見なしたいためです。
実行したい自動化されたタスクの最小限のセットを検討します。テスト動詞の実装方法について何かを変更したい場合は、適切なリポジトリー内のアーティファクトに対応するフォルダーにアクセスして、更新が必要なjenkins固有の自動化項目を見つけるのは簡単です。代わりに、自動化レシピが技術的ソリューションを中心に構成されている場合、ジェンキンスがテスト手順に関与していることをすぐに理解し、アーティファクト関連の自動化アイテムを見つける必要があります。複雑な状況では、技術的なソリューションを中心とした組織が更新を非常に困難にします。これは、サービスに関連するすべての技術的なソリューションをアプリオリに知って、それに応じて更新する必要があるためです。
たとえば、ウェブサイトのコードとマイクロサービス「a」を含むリポジトリには、操作専用の次のサブディレクトリを含めることができます。
./ops/website
./ops/micro-service-a
それぞれにとと呼ばれる3つのスクリプトbuild
がtest
ありdeploy
ます。自動化アイテムの構成がなんとかして明確になったので、構成に注目しましょう。
構成編成に関する主な条件と要件deploy
は、サービスのようなアーティファクトに適用されるときに動詞によって設定されます。deploy
動詞は、次のパラメータを持っている必要があります。
- デプロイするアーティファクトのバージョン、
- アーティファクトのデプロイメントターゲット。デプロイされたアーティファクトが実行される具体的な環境を示します(例:クラスターと通信するエンドポイント)
- それは他のエンドポイントへの接続に使用する資格情報(たとえば、データベース)
- のランタイム構成(キャッシュエントリの存続期間など)
運用の観点から見ると、このパラメータ化の内訳は、ランタイム構成にバンドルできる資格情報は別として、展開の問題の自然な自由度と一致しますが、不用意に広がらないように分離することをお勧めします。