当サイトを最適な状態で閲覧していただくにはブラウザのJavaScriptを有効にしてご利用下さい。
JavaScriptを無効のままご覧いただいた場合には一部機能がご利用頂けない場合や正しい情報を取得できない場合がございます。
同意しました
本サイトではWebサイトのエクスペリエンスを向上させるために、Cookieを使用しています。Cookieはブラウザの設定から無効にできます。詳細はこちらから

Blog

ブログ

コンテナによる開発者の立ち上げ時間の短縮

By Ryan Overton  

今年のパンデミックは、今日の私たちが働く方法だけでなく、私たちが働く環境を劇的に変えました。企業はまた、日常業務の実施方法を調整する必要がありました。残念ながら、これは一部の地域の労働力を減らし、残りの地域にワークロードを広めています。

こすりがある

多くのクライアントを持つ代理店では、開発者は、古いものと新しいものの両方の様々なツールセットやテクノロジースタックで作業することができます。これらのプロジェクトに開発者をオンボーディングすることは、簡単な作業ではありません。正しいツール、ライブラリ、SDK がインストールされていること、およびプロジェクトの正しいバージョンを使用していることを確認するには、数日、場合によっては数週間かかる場合があります。私たちは、企業がこの立ち上がり時間に費やす贅沢や余分なお金を持っていない時代にいます。

数年前、私はそのようなプロジェクトの一部であり、ソリューションアーキテクトと協力して、ソリューションをコンパイルしてローカルマシンで実行するのに2週間かかりました。プロセスは文書化されていましたが、常にギャップがあります。そして、プロジェクトが成長するにつれて、これらのギャップは広がりました。

では、開発者の立ち上げ時間を数日から数週間から数時間に減らすにはどうすればよいでしょうか。

仮想マシンは、日を保存します

開発の初期段階で試したアイデアの 1 つは、すべてのクライアントに仮想マシンを作成することでした。この仮想マシンには、その特定のクライアントのプロジェクトで作業するために必要なすべての特定のツールが含まれます。クライアントのソース コードを仮想マシンに保存して、ソリューションをできるだけ迅速に実行することもできます。

古いクライアントの仮想マシンに戻り、更新プログラムの適用に次の数時間を費やするまでは理想的に思えました。また、クライアントの増加に応じて、使用していた仮想マシンの数も増加しました。そのため、ディスク領域が不足しました。

しばらくすると面倒になりすぎて、仮想マシンの使用を完全にやめました。

救助へのコンテナ

数年前、私はアプリケーションをテストして実行するためのこの素晴らしい新しい方法について聞きました。ローカル マシンでの実行方法は、他の開発者のマシンや運用環境のクラウドとまったく同じになります。これはコンテナでした。

Dockerは、コンテナを「開発者がアプリを環境から切り離し、私のマシン上の頭痛を解決できる標準化されたソフトウェアユニット」と説明しています。


オペレーション システムのコピー全体を含む仮想マシンとは異なり、コンテナーはホストと OS を共有します。Docker デスクトップや Docker Compose などのツールを使用して、アプリケーション サービスを定義し、複数のコンテナーを一緒に実行するように構成できます。

%開始コード ブロック%

#このイメージは、ケンティコEMSアプリケーションをインストールし、ファイルをコピーして、提供するために必要

# 完全に機能するケンティコ EMS インスタンス。と組み合わせて使用するように設計されています。

#ここに位置するドッカー構成ファイル。https://github.com/OnyxPrime/kentico-ems-docker-poc

mcr.microsoft.com/windows/servercore/iis ASベースから

アイサイトとしてのベースから

# イメージ上の IIS 機能を有効にする

パワーシェルを実行.exe追加 WindowsFeature Web サーバー、Web サーバー

パワーシェルを実行.exe -NoProfile -コマンド削除-項目 - 再呪い C:\inetpub\wwwroot\*

パワーシェルを実行.exe有効化 - Windows オプション機能 - オンライン -機能名 IIS-Web サーバーロール

パワーシェルを実行.exe有効にする - Windows オプション機能 - オンライン -機能名 IIS-Web サーバー

パワーシェルを実行.exe有効にする - Windows オプション機能 - オンライン -機能名 IIS -一般的なHttp機能

パワーシェルを実行.exe有効化 - Windows オプション機能 - オンライン -機能名 IIS-Http エラー

パワーシェルを実行.exe有効化 - Windows オプション機能 -オンライン -機能名 IIS-HttpRedirect

パワーシェルを実行.exe有効にする -Windows オプション機能 -オンライン -機能名 IIS アプリケーション開発

パワーシェルを実行.exe有効にする - Windows オプション機能 -オンライン -機能名 NetFx4 拡張-ASPNET45

パワーシェルを実行.exe有効にする - Windows オプション機能 -オンライン -機能名 IIS-NetFxEx拡張性45

パワーシェルを実行.exe有効化 - Windows オプション機能 -オンライン -機能名 IIS-正常性および診断

パワーシェルを実行.exe有効化 - Windows オプション機能 -オンライン -機能名 IIS-HttpLogging

パワーシェルを実行.exe有効化 - Windows オプション機能 -オンライン -機能名 IIS-ログライブラリ

パワーシェルを実行.exe有効にする -Windows オプション機能 -オンライン -機能名 IIS-要求モニター

パワーシェルを実行.exe有効化 - Windows オプション機能 - オンライン -機能名 IIS-Http トレース

パワーシェルを実行.exe有効にする - Windows オプション機能 - オンライン -機能名 IIS-セキュリティ

実行パワーシェル.exe有効にする-Windows オプション機能 -オンライン -機能名 IIS 要求フィルタリング

パワーシェルを実行.exe有効にする - Windows オプション機能 - オンライン -機能名 IIS-パフォーマンス

パワーシェルを実行.exe有効化 - Windows オプション機能 -オンライン -機能名 IIS-Web サーバー管理ツール

パワーシェルを実行.exe有効にする -Windows オプション機能 -オンライン -機能名 IIS-IIS6管理互換性

パワーシェルを実行.exe有効にする - Windows オプション機能 - オンライン -機能名 IIS メタベース

パワーシェルを実行.exe有効にする -Windows オプション機能 -オンライン -機能名 IIS 管理コンソール

パワーシェルを実行.exe有効にする - Windows オプション機能 - オンライン -機能名 IIS-基本認証

パワーシェルを実行.exe有効にする -Windows オプション機能 - オンライン -機能名 IIS-Windows 認証

パワーシェルを実行.exe有効化 - Windows オプション機能 - オンライン -機能名 IIS 静的コンテンツ

パワーシェルを実行.exe有効化 - Windows オプション機能 - オンライン -機能名 IIS-デフォルトドキュメント

パワーシェルを実行.exe有効にする -Windows オプション機能 -オンライン -機能名 IIS-Web ソケット

パワーシェルを実行.exe有効にする - Windows オプション機能 - オンライン -機能名 IIS-アプリケーションイニト

パワーシェルを実行.exe有効にする -Windows オプション機能 -オンライン -機能名 IIS-ISAPIExtensions

パワーシェルを実行.exe有効化 - Windows オプション機能 - オンライン -機能名 IIS-ISAPI フィルター

パワーシェルを実行.exe有効化 - Windows オプション機能 -オンライン -機能名 IIS-Http 圧縮静的

パワーシェルを実行.exe有効化 - Windows オプション機能 -オンライン -機能名 IIS-ASPNET45

アイサイトからファイナル

# 作業ディレクトリを設定する

ワークディル/ケンティコ

# ケンティコ EMS インストーラとインストーラ設定ファイルを作業ディレクトリにコピーします。

Kentico_12_0.exeをコピーします。

コピーケンティコインストールプロファイル.xml .

# 指定された設定ファイルを使用してケンティコ EMS インストーラを実行します。

ラン Kentico_12_0.exe ケンティコインストールプロファイル.xml

# 作業ディレクトリを変更し、以前のインストールから EMS ディレクトリにファイルをコピーします。これらのファイルがなければ、

# EMSアプリケーションは、SQLインストールなしで基本インストールになり、ユーザーは、提供するように求められます

# 管理ポータルにアクセスしようとしたときにインストールを完了するための SQL サーバー名とデータベース名。

#WORKDIR /inetpub

#COPY /更新 .

%エンド コード ブロック%

コンテナー イメージを作成すると、新しいチーム メンバーと共有して、すばやく実行できます。コンテナは、アプリケーションでテストを実行するための一貫性のある安定した環境を提供します。

コンテナ化された Kentico 12 環境で実際に体験できます。手順と Docker ファイルは 、こちらからご覧いただけます

さらに一歩

しかし、アプリケーションを実行するという考え方をさらに一歩進め、コンテナ内から開発する機能を追加できれば🤯

これは、マイクロソフトのチームが Visual Studio コード (VSCode) の リモート コンテナー 拡張機能を導入したときに行ったものです。この拡張機能を使用すると、VSCode はコンテナーに接続し、プロジェクトに定義されている必要な拡張機能を読み込むだけでなく、コンテナー内にターミナル ウィンドウを提供してアプリケーションをビルドおよび実行できます。

さらに、アプリケーションのビルドと実行に必要な SDK、CLI、またはその他のユーティリティの特定のバージョンをインストールできます。

制限

マイクロソフトは、さまざまなプログラミング言語やフレームワーク用のリモートコンテナ拡張機能で使用するように設計されたコンテナイメージをいくつか作成しましたが、残念ながら、それらはすべてLinuxオペレーティングシステムに基づいています。したがって、何らかの理由で Windows に依存している場合、コンテナー内での開発は現在、ユーザーの選択肢ではありません。

多くの Windows コンテナーを使用できることに言及する価値があります。この制限は、コンテナー内での開発のみを目的とし、コンテナーからアプリケーションを実行する必要はありません。

Visual Studio のフル バージョンを使用する場合、または使用する必要がある場合、リモート開発はユーザーの選択肢ではありません。この書き込みの時点で、リモートコンテナ拡張機能はVSCodeに対してのみ存在します。Visual Studio では、Docker コンテナー内でアプリケーションを実行/デバッグするための別の実装が用意されています。

アプリケーションに Windows に依存するパーツと、プラットフォーム間で実行できる機能 (Kentico Xperience 13など) を持つパーツがある場合は、リモート コンテナが選択肢になる可能性があります。

プロセスを加速する

コンテナーを使用してアプリケーションを実行すると、プロジェクトで開発者が急増するプロセスを迅速に高速化できます。また、クロスプラットフォームを実行できる最新の開発フレームワークにチームが移行するにつれて、開発環境全体のコンテナ化に向けて作業を進めることができます。

今後数か月の間に、より複雑なアプリケーション(Kentico Xperience 13 など)を別のフロントエンド、バックエンド、データベースでコンテナ化するプロセスに深く取り組む予定です。そして、Kentico Xperienceオデッセイがベータ版のリリースを開始すると、最新のアプリケーションでリモートコンテナを使用するのがいかに簡単であるかがわかります。