「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 「コンテナのチェーン」も、比較的、
容易に構築できるようになってきた。
- これによって、SIでは、なかなかリーチしなかった、
辺りにリーチするようになってきた。
詳細 †
そもそも、 †
サービスのプラクティス
- 究極的にはスクリプト言語向け。
- SIだと頻繁に更新されることがない。
- テストやリリースのシナリオが再利用率が低い。
で、CI/CDから得られる効果が薄い。
どちらかと言うと †
分離環境の構築比重が高い。
- SIでは、
- UT / CT / TT / STなど環境が多段になっている。
- このため、これらの環境構築が優先される。
- 逆に、多段化されているので、CI/CDがハマらない。
(≒ CI/CD パイプラインが長すぎて構築できない。)
- サービス保守体制は、恐らく、SIのように多段になっていない。
昨今、Docker→Docker Compose→K8sの敷居が下がってきた。 †
...と、チェーン&リフトして行く開発方式のサポートにより、
- SIでもCI/CD的な事の有効が高まってきたと言える。
- ただ、コチラをやってみて、まだ、一部、
バカジャネーノ?と思う所はある(難し過ぎの意)
- 以下の ①~⑤ ようなチェーンがサクッと繋がる
ようになってくると実践的になって行くと思う。
① 全ローカル環境、 †
≒ 従来型の開発。
② ①のプログラムだけ、Docker化、 †
- ①のプログラムだけDocker化。
- ローカルのサービス群に対しては、10.0.75.1でブリッジ。
③ ②のサービス類だけ、Docker Compose化、 †
- ①のサービス類だけ、Docker ComposeでDocker化。
- 開発の対象というより、ローカル開発環境をDocker対応させるイメージ。
- Docker Composeで、ローカルと同一のポート番号でブリッジさせれば、
(portsの指定は、ホスト:コンテナなので、xxxx:xxxxにする)
このUXは、①の開発のUXと、あまり大きく変わらない。
④ ③にプログラムも加える。 †
- ③で作成した、システム一式を全てDockerにリフトする。
- プログラムをコンテナ化する。
- コンテナ化したプログラムの接続文字列類を、
ローカル・ブリッジ経由から、コンテナ直に変更する。
⑤ ④をKomposeなどでK8sに食わす。 †
XKE/XKSは高価なので、IaaSコンテナ・サーバがあると便利かも。 †
XKE/XKSは、CaaS、PaaSに相当。
ユースケース †
- Windowsの開発環境から、
コンテナ・イメージをコンテナ・レジストリをプッシュして、
- IaaSベースのLinuxコンテナ・サーバで
コンテナ・レジストリからコンテナ・イメージをプルして、
コンテナ・イメージを起動するみたいなイメージ。
役割分担 †
これは、Docker Desktop for Windowsでもできるんですが、
Nested VirtualizationをサポートするハイスペックなVMが必要になるので、
- 各種テスト環境(IaaSベースのLinuxコンテナ・サーバ)で、
- コンテナ・レジストリからコンテナ・イメージをプルして、
- コンテナ・イメージを起動する。
Linuxコンテナの開発をWindowsでやる理由 †
主な理由 †
結局、この辺なのかなと。
- OA環境からエディタまで、クライアントOSに、
Windowsが必要なケースは、まだ多そう。
- ビルド以降はLinuxでも良いと思うケド、まだ、
ビルド~単体テストなどは、Windowsでやるケースが多そう。
境界の設定 †
なので、
- Windowsで開発して、
- Linuxで実行・テスト
みたいな境界がどこかに必要になるのではないか?と。
参考 †
参考 †
OSSコンソーシアム †
開発基盤部会 Blog †
- Docker for Windows上で Docker Compose
でテストし、Open PaaSにデプロイできる
Tags: :コンテナ, :テスト, :デバッグ, .NET開発, :ツール類, :CI