コンテナを本番環境で実行するための 6 つの注意事項と管理方法

コンテナを本番環境で実行するための 6 つの注意事項と管理方法

コンテナ技術によりアプリケーションのパッケージ化が非常に簡単になり、コンテナは将来最も主流の展開方法になるでしょう。権威あるコンサルティング会社であるガートナーによれば、2022 年までに世界中の企業の 75% 以上がコンテナ内でアプリケーションを実行するようになり、これは現在の 30% 未満の割合と比べると大幅な増加となります。

データだけから判断すると、コンテナと Kubernetes は近年、従来のデータセンターやクラウドネイティブ アプリケーションで広く使用されています。しかし、現在のコンテナ エコシステムは完璧ではなく、十分に成熟した運用実践事例が不足しています。コンテナの統合、ネットワーク、自動展開は依然として厄介な問題です。さらに、クラウドネイティブ アプリケーションには高度に自動化されたインフラストラクチャ環境と専門的な運用および保守スキルが必要であるため、企業におけるコンテナの適用には依然として一定の制限が課せられます。

実稼働環境でコンテナをデプロイする際の考慮事項

したがって、特定の本番環境でコンテナを実行するには、依然として長い学習プロセスが必要です。コンテナを本番環境に導入する前に、企業は次の 6 つの質問を慎重に検討する必要があります。

  • DevOps:開発と運用を行い、アジャイル開発および展開モデルを実現する DevOps チームはありますか?
  • ワークロード:コンテナ化されたワークロードを担当する特定の人物を特定しましたか?
  • 迅速な統合: IT インフラストラクチャとの統合方法を理解しており、クロスプラットフォーム統合機能を備えていますか?
  • 支払いモデル:使用されているランタイム エンジンとオーケストレーション エンジン、およびその支払いモデルをご存知ですか?
  • トレーニング スキル:コンテナの展開を成功させるために、どのような新しいスキルを習得し、どのような規律を採用する必要があるかご存知ですか?
  • ROI:投資収益率とは何ですか?

しかし、多くの企業組織では、実稼働環境でコンテナを実行するために必要な作業量を過小評価していることがよくあります。企業内でコンテナを適切に動作させたい場合は、次の 6 つの間違いを避けるようにしてください。

  • 成熟した DevOps プラクティスなしでコンテナをデプロイする。
  • 独自のコンポーネントを備えたコンテナを選択すると、ロックインが発生します。
  • 企業組織全体に実装された共通のツールセットとコンプライアンス要件はありません。
  • 開発・運用担当者向けの最先端の技術研修サービスは提供されていません。
  • ツールを選択する際に、開発者やオペレーターのニーズは考慮されていませんでした。
  • 非常に大きな依存関係と相関関係を持つ複雑なワークロードが選択されました。

コンテナの実践では6つの側面の管理に重点を置く必要がある

企業がコンテナを本番環境に導入した後は、コンテナ自体のセキュリティに特別な注意を払う必要があります。たとえば、Docker ホストのセキュリティ、Docker イメージのセキュリティ、オペレーティング環境のセキュリティ、オーケストレーションのセキュリティなどの問題はすべて、コンテナのセキュリティを保護することが継続的な課題となることを意味します。コンテナを本番環境に導入する場合は、セキュリティ コンプライアンス、継続的な監視、データの永続性、ネットワーク セキュリティの問題、完全なライフサイクル管理、コンテナ オーケストレーションなどの問題に重点を置く必要があります。

安全性とコンプライアンス

安全性は必ずしも後から考えるものではありません。 DevOps プロセスに組み込む必要があります。企業組織は、アプリケーションの構築、開発、展開、運用などのさまざまな段階を含むコンテナのライフサイクル全体にわたってセキュリティの問題を考慮する必要があります。

  1. イメージスキャンを企業の CI/CD に統合して、脆弱性をタイムリーに検出します。ソフトウェア開発ライフサイクルのビルドおよび実行フェーズ中にアプリケーションをスキャンします。オープンソースのコンポーネント、ライブラリ、フレームワークのスキャンと検証に重点を置いています。
  2. CIS ベースラインに対してセキュリティ構成を確認します。
  3. SSL キーやデータベース資格情報などの機密情報を暗号化して管理し、実行時にのみ提供するための必須アクセス制御を確立します。
  4. ポリシー管理を通じて特権コンテナを回避し、潜在的な攻撃の影響を軽減します。
  5. 悪意のあるアクティビティを防ぐために、ホワイトリスト、動作監視、異常検出を提供するセキュリティ製品を導入します。

継続的な監視

開発者はコンテナの動作を監視せずに、コンテナの機能的なアプリケーションに集中します。従来の監視ツールは、CPU 使用率、メモリ使用率、I/O、レイテンシ、ネットワーク帯域幅などのホストレベルのメトリックに主に焦点を当てています。しかし、これでは十分とは言えず、コンテナまたはワークロード レベルのメトリック データが不足しています。

  1. セキュリティ担当者は、コンテナとサービス レベルの監視に重点を置き、物理ホストだけでなく「アプリケーション」のきめ細かい監視を実現する必要があります。
  2. コンテナ オーケストレーション、特に Kubernetes との緊密な統合を提供するツールとベンダーを優先します。
  3. きめ細かなログ記録、自動サービス検出、リアルタイムのアクション推奨を提供するツールを使用します。

コンテナストレージ

ステートフル ワークロード用のコンテナの使用が増えるにつれて、顧客は物理ホスト外のデータの永続性とセキュリティを考慮する必要があります。コンテナがなくなっても、データは残っているはずです。企業におけるコンテナの主な使用例がレガシー アプリケーションまたはステートレスな使用例の移行である場合、ストレージのセキュリティ要件は大幅に変わりません。ただし、アプリケーションをリファクタリングする場合、または新しいマイクロサービス指向のステートフル アプリケーションを配信する場合、セキュリティ専門家はワークロードの可用性、柔軟性、パフォーマンスを最大化するストレージ プラットフォームを必要とします。たとえば、コンテナの移行とデータ共有をより適切にサポートするために、Docker はボリューム プラグイン インターフェイス メカニズムを導入し、サードパーティのストレージ ベンダーが Docker Volume をサポートし、これに基づいて機能を拡張できるようにしました。

  1. マイクロサービス アーキテクチャの原則に準拠し、API 駆動型の分散アーキテクチャをサポートし、ローカル クラウドとパブリック クラウドの両方の展開をサポートするストレージ ソリューションを選択します。
  2. 独自のプラグインやインターフェースは避けてください。代わりに、Kubernetes と緊密に統合し、コンテナ ストレージ インターフェース (CSI) などの標準インターフェースをサポートするベンダーを優先します。

コンテナネットワーク

開発者はソフトウェア開発の俊敏性と移植性を最も重視しており、ソフトウェア開発ライフサイクル全体にわたってアプリケーションを移植できることを望んでいます。従来のエンタープライズ ネットワーク モデルでは、IT 担当者が各プロジェクトの開発、テスト、および運用のためのネットワーク環境を作成しますが、それでも必ずしもビジネス フローと一致しているわけではありません。コンテナビジネス環境では、コンテナネットワークの問題はさらに複雑になります。たとえば、コンテナ ネットワークは複数のレイヤーにまたがります。ホスト ポートで直接サービスを開くことは可能ですが、複数のアプリケーションをデプロイするときにポートの競合が発生し、クラスターの拡張やホストの置き換えが難しくなります。

したがって、ネットワーク ソリューションは、Kubernetes プリミティブおよびポリシー エンジンと緊密に統合する必要があります。セキュリティおよび運用担当者は、高度なネットワーク自動化を実現し、開発者に適切なツールと十分な柔軟性を提供するよう努める必要があります。

  1. 既存のコンテナ・アズ・ア・サービス (CaaS) またはソフトウェア定義ネットワーク (SDN) ソリューションが Kubernetes ネットワークをサポートしているかどうかを分析します。そうでない場合は、コンテナ ネットワーク インターフェイス (CNI) を介してアプリケーション層ネットワークとポリシー エンジンを統合するオプションがあります。
  2. 選択した CaaS または PaaS ツールがホスト クラスターの負荷分散制御を提供できることを確認するか、サードパーティのプロキシ サーバーを選択してください。
  3. スキルギャップを埋めるために、Linux ネットワークと自動化ネットワーク ツールの使用方法についてネットワーク エンジニアをトレーニングします。

コンテナライフサイクル管理

高度に自動化されたシームレスなアプリケーション配信パイプラインを実現するには、組織はコンテナ オーケストレーションを、構成管理ツールや Chef、Puppet、Ansible、Terraform などのアプリケーション リリース自動化ツールなどの他の自動化ツールで補完する必要があります。これらのツールと CaaS 製品には重複する部分もありますが、その重複よりも補完性がはるかに重要です。

  1. イメージのサイズ、コンポーネントを追加する開発者の柔軟性、ライセンスを考慮して、コンテナ ベース イメージの標準を確立します。
  2. コンテナ対応の構成管理システムを使用して、コンテナ イメージのライフサイクルを管理します。システムは、ルールで指定されたイメージの新しいバージョンがウェアハウスにプッシュされたことを検知すると、すぐに自動デプロイメント機能をトリガーして、指定されたコンテナを新しいイメージで更新します。
  3. CaaS プラットフォームをアプリケーション自動化ツールと統合して、アプリケーション ワークフロー全体を自動化できるようにします。

コンテナオーケストレーション

コンテナ オーケストレーション ツールは、さまざまなサービスを運ぶコンテナ クラスターを管理するためです。 Kubernetes コミュニティとサードパーティのセキュリティ組織の両方が、コンピューティング リソースのセキュリティ、クラスターのセキュリティ、関連するコンポーネントのセキュリティなど、Kubernetes のコンポーネントとリソースのセキュリティに対して対応する改善とセキュリティ強化を行ってきました。ここで考慮すべき重要なポイントは、プライバシー管理、認証管理、アイデンティティ保護制御、オーケストレーション制御プレーン、ネットワーク証明書などであり、これらはすべて包括的に検討する必要があります。

その中でも、コンテナの展開の鍵となるのは、オーケストレーション機能とスケジューリング機能を提供することです。オーケストレーション層はアプリケーションとインターフェースし、コンテナを望ましい状態で実行し続けます。コンテナ スケジューリング システムは、オーケストレーション レイヤーの要件に従って、コンテナをクラスター内の最適なホストに配置します。たとえば、Apache Mesos はスケジューリングを提供し、Marathon はオーケストレーションを提供します。また、Kubernetes や Docker Swarm などの単一のツールは、オーケストレーションとスケジューリングの両方を提供します。顧客がオーケストレーション エンジンまたは Kubernetes ディストリビューションの間で決定を下す場合、次の側面に重点を置く必要があります。

  • サポートされている OS およびコンテナ ランタイムの深さと幅。
  • 製品全体の実行時の安定性。
  • スケーラビリティ;
  • ステートフル アプリケーションのサポート レベル。
  • 操作のシンプルさとベンダーサポートの品質。
  • オープンソースのサポートと開発。
  • 導入の難しさおよびライセンス料金。
  • ハイブリッド マルチクラウドをサポートします。

コンテナ技術とDevOps

コンテナと DevOps はコーヒーのように相性が良いです。コンテナの迅速な開発には、DevOps の実践的な経験も役立ちます。従来の開発環境では、開発チームがコードを記述し、QA チームがソフトウェア アプリケーションをテストし、日常的な管理のために運用チームに引き渡します。従来の開発モデルの問題を解決するために、多くの企業が「DevOpsプロセス+マイクロサービス理論+コンテナとコンテナオーケストレーションツールの活用」を採用しています。実際、DevOps の前身は CI/CD です。現在、DevOps は、リリースやデプロイメントなどのいくつかの標準と管理を追加するだけの問題です。

クラウド ネイティブ環境では、ソフトウェアの開発とリリースの速度が速いだけでなく、プラットフォーム自体も動的であり、機能と規模の面で常に進化しているため、製品のように扱う必要があります。プラットフォーム運用チームの目標は、自動化され、拡張可能で、回復力のある標準化されたプラットフォームを構築することです。プラットフォーム運用チームの責任には、CaaS および PaaS 製品の導入、運用、カスタマイズ、標準化されたミドルウェアの開発と運用、IaaS プロビジョニングの自動化、導入、安全なアクティベーションが含まれます。企業組織では、孤立した IT 運用チームではなく、コンテナを運用するための DevOps チームを作成する必要があります。

コンテナ セキュリティを例にとると、企業にはソフトウェア開発を遅らせることなく DevOps プロセスに統合できるソリューションが必要です。現在、国内外のいくつかのセキュリティベンダーはこの点で良い成果を上げています。たとえば、Qingteng Container Security Solution は、コンテナ イメージのスキャン、侵入検知、コンプライアンス ベースラインの実装などの製品サービスを提供し、コンテナによってもたらされるセキュリティ上の課題を解決します。これは、コンテナの静的リソースとランタイムのセキュリティを確保する、アプリケーション中心の軽量な分散ソリューションです。アプリケーションの脆弱性、安全でない構成、侵入攻撃、ネットワークの動作をターゲットにし、セキュリティ ポリシーを組み合わせることで、コンテナのライフサイクル全体をカバーする継続的なセキュリティ保護を提供できます。

<<:  2019年海外一流クラウドプロバイダーの配置概要

>>:  2019 年のトップ 6 DevOps ツール

推薦する

電子商取引ショッピングガイドサイト「Guang」は従業員の50%を解雇したとの噂があるが、CEOはそれを否定している。

【捜狐ITニュース】(漢陽)8月28日、アリペイの元チーフプロダクトデザイナーである白亜氏が「自身が...

SEO に執着しないでください。あなたたちは SEO をあまりにも神話的に見せています。

私は、朱衛坤が素晴らしい人だと言うためにこの記事を書いているわけではありません。繰り返しますが、私は...

frontrangehosting-すべてのVPS(openvz/kvm)が50%オフ

Frontrangehostingは以前から存在しており、その安定性と高性能さは記憶に新しいところで...

五英クラウドコンピュータは大規模な商用利用を開始し、多くの業界の顧客にサービスを提供してきました

「クラウド上で共同制作する端末です。」 5月28日、アリババクラウド社長の張建鋒氏はスピーチの中で、...

ヤオ・ジンボ:58.comはまだ初期段階にあり、来年には監督者と管理者の10%を削減する予定です。

原題:ヤオ・ジンボ:58.comはまだ初期段階にあり、気を緩める余裕はありません。来年中に監督者と管...

Baidu インデックス ツールのアップグレードはウェブマスターにとって朗報でしょうか?

8月28日、Baidu Webmaster Platformは発表を発表しました。過去2日間、含まれ...

ユーラシアクラウド:ロサンゼルス/香港/日本、すべてのVPSが25%オフ、月額21元から、CN2/CUIIハイエンド直接接続回線、大きな帯域幅、

ユーラシアクラウドは7月に、すべてのVPSを25%割引する永久割引を開始しました(更新価格は変わらず...

gigsgigscloud: 高セキュリティ VPS、元旦 30% オフ、Voxility+CN2 GIA、防御と速度の保証

gigsgigscloudは、元旦に米国高防御VPSの30%割引プロモーションを提供しています。米国...

SEOの学習と仕事の経験の共有

過去 1 年間の SEO キャリアを振り返ると、多くの感慨を感じます。今日は、SEO について私が学...

企業サイトのページデザインの分析はユーザーエクスペリエンスに重点を置くべきである

企業サイトは、細部から始めてサイトのユーザーエクスペリエンスを向上させるにはどうすればよいのでしょう...

SEOをすぐに始められるように、個人的な実践経験を共有します

SEO Suzhouブログはオープンしてしばらく経ちますが、SEOを学びたい友人にたくさん会ってきま...