マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

内容

「コンテナのチェーン」が意味するところは、

CI/CD パイプラインDevOpsワークフロー)に、

コンテナの

  • ビルド・システム
    • プロジェクト・ファイル
    • Dockerfile
    • ビルド・スクリプト
  • コンテナ・レジストリへの登録スクリプト
  • IaCによるデプロイ自動化
    • compose
    • manifest

を含め、

開発 → UT → CT → IT → ST環境のチェーンを構築する。

背景

  • 比較的、容易に構築できるようになってきた。

辺りにリーチするようになってきた。

詳細

SIが(で)、CI/CDCI/CD パイプラインにリーチしない理由

そもそも、

サービスのプラクティス

  • 究極的にはスクリプト言語向け。
  • SIだと頻繁に更新されることがない。
  • テストやリリースのシナリオが再利用率が低い。

で、CI/CDから得られる効果が薄い。

どちらかと言うと

分離環境の構築比重が高い。

  • SIでは、
    • UT / CT / TT / STなど環境が多段になっている。
    • このため、これらの環境構築が優先される。
    • 逆に、多段化されているので、CI/CDがハマらない。
      (≒ CI/CD パイプラインが長すぎて構築できない。)
  • Webでは、
    Webサービス保守体制は、恐らく、
    SIのように多段になっていない。

昨今、Docker → Docker Compose → K8sの敷居が下がってきた。

...と、チェーン&リフトして行く開発方式のサポートにより、

  • SIでもCI/CD的な事の有効が高まってきたと言える。
  • ただ、コチラをやってみて、まだ、一部、
    バカジャネーノ?と思う所はある(難し過ぎの意)
  • 以下の ①~⑤ ようなチェーンがサクッと繋がる
    ようになってくると実践的になって行くと思う。

① 全ローカル環境、

≒ 従来型の開発。

② ①のプログラムだけ、Docker化、

③ ②のサービス類だけ、Docker Compose化、

  • のサービス類だけ、Docker ComposeでDocker化。
  • 開発の対象というより、ローカル開発環境をDocker対応させるイメージ。
  • Docker Composeで、ローカルと同一のポート番号でブリッジさせれば、
    (portsの指定は、ホスト:コンテナなので、xxxx:xxxxにする)
    このUXは、の開発のUXと、あまり大きく変わらない。

④ ③にプログラムも加える。

  • で作成した、システム一式を全てDockerにリフトする。
  • プログラムをコンテナ化する。
  • コンテナ化したプログラムの接続文字列類を、
    ローカル・ブリッジ経由から、コンテナ直に変更する。

⑤ ④をKomposeなどでK8sに食わす。

XKE/XKSは高価なので、IaaSのLinuxVM(コンテナ・サーバ)があると便利かも。

XKE/XKSは、CaaS、PaaSに相当。

ユースケース

ユースケースとしては、

コンテナ・イメージを起動するみたいなイメージ。

役割分担

これは、Docker Desktop for Windowsでもできるんですが、
Nested VirtualizationをサポートするハイスペックなVMが必要になるので、

  • 一般開発者は、
    • Windows開発環境で開発・テスト。
    • 必要なら、WSL(1)を使用して開発・テスト。
  • 各種テスト環境(IaaSベースのLinuxコンテナ・サーバ)で、

その他

コンテナ

コンテナ・イメージ

Dockerイメージ

コンテナ・レジストリ

Dockerレジストリ

Windowsで開発する理由(境界分離の1要素)

主な理由

結局、この辺なのかなと。

  • OA環境からエディタまで、クライアントOSに、
    Windowsが必要なケースは、まだ多そう。
  • ビルド以降を、全てLinux化することも可能と思うケド、
    まだ、ビルド~単体テスト迄は、Windowsでやるケースが多そう。

境界の設定

  • なので、

みたいな境界が何処かに
必要になるのではないか?と。

  • 以下の様なパターンが考えられる。

参考

  • MosP
    • Windowsで開発してるらしい(Java)。
    • サポートのある実行環境はCentOSとのこと。

※ とは言え、Linux開発環境の整備も進めています。

参考

テスト自動化

CI/CD パイプライン

OSSコンソーシアム

開発基盤部会 Wiki

開発基盤部会 Blog


Tags: :コンテナ, :テスト, :デバッグ, .NET開発, :ツール類, :CI


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-31 (金) 09:26:38 (4d)