コンテナを本番環境で実行するための 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 ツール

推薦する

1ヶ月半で人気キーワードがホームページの2位に躍り出た

諺にあるように、困難な時代に英雄が現れる。百度のランダムKの時代には、小さなウェブサイトが台頭するチ...

コードの最適化はどのように実現されますか?

コード最適化とは、Web ページの HTML ソース コードに必要な調整を加えて、ページの有効性を向...

中国のネットユーザーがホワイトハウスの請願サイトでGmailのブロック解除を求める請願を開始

中国のネットユーザーはホワイトハウスの請願ウェブサイトで、中国にGmailのブロック解除を求める請願...

新しい検索: 人検索エンジンに基づいて見知らぬ人と出会う

2005 年 10 月、カリフォルニア大学バークレー校のコンピュータサイエンスの修士課程の学生である...

クラウド プラットフォームの価格比較: AWS と Azure と Google Cloud

Azure、AWS、Google Cloud は現在、独自のサービス構造、テクノロジー、価格モデルを...

初心者は外部リンクを多用しすぎないようにする必要があります。順序が鍵となります。

Baidu アルゴリズムのアップデート以来、ウェブマスターたちは外部リンクの構築について議論してきま...

4月のオンラインバンキング報道動向:Alipayが優勢、CCBがトップ

IDC Review Network (idcps.com) は 5 月 29 日に次のように報告し...

国内主要7データベースを比較すると、セコイア分散データベースはアリババやファーウェイよりも早く商用化されました!

過去 30 年間、国内のデータベースは常に海外のデータベースに追随してきました。 Oracle、My...

すべてのマーケティングはコンテンツマーケティングです。サッスーの日本におけるマーケティングから始まりました。

たまたまサッスーの2008年の記事「小さな魔女はミルクを食べる」を読み返していたところ、日本の乳製品...

外国貿易サイトのコンバージョン率を向上させるための見落とされがちな2、3の提案

経済危機により、海外の人々は安いものを買いたいという需要が高まっており、これは外国貿易を行っている私...

ウェブマスターネットワークからの毎日のレポート:マルチレベルマーケティングのウェブサイトが横行、神州レンタカーが上場申請を取り下げ

MLMウェブサイトが禁止されているにもかかわらず、依然として人気がある理由:報告、証拠収集、調査が難...

簡単な議論: 特殊車両ウェブサイトのユーザーエクスペリエンスを向上させる方法

昨日は工場の電気がなかったので、今日は出勤に回ったので、昨日Niziが書いた記事は見ていません。昨日...

長くて薄い10,000語の記事でRedisson分散ロックのソースコードを説明します

[[382196]]序文前回の記事ではRedisの分散ロックの原理と欠点について書きましたが、それだ...

V.PSはどうですか?ドイツAS9929高速ネットワーククラウドサーバーの評価

v.psはどうですか? v.ps ドイツはどうですか? v.ps ドイツのas9929はどうでしょう...

1兆ドル規模の市場への洞察:中国のインターネットユーザーの「ナイトエコノミー」に関する白書

「ナイトエコノミー」とは、時間区分(午後6時から翌日午前6時まで)に基づく経済形態である。さまざまな...