企業向けのクラウドネイティブ属性の構築に役立つ 13 のツール

企業向けのクラウドネイティブ属性の構築に役立つ 13 のツール

[[353361]]

[51CTO.com クイック翻訳] 過去 10 年間で、クラウド コンピューティング関連のアプリケーションが急速に発展したことは否定できません。ガートナーの統計と予測によると、世界のパブリッククラウドサービス市場は2019年に2,278億ドルに達し、今年は17%成長を続け、2,664億ドルに達すると予想されています(https://www.gartner.com/en/newsroom/press-releases/2019-11-13-gartner-forecasts-worldwide-public-cloud-revenue-to-grow-17-percent-in-2020#:~:text=The%20worldwide%20public%20cloud%20services,research%20vice%20president%20at%20Gartnerを参照)。 Airbnb、Netflix、Uber など、クラウド サービスをベースとするスター企業は、クラウド ネイティブ テクノロジーを使用して、競合他社よりも早く市場を獲得し、さらには業界を再構築しました。適切なクラウド ネイティブ テクノロジーを理解して選択することで、アプリケーションとサービスの開発がスピードアップし、メンテナンス ツールの複雑さが軽減され、限られたインフラストラクチャの利用率が向上することがわかります。この記事では、企業向けのクラウド ネイティブ属性の構築に役立つ 13 のクラウド ネイティブ ツールを紹介します。

クラウドネイティブとは何ですか?

Cloud Native Computing Foundation (CNCF) が提供する公式の定義は次のとおりです。クラウド ネイティブ テクノロジーにより、組織はパブリック クラウド、プライベート クラウド、ハイブリッド クラウドの動的な環境でスケーラブルなアプリケーションを構築および実行できます。これらのアプリケーションには、コンテナ、サービス メッシュ、マイクロサービス、不変インフラストラクチャ、宣言型 API が含まれます。これらのテクノロジーにより、疎結合されたシステムに、クラウドベースの弾力性、管理性、および監視可能性をある程度持たせることができます。自動化された技術的機能のおかげで、開発者は作業負荷を増やすことなく、頻繁かつ予測可能な変更と反復を行うことができます。つまり、クラウド ネイティブの目標は、ビジネス ニーズに応じてソフトウェア製品をユーザーに迅速かつ機敏に提供し、全体的な IT コストを削減することです。

クラウドネイティブの価値

クラウド ネイティブ テクノロジーには、次の 3 つの利点があります。

  • スピード: クラウドネイティブ アプリケーションは迅速に開発および展開できるため、市場投入までの時間が短縮されます。多くのクラウド サービス プロバイダーはクラウド ネイティブ コンポーネントを備えているため、このようなアプリケーションのホスティングは非常に簡単になります。さらに、クラウド ネイティブ ツールは抽象化に大きく依存しており、より汎用的であるため、開発チームはサービスを実行するために会社全体で共有されるランタイムに依存する必要がなくなります。その結果、組織が対処しなければならないオーバーヘッドが減ります。
  • スケーラビリティと可用性: もともと数百の顧客しか処理できなかったクラウドネイティブ アプリケーションをシームレスに拡張して、数百万の顧客にサービスを提供し、リアルタイムのリソース ニーズを満たすことができます。これは、従来の静的リソース調整よりもコスト効率が高くなります。さらに、自動フェイルオーバーやブルーグリーンデプロイメントなどのテクノロジーもクラウドネイティブツールに統合されています。
  • 品質: クラウド ネイティブ アプリケーションは、多くの場合、一貫性と分離に基づいて開発されます。これにより、アプリケーションは堅牢で保守が容易になるだけでなく、ソフトウェアの品質も高くなります。人気のクラウドネイティブテクノロジーはオープンソースであり、CNCF によってサポートされているため、ソフトウェア開発企業は特定のクラウドプロバイダーにロックインされることを回避し、開発作業においてコミュニティからメンテナンスとサポートを継続的に受けることができます。

上記の利点に基づき、Microsoft、Google、Amazon などの多くの大規模組織は、運用コストを最小限に抑えながらクラウド コンピューティングの莫大な利益を享受しています。

クラウドネイティブを実現する方法

アプリケーションをクラウドネイティブ システムに移行するには、多くの場合、次のいずれかの構造化されたアプローチを使用する必要があります。

  • 垂直: ミッションクリティカルではないサービスを選択し、クラウドネイティブテクノロジーで有効にして移行します。
  • 水平: 継続的インテグレーション (CI) や継続的デリバリー (CD) などの単一のクラウドネイティブ機能に焦点を当て、それを既存のすべてのサービスに展開します。

注: リスクを軽減し、移行が成功する可能性を最大化するには、ミッションクリティカルでないシステムを選択することが重要です。

クラウドネイティブツール

以下は、業界で一般的に使用されているクラウド ネイティブ ツールのリストです。企業は、これらを使用して、製品の提供を迅速化し、摩擦を減らし、開発および保守コストを削減します。

1. マイクロサービス

マイクロサービスは、製品の機能を個別に展開できる複数のユニットに分割できます。たとえば、従来のクラウドネイティブ以前の展開では、さまざまな API とクライアント間のやり取りを管理する Web サイト サービスが 1 つだけあるのが一般的です。しかし、マイクロサービスを使用すると、Web サイトをアカウント サービスやユーザー サービスなどの複数のサービスに分割できます。これに基づいて、これらのサービスを個別に開発、展開、拡張できます。

同時に、マイクロサービスは通常ステートレスであるため、開発チームはクラウドネイティブ ツールを活用するためのさまざまな柔軟性を得ることができます。

推奨テクノロジー: Node.js (https://nodejs.org/)

代替テクノロジー: Kotlin(https://kotlinlang.org/)、Golang(https://golang.org/)

2. 継続的インテグレーション/継続的デプロイメント

継続的インテグレーション/継続的デプロイメント (CI/CD) は、自動テスト実行 (およびオプションのデプロイメント)、プル リクエストのマージ、およびバージョン管理イベントをサポートするインフラストラクチャ コンポーネントです。 CI/CD により、企業はユニット テスト、静的分析、セキュリティ分析などの品質ゲートを実装できます。さらに、クラウド ネイティブ エコシステムの基本ツールとして、CI/CD はエンジニアリングの効率を向上させ、エラーの数を減らすこともできます。

推奨テクノロジー: Gitlab CI/CD (https://docs.gitlab.com/ee/ci/)

代替テクノロジー: Github Actions (https://github.com/features/actions)

3. コンテナ

コンテナはクラウド ネイティブ エコシステムの中核です。開発者の作業を簡素化することで、配信速度と製品品質が向上します。コンテナを Docker ツールとともに使用することで、開発チームはターゲット システムへの依存関係を指定しながら、統一された共通の実行プレーンを提供できます。このレベルでは、チームは Kubernetes などのコンテナ オーケストレーションなどの単一のインフラストラクチャにのみ集中する必要があります。

同時に、エンジニアリング チームはコンテナ イメージをコンテナ レジストリに保存して、脆弱性分析ときめ細かいアクセス制御を提供できます。この分野で人気のあるサービスには、Docker Hub (https://hub.docker.com/)、Google Container Registry (https://cloud.google.com/container-registry)、Quay (https://quay.io/) などがあります。

推奨テクノロジー: Docker (https://www.docker.com/)

代替テクノロジー: Podman(https://podman.io/)、LXD(https://linuxcontainers.org/lxd/introduction/)

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

前述のコンテナ オーケストレーションは、多数のコンテナを起動および管理するためのツールです。言語やチーム固有の展開戦略は必要ありませんが、代わりに、ユーザーは構成用にコンテナ イメージまたはコンテナ イメージのセットを指定できます。オーケストレーションの最終ステップは、これらの仕様を実行中のワークフローに変換することです。したがって、開発チームは、OCI 仕様のいずれかを実行するためのコンテナを 1 つだけ維持できます (https://github.com/opencontainers/runtime-spec/blob/master/spec.md)。

推奨テクノロジー: Kubernetes (https://kubernetes.io/)

代替テクノロジー: Google Cloud Run (https://cloud.google.com/run)

5. インフラストラクチャ・アズ・コード

Infrastructure as Code は、バージョン管理下でクラウド構成を実装するための戦略です。これまで、企業は通常、管理パネルを通じてクラウド リソースを手動で構成および管理する必要がありました。ただし、これにより、チームがさまざまな手動の変更を追跡することが困難になる可能性があります。 Infrastructure as Code は、クラウド リソースをコードとして定義し、バージョン管理下に置くことでこの問題を解決します。つまり、コード内でインフラストラクチャの構成を変更し、それをピアレビュー、CI、CD などを含む会社の展開プロセスを通じて推進することができます。バージョン管理では、誰がどのリソースをいつ変更したかを示す監査ログが提供されます。

推奨テクノロジー: Terraform (https://www.terraform.io/)

代替技術: Pulumi (https://www.pulumi.com/)

6. パスワード管理

パスワード、秘密鍵、API 認証情報などの秘密を管理することは、クラウド ネイティブ ソリューションにとって不可欠です。これらは暗号化され、対応する構成で保存される必要があります。成熟したソリューションでは、一時的なデータベース資格情報を発行したり、資格情報をローテーションしたりすることで、パスワード管理のセキュリティを確保することがよくあります。コンテナ化されたサービスは水平方向に拡張でき、さまざまなマシンにデプロイできるため、パスワード漏洩のリスクが増大しないように、クラウドネイティブ アプリケーションに適したパスワード管理ソリューションを構成する必要があります。

推奨テクノロジー: Vault (https://www.vaultproject.io/)

代替技術: Sealed Secrets (https://github.com/bitnami-labs/sealed-secrets)

7. 証明書

コンテナベースのソリューションでは、同じ物理マシン上でさまざまなサービスを実行できます。データが暗号化されていない場合、ホスト ネットワークにアクセスした攻撃者は、サービス間のすべての通信を簡単に読み取ることができます。 TLS を介した安全な通信はベストプラクティスであるだけでなく、不可欠です。もちろん、クラウドネイティブ証明書の更新を自動化するソリューションは、手動での展開よりもはるかに信頼性が高くなります。

推奨テクノロジー: cert-manager (https://github.com/jetstack/cert-manager)

代替テクノロジー: Google マネージド証明書 (https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs)

8. APIゲートウェイ

実際のアプリケーションでは、API ゲートウェイはリバース プロキシとして使用されることが多く、Apache (https://httpd.apache.org/) や NGINX (https://www.nginx.com/) などの従来のリバース プロキシ製品と同様の機能を提供します。さらに、API Gateway は次のものもサポートします。

  • gRPC、HTTP/2、Websocketsなどのプロトコル
  • 動的構成
  • 相互TLS
  • ルーティング
  • レート制限やサーキットブレーキングなどのクラウドサービスの回復力機能を提供します
  • さまざまな監視指標の可視性を提供する

推奨テクノロジー: Ambassador (https://github.com/datawire/ambassador)

代替技術: Kong (https://konghq.com/)

9. ログ

ログ記録は、可観測性の基盤 (https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/ch04.html) として、開発チームにとって非常に馴染み深いものです。クラウドネイティブ ツールは、ログの観点から監視対象指標の時系列を重視し、コスト効率の高い方法でインシデントの原因を把握することを目指しています。同時に、ログはクラウド アプリケーションの開発、デバッグ、監視に欠かせない「必須アイテム」でもあります。

推奨テクノロジー: EFK (https://www.cncf.io/blog/2020/07/27/logging-in-kubernetes-efk-vs-plg-stack/)

代替技術: Loki (https://github.com/grafana/loki)

10. 監視

上記の時系列ログは、多くの場合、監視システムから取得されます。システムは、すべてのイベントを保存しないように監視データを集約します。つまり、クラウドネイティブ システムでは、コスト効率の高い方法で、次の側面からシステムの状態を把握する必要があります。

  • 何回手術が行われましたか?
  • 操作は成功しましたか、それとも失敗しましたか?ステータスコードは何でしたか?
  • 手術にはどれくらい時間がかかりますか?
  • キューの深さやスレッドプールなどの重要なリソースの値は何ですか?

監視対象のメトリックにさまざまなディメンションを割り当てて、個々のホスト、オペレーティング システム、バージョンなどのパフォーマンスに関する洞察を得ることができます。

推奨テクノロジー: Prometheus(https://prometheus.io/)/Grafana(https://prometheus.io/docs/visualization/grafana/)

代替技術: Datadog (https://www.datadoghq.com/)

11. アラーム

アラートはログ監視の結果であり、システムの問題と対応する時系列インジケーターをオペレーターに通知します。たとえば、システムの HTTP 500 シリーズのステータス コードが増加したり、要求の待機時間が長くなったりすると、そのようなアラートがタイムリーに運用チームに送信されます。クラウドネイティブ システムの場合、問題はそれほど深刻ではありません。恐ろしいのは、問題がどこにあるのか誰も知らないことだ。したがって、アラームの役割は自明です。

推奨テクノロジー: Prometheus Alertmanager (https://prometheus.io/docs/alerting/latest/alertmanager/)

代替テクノロジー: Grafana Alerts (https://grafana.com/docs/grafana/latest/alerting/)

12. 追跡

サービスの立ち上げと拡張にかかるコストを削減するために、開発チームはクラウド サービスがリリースされる前に、クラウド サービスにさらに多くのリソースを割り当てることがよくあります。サポート チームは、さまざまなサービス間の通信を監視および追跡して、ユーザーの最終的なステータス、およびユーザーの使用の各段階での時間とリソースの使用状況を把握できます。これに基づいて、パフォーマンスの問題が発生した場合、チームはタイムリーにエラー情報を取得できます。したがって、観察およびデバッグ ツールの強化として、クラウド ネイティブ テクノロジーのトレース機能により、チームは問題をより迅速に診断し、ダウンタイムを大幅に短縮できるようになります。

推奨テクノロジー: Jaeger (https://www.jaegertracing.io/)

代替技術: Zipkin (https://zipkin.io/)

13. サービスメッシュ

上記の機能の組み合わせとして、クラウド サービス メッシュは、動的ルーティング、負荷分散、サービス検出、ネットワーク ポリシー、サーキット ブレーカー (https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker) や再試行メカニズム (https://docs.microsoft.com/en-us/azure/architecture/patterns/retry) などのクラウド サービス回復力機能を提供できます。サービス メッシュは、負荷分散の観点からクラウド ネイティブ アーキテクチャの進化形と考えることができます。

推奨テクノロジー: Istio (https://istio.io/)

代替技術: Consul (https://www.consul.io/)

まとめ

上記のクラウドネイティブツールを柔軟に選択することで、クラウドサービス製品の提供速度を適切に向上させ、サービスの可用性とパフォーマンスを高め、企業の競争優位性を維持することができます。一度にすべてを試す必要はありません。単一のテクノロジーから始めて、クラウド ビジネスにもたらす大きなメリットと改善を活用できます。

原題: クラウドネイティブ企業になる方法と、そこに到達するための 13 のツール、若山健太郎

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  Linux 仮想化 KVM-Qemu 割り込み仮想化の分析

>>:  Microsoft AKS は企業のクラウドへの迅速な移行を支援します

推薦する

重慶市は総額119億円の「リターン100」ねずみ講事件を摘発した。

重慶市涪陵区公安局は26日、重慶帥牌科技有限公司(以下、「重慶帥牌」)が自社開発した「扇本易牌」ネッ...

最適化 ≥ ユーザーエクスペリエンス? 私にとって SEO とは何でしょうか?

2009年、私は誰もが羨む公務員という楽な仕事を正式に辞め、ウェブマスター業界に飛び込みました。私が...

Beisen が iTalentX 3.0 を発表: HR デジタル化の最後の一歩を切り開く

10月19日、中国国内の統合HR SaaSリーダーであるBeisenとInternational D...

SEOを行うには、4つの基本的なデータ分析を習得する必要があります。

SEO 業界では、データが非常に重要な中核を占めています。私たちは毎日、さまざまな種類のデータに注目...

経済不確実性の中でクラウド支出を削減

企業が経済の不確実性を乗り越え続ける中、IT リーダーは予算を最適化し、クラウド インフラストラクチ...

Baidu のアルゴリズムのアップデートを恐れる必要はあるのでしょうか?

SEO に取り組み始めて以来、アルゴリズムは絶えず更新されてきました。では、Baidu のアルゴリズ...

ライムウェーブはどうですか?シアトルのライムウェーブの無制限トラフィックVPSの簡単なレビュー

ライムウェーブはどうですか? Limewaveは最近とても人気がありますが、これはおそらくブラックフ...

fatcow-無制限のウェブサイトホスティング/無料ドメイン名/85% オフ

fatcow からメールでプロモーション情報を受け取りました。無制限の Web サイト構築と仮想ホス...

simplecloud: 27元/KVM/無制限トラフィック/1Gメモリ/20gSSD/ロシアVPS

simplecloud は 2000 年から運営されているロシアの企業です。主に KVM 仮想化に基...

いくつかのビットコイン取引プラットフォームが共同で自主規律声明を発表

テンセントテクノロジーニュース(ファン・シャオドン)5月6日のニュースによると、国内のビットコイン取...

事例分析: Baidu が通常のウェブサイトの再設計をどのように扱うか

SEO 担当者であれば、改訂が検索エンジン上のウェブサイトに影響を与えることは誰もが知っています。影...

PZEA-28 USD/年/20 IP/512 MB RAM/20 GB HDD/800 GB トラフィック/ロサンゼルス/Alipay

KVMLA (2011 年に設立、登録企業、中国商人が所有、すでに中国の VPS で多少有名) の別...

中小規模のチーム向けの Docker ベースの DevOps プラクティス

私が所属する技術チームは、数十のプロジェクトの開発と保守を担当しています。各プロジェクトには、少なく...