fbpx

Docker Enterprise 3.0で伝統的アプリケーションをモダナイズしよう #docker

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

2年前から、Docker社はDockerコンテナ技術と、業界を主導するコンテナプラットフォームであるDocker Enterpriseによって伝統的なアプリケーションポートフォリオをモダナイズするために、お客様と協業してきました。そのようなアプリケーションは典型的なモノリシックの性質で、Windows Server 2008やWindows Server 2003のようなかなり古いOS上で動作しており、オンプレミスのデータセンターからパブリッククラウドへの移行が困難です。

Dockerプラットフォームは、特定のOSからアプリケーションを分離し、マイクロサービスアーキテクチャパターンを有効化し、オンプレミスやクラウド、それらのハイブリッド環境にわたるポータビリティを促進することにより、これらの泣き所を緩和します。

Modernizing Traditional Applications (MTA; 伝統的アプリケーションのモダナイズ)プログラムが成熟したことで、Docker社はコンテナへの移行を加速し、Docker Enterpriseプラットフォームから得られる価値を体験するまでに必要な時間を減じるツールや方法論を開発してきました。初回のアプリケーション評価から、クラスタ上でのコンテナ化アプリケーション実行まで、Docker社はMTAの道のりにおいてお客様の体験を改善することをお約束します。

アプリケーションの発見と評価

企業は網羅的なアプリケーションポートフォリオを開発・維持しています。そのようなアプリは自社とサードパーティの開発チームの両方が開発した無数の言語・フレームワーク・アーキテクチャで構成されています。コンテナ化の道のりにおけるはじめの一歩は、どのアプリケーションを最初の候補とするか、どこから手順を始めるかを決めることです。

ポートフォリオの中で最も複雑で洗練されたアプリケーションを選んでコンテナ化を始めることが基本です。根拠としては、もし最も困難なアプリで機能するなら、それほど複雑ではないアプリでも動作するだろうからです。Dockerエコシステムが初めての組織にとって、この方法は困難な戦いになるでしょう。一方、それほど複雑でないがポートフォリオ全体から見れば代表的で、組織の目的と足並みが揃っているアプリケーションのコンテナ化から始めると、より困難なアプリケーションに対応する前にコンテナの経験やスキルを磨くことができるでしょう。

Docker社は、アーキテクチャの特徴とコンテナ化に必要な作業量の見積もりに基いて似たようなアプリケーションを一緒に「バケツに入れる」ことを手助けするための原型群を開発しました:

アプリケーションを各原型に当てはめるためにポートフォリオを検証すると、対象のアプリケーションポートフォリオの作業量を見積ることと、コンテナ化プロジェクトの最初にふさわしい候補を決定することに役立ちます。このような評価を実施するためにさまざまな方法があります:

  • 手動での発見と評価は、各アプリケーションポートフォリオの人間による検証を必要とします。アプリの数が少なければこの方法が取れないこともないですが、数百・数千ともなれば困難です。
  • 組織で使われている構成管理データベースは、環境についての既存の詳細な情報を提供します。そのようなデータを調査すると、アプリケーションの特徴や関連する原型を確立することに役立ちます。
  • RISC NetworksMovereBMC Helix Discoveryなどのベンダーによる自動化ツールは、定期的なサーバ監視とレポートの生成により、データセンター環境の詳細な評価を提供します。このようなレポートはコンテナ化の初期に利用でき、ワークロード間の相互依存関係を理解することに役立つでしょう。
  • システムインテグレータは、正式なポートフォリオ評価を行うことに従事しているでしょう。そのようなSIerは、アプリケーション評価を行うことに役立つ成熟した方法論やプロプライエタリなツールを持っています。

コンテナ化の自動化

伝統的なアプリケーション用のコンテナを構築することには、いくつかの課題が存在するでしょう。アプリケーションの本来の開発者が去って久しいと、アプリケーションロジックがどのように構築されているかを理解することが難しくなります。正式なソースコードはしばしば存在せず、その代わりにバージョンコントロールシステムに現在のソースが存在しない状態のまま仮想マシン上でアプリケーションが動作していることもあるでしょう。コンテナ化の作業を数十・数百ものアプリケーションに広げていくことは、大変時間がかかって複雑です。

これらの泣き所は、Docker社が開発した変換ツールを使うことで緩和することができます。Docker Enterpriseプラットフォームの一部であるこのツールは、仮想マシンやベアメタルサーバー上で動作するアプリケーション用のDockerfileを自動生成するために開発しました。サーバをスキャンして、OSがどのように設定されているか、ウェブサーバがどのように設定されているか、アプリケーションコードがどのように実行されているかを判断します。そしてこれらのデータをDockerfileにまとめ上げ、アプリケーションコードをディレクトリに集め、モダンなOS上でdocker buildコマンドを実行する準備を整えます。例えば、Windows Server 2003環境をスキャンし、異なるIISアプリケーションプールで実行しているIISベースの.NETアプリケーション用のDockerfileを生成することができます。この自動化により、ユーザはDockerfileの作者から編集者に成り代わるので、伝統的アプリケーションのコンテナ化に必要な時間と作業を大幅に削減することになります。

クラスタ管理

単一のサーバ上でコンテナを実行することは、単独の開発者にとっては十分でしょう。しかし、コンテナベースのワークロードを処理するには、サーバが協調動作するクラスタを用います。歴史的にこのようなクラスタの作成・管理は、どちらもパブリッククラウドプロバイダが完全に管理していて、ユーザを特定のインフラに結びつけていました。

Docker Enterprise 3.0プラットフォームは、"Docker Cluster"という新しいDocker CLIプラグインを含んでいます。Docker Clusterは、宣言的YAMLファイルを利用してインフラリソースのプロビジョニングと設定を自動化することで、Docker Enterpriseクラスタの初期作成を簡略化します。Docker ClusterはAzure、AWS、VMwareを含むさまざまなインフラベンダに対して使うことができ、それらに対して同一のコンテナプラットフォームを起動します。これにより、単一のプロバイダにロックインされる必要性を減じる柔軟性を追加し、マルチクラウド・ハイブリッド環境に対する一貫性を実現し、KubernetesまたはSwarmオーケストレータ経由でコンテナをデプロイする選択肢まで提供します。

自動化ツールだけでなく、Docker社は詳細なインフラ特有のリファレンスアーキテクチャも提供します。これは認定インフラパートナー向けに、さまざまなプロバイダに対するベストプラクティスを取り揃えたものです。これらのドキュメントは、自動化ツールに加えてDocker Enterpriseのインストールについての網羅的なガイドを提供します。Docker Enterpriseを一般的なコンテナエコシステムソリューションに統合する追加的なガイドは、Docker社のライブラリのSolution Briefsにあります。

Docker Enterpriseクラスタのプロビジョニングと管理は、Docker Clusterの導入、Solution Briefs、リファレンスアーキテクチャにより、とても簡単になりました。これらの機能により、コンテナクラスタの設定に余分な時間を使うことより、レガシーアプリケーションのコンテナ化に集中することができます。

さあ始めよう


原文: Docker Tools for Modernizing Traditional Applications

新規CTA