企業向けのクラウドネイティブ属性の構築に役立つ 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 は企業のクラウドへの迅速な移行を支援します

推薦する

「MQ シリーズのマスター」 - Kafka アーキテクチャ設計の Ren 子午線と Du 子午線

[[404881]]みなさんこんにちは。私はウー兄弟です。これは、Kafka のアーキテクチャ設計に...

ファーウェイは、世界で初めてクラウドネイティブコンピューティング財団(CNCF)認定のKubernetesサービスプロバイダーの1つになりました。

[中国、深セン、2017年9月18日] 先日ロサンゼルスで開催されたオープンソースサミットにおいて、...

OpenTelemetry は理解しやすいです。

この投稿は、OpenTelemetry の基本的な理解を深めることを目的としています。取り上げるトピ...

メッセージ: Ramnode - 128MBのメモリを搭載したVPSの販売を再開

4月初旬、Ramnodeは128Mメモリ搭載VPSの販売を停止すると発表しました。「ニュース:Ram...

ウェブマスターネットワークからの毎日のレポート:百度が年間検索ランキングを発表、KubaとGomeが合併

1. 百度が2012年の年間検索ランキングを発表百度は2012年の年間検索チャートを発表した(htt...

SARFT: モバイルゲームライセンスの関連承認手続きの再発行期限が2016年12月31日まで延長

本日、国家新聞出版広電総局弁公室は「モバイルゲーム出版サービスの管理に関する通知の作業期限延長に関す...

zji: 香港サーバー 55% オフ、638 元、10M cn2+bgp、2*e5-2630L/32g メモリ/1tSSD

香港・大埔にあるZjiの自社運営独立サーバーでは、3つのモデルが55%オフで販売されており、更新によ...

12月のウェブサーバー市場:Apacheは3.08%下落、Microsoftは上昇

IDC Review Network (idcps.com) は 12 月 11 日に次のように報告...

VPSデータベース - 6ドル/月/openvz/kvm/ロシア/カナダ/カンザス

vpsdatabaseは2017年5月に設立され、競争力のあるVPS製品を提供しています。販売中の2...

グーグルはスナップチャットを40億ドルで買収しようとしたが拒否されたと報じられている

新浪科技報、北京時間11月15日朝のニュースによると、米国のテクノロジーブログGigaOmのブロガー...

モバイル時代におけるインスタント メッセージング クラウド サービスの今後の方向性はどこにあるのでしょうか?

かつて、OICQ、QQ、MSN など、インスタント メッセージングに重点を置いたプラットフォームは独...

天一クラウドとCDSキャピタルクラウドがクラウドゲーム「IaaS+PaaS」のワンストップソリューション構築に向けた戦略的契約を締結

近年、業界の大手企業はクラウドコンピューティングの分野で競争し、技術革新産業の配置を強化しています。...

クラウドコンピューティングを補完するエッジコンピューティングの検討

5G ネットワークとリモート操作への大幅な移行により、エッジ コンピューティングは企業のデジタル変革...

Baizong Technology:香港大埔データセンター、双方向CN2回線、5G防御、1,300元/月、2*e5-2650L/32Gメモリ/1TSSD/10M帯域幅/3IP

Baizong Technologyの香港Dapuデータセンターに双方向CN2回線を備えた独立サーバ...

SEO ロングテール記事: ロングテールキーワードの 3 つのメリット

「外部リンクが王様、コンテンツが王様」という言葉は、SEO 業界では長い間言われてきました。この発言...