ソフトウェア製品を迅速にリリースするのに役立つ 13 のクラウドネイティブ ツール

ソフトウェア製品を迅速にリリースするのに役立つ 13 のクラウドネイティブ ツール

過去 10 年間でクラウド コンピューティングは大きく成長しました。ガートナー社によると、世界のパブリッククラウドサービス市場は、2019年の227億8,000万ドルから2020年には17%成長して2,664億ドルになると予想されています。

クラウド コンピューティングにより、Airbnb、Netflix、Uber などの世界最大手企業が業界を改革し、優位に立つことが可能になりました。

これらの企業は、競合他社よりも高速で適応性に優れたサービスを提供するために、クラウド ネイティブ テクノロジーを活用したクラウド サービスをベースにサービスを提供しています。他の多くの企業もクラウド ネイティブを採用し、その概念をオンプレミスの内部アプリケーションに導入しています。

適切なクラウドネイティブ テクノロジーを理解して選択することは、開発速度を向上させ、ツールとインフラストラクチャの開発と保守に費やす時間とコストを削減するために重要です。この投稿では、知っておくべきクラウドネイティブ ツールについて説明し、すぐに使い始めることができる特定のプロジェクトを推奨します。

[[389736]]

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

クラウド ネイティブはスピードと俊敏性が重要です。クラウドを活用して、ビジネス上の課題をより迅速かつ低コストで解決できるようにします。 Cloud Native Computing Foundation (CNCF) は、優れた公式定義を提供しています。

クラウド ネイティブ テクノロジーにより、組織はパブリック クラウド、プライベート クラウド、ハイブリッド クラウドなどの最新の動的環境でスケーラブルなアプリケーションを構築および実行できるようになります。コンテナ、サービス メッシュ、マイクロサービス、不変のインフラストラクチャ、宣言型 API などがこのアプローチの例です。

これらの技術により、疎結合システムの回復力、管理性、監視性が高まります。強力な自動化と組み合わせることで、エンジニアは最小限の労力で、影響の大きい変更を頻繁かつ予測どおりに行うことができます。

つまり、クラウド ネイティブの目標は、ビジネス ニーズのペースに合わせてソフトウェア製品をユーザーや顧客に提供することです。

価値

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

  • スピード: クラウドネイティブ アプリケーションは迅速に開発および展開できるため、市場投入までの時間が短縮されます。多くのクラウドでは、これらのアプリケーションのホスティングを簡単にするクラウド ネイティブ コンポーネントが提供されています。さらに、クラウド ネイティブ ツールは抽象化に大きく依存しているため、より汎用的になり、チームは会社とランタイムを共有することなくサービスを実行できます。その結果、組織が対処しなければならない諸経費が減ります。
  • スケーラビリティと可用性: 100 人の顧客を処理するクラウド ネイティブ アプリケーションは、シームレスに拡張して数百万の顧客にサービスを提供できます。リソースは常に現在の需要に適応し、従来の静的なリソースのスケーリングに比べてコストを節約します。さらに、自動フェイルオーバーやブルーグリーンデプロイメントなどのテクノロジーがクラウドネイティブツールに組み込まれています。
  • 品質: クラウド ネイティブ アプリケーションは、不変性と分離性を考慮して構築されます。これにより、アプリケーションは堅牢になり、保守が容易になり、ソフトウェアの品質が向上します。最も人気のあるクラウド ネイティブ テクノロジーはオープン ソースであり、CNCF によってサポートされているため、企業はベンダー ロックインを回避し、コミュニティの保守と開発の取り組みから恩恵を受けることができます。

クラウド コンピューティングを活用することで、企業は莫大な利益を享受し、運​​用コストと労力を最小限に抑えることができます。

多くの大規模組織もクラウドを推進しており、Microsoft、Google、Amazon も独自のクラウドを提供しています。

クラウドネイティブになる方法

したがって、クラウドネイティブ システムに移行するには、次のように構造化されたアプローチが必要です。

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

移行が成功する可能性を最大限に高めながらリスクを軽減するには、ミッションクリティカルでないシステムを選択することが不可欠です。

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

クラウド ネイティブ ツールの一覧はこちらです。ツールスイート全体を活用する企業は、通常、より速く、より少ない摩擦で、より低い開発および保守コストで成果を提供できます。

1. マイクロサービス

マイクロサービスは、製品の機能を独立して展開可能なユニットに分割します。たとえば、従来のクラウド オンプレミス展開では、通常、API と顧客とのやり取りを管理する単一の Web サイト サービスが存在します。マイクロサービスを使用すると、この Web サイトをチェックアウト サービスやユーザー サービスなどの複数のサービスに分割できます。その後、これらのサービスを個別に開発、展開、拡張できます。さらに、マイクロサービスは通常ステートレスであり、12 ファクター アプリケーションを活用することで、企業はクラウド ネイティブ システムが提供する柔軟性を活用できます。

推奨テクノロジー: Node.js その他のテクノロジー: Kotlin、Golang

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

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

推奨テクノロジー: Gitlab CI / CD その他のテクノロジー: GitHub Action

3. コンテナ

コンテナはクラウドネイティブ エコシステムの中核であり、開発者の操作を簡素化することで比類のない速度と品質の向上を実現します。 Docker などのツールでコンテナを使用すると、チームはシステムの依存関係を指定しながら、統一された共通の実行レイヤーを提供できます。このレイヤーにより、インフラストラクチャ チームは、Kubernetes などのコンテナのオーケストレーションなど、インフラストラクチャの個々の部分を操作できるようになります。エンジニアリング チームはコンテナ イメージをコンテナ レジストリに保存できます。ほとんどの場合、コンテナ レジストリでは脆弱性分析やきめ細かいアクセス制御も提供されます。人気のあるサービスとしては、Docker Hub、Google Container Registry、Docker などがあります。

推奨テクノロジー: Docker その他のテクノロジー: PODMAN、LXD

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

コンテナ オーケストレーションは、多数のコンテナを展開および管理し、言語固有またはチーム固有のデプロイメント戦略を排除するためのツールです。ユーザーはコンテナ イメージまたはイメージ グループと特定の構成を指定できます。最後に、オーケストレーションによってこれらの仕様が実行中のワークロードに適用されます。コンテナ オーケストレーションにより、インフラストラクチャ チームは、OCI 仕様に準拠した任意のコンテナを実行できる単一のインフラストラクチャ コンポーネントを維持できるようになります。

推奨テクノロジー: Kubernetes その他のテクノロジー: Google Cloud

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

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

推奨テクノロジー: Terraform その他のテクノロジー: Pulumi

6. キー

キー管理はクラウド ネイティブ ソリューションにとって重要ですが、小規模な場合は見落とされがちです。シークレットとは、パスワード、秘密鍵、API 認証情報などのプライベートなものを指します。少なくとも、キーは暗号化され、構成に保存される必要があります。成熟したソリューションにより、一時的なデータベース資格情報やローテーション資格情報を発行できるようになり、キー管理がより安全になります。コンテナ サービスは水平方向に拡張され、さまざまなマシンに展開できるため、クラウド ネイティブ アプリケーションでは、キー管理に適したソリューションを見つけることが重要です。最終的に、鍵管理を怠る組織は、資格情報の漏洩のリスクを高める可能性があります。

推奨技術: Vault その他の技術: Sealed Secrets

7. 証明書

TLS を介した安全な通信はベストプラクティスであるだけでなく、必須です。多くの異なるサービスが同じ物理マシン上で実行される可能性があるため、これはコンテナベースのソリューションでは特に重要です。暗号化を行わないと、ホスト ネットワークにアクセスした攻撃者は、これらのサービス間のすべてのトラフィックを読み取ることができます。少なくとも、クラウド ネイティブ デプロイメントの証明書を手動で更新することは不可能になる可能性があるため、何らかの自動化ソリューションが不可欠です。

推奨テクノロジー: cert-manager その他のテクノロジー: Google マネージド証明書

8. APIゲートウェイ

API ゲートウェイは、Apache や Nginx などの従来のリバース プロキシを超える機能を備えたリバース プロキシです。 API ゲートウェイは以下をサポートします。

  • GRPC、HTTP/2、WebSocketなどのプロトコル
  • 動的構成
  • 相互TLS。
  • ルーティング
  • レート制限や回路遮断などの回復力プリミティブ
  • 指標の形での可視性

推奨テクノロジー: アンバサダー その他のテクノロジー: KONG

9. ログ

ログは可観測性の基本的な柱です。ログ記録はチームにとって非常に馴染み深く、アクセスしやすいため、可観測性を導入するための優れた出発点となります。ログは、システム内で何が起こっているかを理解するために重要です。クラウド ネイティブ ツールは、ストレージよりもコスト効率が高いため、時系列のメトリックを重視します。ただし、ログは貴重なデバッグ ツールであり、ログを観察することによってのみ役立つシステムもあるため、ログ記録は必須となります。

推奨技術: ELK その他の技術: Loki

10. 監視

監視システムは重要なイベントを時系列として保存します。監視データは集約されるため、すべてのイベントが保存されるわけではありません。これにより、クラウド ネイティブ システムのコスト効率が向上し、クラウド ネイティブ システムの状態を理解し、次の質問に答える上で重要になります。

  • いくつの操作が発生しましたか?
  • 操作の結果は何でしたか (成功、失敗、またはステータス コード)?
  • 手術にはどれくらい時間がかかりますか?
  • キューの深さやスレッド プールなどの重要なリソースとは何ですか?

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

推奨テクノロジー: Prometheus / Grafanaal 代替テクノロジー: DATADOG

11. アラート

アラートにより、ログとメトリックが実行可能になり、オペレーターに通知され、時系列メトリックのペアが消費されます。たとえば、HTTP 500 ステータス コードが増加したときや、リクエストの継続時間が長くなったときに、アラートによってチームに通知できます。アラートはクラウドネイティブ システムにとって重要です。アラートがなければ、インシデントについて通知されず、最悪の場合、会社が問題があることに気付かないことになります。

推奨テクノロジー: Prometheus Alertmanager その他のテクノロジー: Grafana Alerts

12. 追跡

クラウド ネイティブ テクノロジーは、サービスの起動と拡張のオーバーヘッドを削減します。その結果、チームはクラウド プロビジョニングよりも多くのサービスを開始することがよくあります。トレースにより、チームはサービス間の通信を監視し、エンドユーザーのトランザクション全体とそのトランザクションの各段階を簡単に視覚化できます。パフォーマンスの問題が発生した場合、チームはどのサービス エラーが発生したか、トランザクションの各段階にどのくらいの時間がかかっているかを確認できます。トレースは、チームが問題をより速くデバッグできるようにすることでダウンタイムを大幅に短縮できる、次世代の観察およびデバッグ ツールです。

推奨技術: JAEGER その他の技術: Zipkin

13. サービスメッシュ

サービス メッシュは、クラウド ネットワーキングのスイス アーミー ナイフです。動的ルーティング、負荷分散、サービス検出、ネットワーク ポリシー、サーキット ブレーカー、再試行、期限などの回復力プリミティブを提供できます。サービス メッシュは、クラウド ネイティブ アーキテクチャの負荷分散の進化形です。

推奨テクノロジー: Istio その他のテクノロジー: Consul

クラウドネイティブで競争に勝つ

クラウド ネイティブ ツールは、品質と可用性を向上させながら市場投入までの時間を短縮することで企業を支援します。

適切なツールを選択する企業は、配信速度と俊敏性の向上を通じて競争上の優位性を維持できます。

クラウド ネイティブ テクノロジーの導入は困難に思えるかもしれませんが、単一のテクノロジーから始めることで大きなメリットが得られることを覚えておいてください。

元のリンク:

https://medium.com/quick-code/how-to-become-cloud-native-and-13-tools-to-get-you-there-861bcebb22bb

<<:  なぜ Google はクラウド サービスの開発に失敗し、電子商取引サイトが先行したのでしょうか?

>>:  中国電子クラウド飛青プラットフォームは42日間で顧客向けに3つのシステムを開発

推薦する

あなたもクラウドの世界の 7 つの新しいパラドックスに直面していますか?

[51CTO.com クイック翻訳] パラドックスとは、一見同じ命題または推論に 2 つの相反する結...

エクスポート リンク: これらの考慮事項を理解していますか?

SEO 会社で働き、ウェブサイトの最適化作業を行っている人は、ウェブサイトのリンク構築について多かれ...

エッジコンピューティングは多様なアプリケーションに拡張されます

エッジ コンピューティングにより、分散コンピューティング インフラストラクチャを通じて、コンピューテ...

エッジ コンピューティングはどのような問題を解決し、どのようなモデルを使用しますか?

[[411619]]エッジ コンピューティングは、分散コンピューティング、グリッド コンピューティン...

ネットワークソフトウェアはマルチクラウド管理の複雑さを軽減できる

複数のパブリック クラウドでアプリケーションを展開して実行することは、多くの IT リーダーにとって...

検索エンジン最適化オンサイトおよびオフサイト最適化戦略マニュアル

Baidu の最近のパフォーマンスと自分のウェブサイトの詳細な分析に基づいて、Baidu のオンサイ...

音楽ウェブサイトの有料化計画は著作権管理局から明確な支持を受けるが、オンライン視聴は引き続き無料

音楽ダウンロードの「無料ランチ」の終焉に関する最近の議論に関して、記者は昨日、テンセントのQQミュー...

Linux環境でのObject Sの導入「言葉にできない」時代

まず、貢献してくれた Xiqin Gongzi に感謝したいと思います。この記事は主に、Object...

ウェブサイトの問題を理解するのに役立つ8つのステップ

自分を知り、敵を知れば、敗北の危険なしに百戦錬磨で戦うことができます。ウェブサイトを引き継ぐ場合、ま...

自然、実用主義、責任が2012年のSEOに対する私の理解を構成しています

2012 年が過ぎようとしています。2013 年という新しい年を迎え、ウェブマスターの皆さんは将来に...

Weiboマーケティングで成功するには習得すべきいくつかの効果的な方法

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeibo は、企業のニ...

IDC MarketScape: Ivanti が世界規模の統合エンドポイント管理のリーダーに選出

Ivanti は、強力なセキュリティ機能、幅広いデバイスへの幅広いサポート、幅広いチャネルへのリーチ...

価格競争により垂直型電子商取引プラットフォーム間のトラフィック格差が拡大:3Cカテゴリーは増加、アパレルカテゴリーは減少

10月の電子商取引トラフィック分布(Huihui.comデータ)ダブル11のプロモーションの一部(中...

KFCとマクドナルドのブランドマーケティングの違い!

はじめに:KFC の現実的なアプローチであれ、マクドナルドの個性へのこだわりであれ、両社は中国市場で...