クラウドネイティブアプリケーション開発を始める方法

クラウドネイティブアプリケーション開発を始める方法

翻訳者 |陸新王

校正 |孫淑娟、梁策

1200億ドル。

Forrester のレポートによると、これが世界のクラウド コンピューティング市場の規模です。

新しいテクノロジーの推進により、ソフトウェア、データ ストレージ、インフラストラクチャはクラウドに向けて大きく進歩し、クラウド環境でのワークロードの開発と実行が容易になりました。

Cloud Native Computing Foundation (CNCF) によると:

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

少し奇妙に聞こえるかもしれませんが、心配しないでください。次のセクションで説明します。

さまざまな形態のクラウド コンピューティングは、ビジネス テクノロジーの新たな側面であり、現在では企業の成熟した機能となっています。多くの大企業が、自社で運用するクラウド アプリケーションに依存してビジネスを行っていると言えます。これには、UberやDoorDashのような「スタートアップ」だけでなく、ブローカーに株式取引アプリを提供する金融会社も含まれます。

CNCF のデータによると、現在、さまざまなビジネス機能向けにクラウドネイティブ アプリケーションを構築している開発者は 600 万人を超えています。これらのアプリケーションは DevOps などのベスト プラクティスに基づいているため、基盤となるインフラストラクチャの限界まで拡張できます。

クラウド ネイティブ アプリケーション開発とは何か、そしてそれがどのようにビジネスにさらなる価値をもたらすのかを探ってみましょう。

クラウドネイティブアプリケーション開発とは何ですか?

クラウド ネイティブ アプリケーション開発とは、クラウド内でクラウド向けにアプリケーションを開発するプロセスです。

簡単すぎるように聞こえますか?

実際のプロセスは複雑に思えるかもしれませんが、その中心となる考え方は理解するのが難しくありません。さらに詳しく説明すると、クラウド ネイティブ アプリケーションは、継続的な配信を可能にする適応型インフラストラクチャによって管理される、コンテナー化されたマイクロサービスのコレクションです。

従来のプロジェクトの中には、インフラストラクチャの管理をシステム管理者に任せるところもあります。ただし、クラウドネイティブ アプリケーションの開発ライフサイクルでは、オーケストレーション エンジンがプロセスを制御します。つまり、開発者や管理者はリソース割り当ての問題に対処するために時間を費やす必要がなくなります。代わりに、各リソース割り当ての決定は、システム内で事前に構成されたルールに基づいて行われます。

アプリケーションが依存する開発環境または技術的設備は「抽象的」であり、開発者には見えません。選択したテクノロジーを使用してマイクロサービスを開発し、アプリケーションの移植性を高め、コードを迅速に変更できるようになります。これは、迅速な開発、迅速なリリース、ビジネス ユーザーのリアルタイムのニーズへの対応という、アジャイル開発の中核原則の 1 つです。

プロセスの観点から見ると、クラウドネイティブ アプリケーションの開発は次のように進めるべきでしょう。

  1. 開発、IT 管理、リーダーシップ チーム全体で DevOps プラクティスを内部化します。
  2. マイクロサービスの実行と開発の基盤となる Kubernetes などのコンテナ管理プラットフォームを選択します。
  3. 開発者がコンテナ化テクノロジーを快適に使用できること、およびリソース割り当てがオーケストレーション エンジンを通じて管理されていることを確認します。 DevOps チームは、ライフサイクルを通じてプロジェクトを監視できます。
  4. プロジェクトの配信は、サンドボックスと組み込みの監視機能を使用して、自動化され、持続可能でなければなりません。

クラウドネイティブアプリケーションのビジネス価値

クラウド ネイティブ アプリケーションは、ビジネスに高効率かつ高パフォーマンスのパラダイムをいくつか提供します。明らかな利点をいくつか挙げます。

1. プロジェクトのライフサイクルがより費用対効果が高い

リソース管理は、アプリケーション開発プロジェクトにとって最も重要な課題の 1 つです。経験豊富なチームは、安全のためにリソースを過剰に割り当てる傾向があります。これにより、プロジェクトのライフサイクルはスムーズになりますが、最終的にはアプリケーション開発のコストが増加し、プロジェクトの潜在的な収益が減少します。

クラウド ネイティブの重要な側面は、負荷分散、構成、さらには手動割り当てさえも必要としないことです。クラウド リソースは自律的に管理されるため、テストや展開の必要に応じてスケールアップおよびスケールダウンできます。コスト削減はプロジェクト ライフサイクル全体にわたって蓄積され、クラウド ネイティブ アプリケーション開発プロセスのコスト効率が向上します。

2. 柔軟なアーキテクチャ

稼働時間は、データセンター内の仮想マシン (VM) やパブリック クラウドまたはプライベート クラウド内の VDI 環境の稼働時間に直接関係しているため、一部の開発者はクラウド デプロイメントの使用が難しいと感じています。クラウド ネイティブ アプリケーションは移植可能であり、仮想マシンから独立して実行されます。つまり、特定のマイクロサービスが専用の GPU を必要としない限り、アーキテクチャはほとんど依存関係なしでシームレスに実行できます。

依存関係が少なくなると、ワークロードの回復力が高まり、トラブルシューティングがより簡単かつ迅速になります。クラウド インフラストラクチャの依存関係が問題ではなくなったため、プロジェクト マネージャーは他の潜在的な脅威の分離に注力できるようになります。

3. 製品をより早く市場に投入する

継続的インテグレーションと継続的デリバリー (CI/CD) は、クラウドネイティブ アプリケーション開発を成功させるための鍵です。これまで、ソフトウェア配信プロセスは段階的に行われ、アルファ版、ベータ版、製品版のリリース前に徹底的なテストが必要でした。

現在、オンデマンドのインテリジェント テストとクラウド環境での継続的な展開により、このプロセスは完全に自動化できます。 DevOps と同期して使用することで、プロジェクト チームはより大規模に共同作業できるようになり、製品リリースのリスクが軽減され、開発から最初のバージョン リリースまでの時間が大幅に短縮されます。

4. サプライヤーに依存しない

ベンダー ロックインは、Google、Amazon、Microsoft などの主要なクラウド プロバイダーに展開されているアプリケーションを含む、ほぼすべてのアプリケーションにとって大きな問題です。あなたが技術界の大物でない限り、ワークロードをスムーズに実行できるかどうかは、クラウド ストレージ プロバイダーの可用性と効率性にかかっています。

クラウド ネイティブ アプリケーションは移植可能であるため、単一のプラットフォームまたはクラウド インフラストラクチャへの依存が排除されます。基盤となるアーキテクチャに関係なく、開発者はアプリケーションを継続的に更新およびアップグレードし、新しい PaaS および IaaS サービスを利用できます。

クラウドネイティブアプリケーションの主な機能

クラウド ネイティブ アプリケーションの特徴は次のとおりです。

  • コンテナベースのインフラストラクチャ
  • マイクロサービスアーキテクチャ
  • 継続的インテグレーションと継続的デリバリー(CI/CD)を使用する
  • DevOps アジャイル開発

これらを総合すると、アプリケーション開発プロセスに多くのメリットがもたらされます。

1. モジュール管理

モノリシック アプリケーションの最大の課題の 1 つはスケーラビリティです。最初は、開発チームの規模と専門知識に比例して拡張されます。ただし、機能や特徴が追加されるたびに、モノリシック アーキテクチャはより複雑になります。

その結果、製品ライフサイクル中に、製品所有者がアプリケーション全体を理解できず、開発チームがモジュールが他のモジュールとどのように統合されるかを把握できず、QA チームが機能の変更がアプリケーション全体に与える影響をテストできないという状況が発生します。

アプリケーションに可視性がないことにより、開発者が追加機能に取り組むことができず、さらに多くの問題が発生します。アプリケーションのアーキテクチャが乱雑になり、小さな変更でも大きな障害を引き起こす可能性があります。

これらの構造上の問題は、個別に構築されたモジュールであり、それぞれが特定の機能のみを担当するマイクロサービスを使用することで解決できます。その結果、アプリケーション全体のコードやランタイムを変更することなく、アプリケーションの一部をテストおよび更新できるようになります。

2. 自律的なリソース割り当て

クラウド ネイティブ アプリケーションでは、開発者はクラウド インフラストラクチャ プロバイダーのアプリケーション プログラミング インターフェイス (API) と直接対話する必要がありません。代わりに、DevOps チームは、コンピューティング、メモリ、およびストレージ リソースを各コンテナー (アプリケーションが開発されるコンテナー) に割り当てるための集中ポリシーを設定できます。

自動リソース割り当ては、プロジェクトの投資収益率 (ROI) に直接影響します。したがって、割り当てられた資金が小数点 1 桁多いか少ないかによって、申請が承認される可能性が変わります。自律的なリソース割り当てにより、アプリケーションのニーズと利用可能なリソースを正確に一致させることで、これらのリスクが軽減されます。

3. 非同期開発

クラウド ネイティブ アプリケーションは、本質的には集約され、コンテナ化されたマイクロサービスです。ユーザーにとって、これは、1 つのマイクロサービスに障害が発生しても、他のマイクロサービスのパフォーマンスに影響しないことを意味します。各マイクロサービスはカプセル化されており、独自の依存関係があるため、1 つのマイクロサービスによってアプリケーション全体が危険にさらされることはありません。

開発プロセスにも同じロジックが適用されます。コンテナ化されたマイクロサービスに共通の依存関係がない限り (その場合は依存関係を複製または分離できます)、非同期的に開発、テストし、運用アプリケーションに追加できます。したがって、統合の問題を心配することなく、複数の機能やアプリケーション モジュールを並行して開発できます。

4. 迅速な拡張性

クラウド サービスとマイクロサービスが未来への道を切り開いている一方で、企業には依然として十分に活用されていないレガシー インフラストラクチャ投資が残っています。クラウド ネイティブ アプリケーションは、コンテナーとしてパッケージ化された自律的なサービスのコレクションであるため、従来のインフラストラクチャの仮想マシンとは異なり、動的にスケールアウトおよびスケールイン (コンピューティング リソースまたはストレージ リソースの増減) できます。

クラウドネイティブ アプリケーションでは、レガシー システムおよびデータとの API ベースの統合が可能になります。これにより、中小企業でも従来のインフラストラクチャからクラウド コンピューティングに移行する際に、デジタル変革プロセスを加速できるようになります。

5. 包括的なアプリケーション機能

マイクロサービスは、独立したレビュー、分析、評価に適しています。したがって、開発者は、プロジェクト全体のコンテキストだけでなく、独立して各マイクロサービスのパフォーマンスを評価できます。フルスタックの可観測性と特定の監視メカニズムにより、モジュール式で回復力のあるアーキテクチャのおかげで、アプリケーションの調整が容易になります。

結論

クラウド ネイティブ アプリケーションは、ソフトウェア開発とクラウド テクノロジーの次世代に向けて設計されています。クラウド ネイティブ テクノロジーは汎用性と俊敏性を備えているため、企業はテクノロジーへの投資をビジネス目標に合わせることができます。中小企業でも大企業でも、クラウド ネイティブをインテリジェントに使用して、ビジネス上の問題を解決し、運用効率を向上させることができます。

翻訳者について

51CTO コミュニティ エディターの Lu Xinwang 氏は、1990 年代生まれでキャリア パスを変更したプログラマーです。私はフロントエンド ページに取り組んだり、ビジネス インターフェイスを書いたり、クローラーに取り組んだり、JS を勉強したりしてきましたが、幸運にも Golang に触れてマイクロサービス アーキテクチャへの変革に参加できました。現在は主にJavaを書いており、同社のカスタマイズ可能なローコードプラットフォームのデータエンジン層の設計と開発を担当しています。

クラウドネイティブアプリケーション開発を始める方法

<<:  Pulsar の展開とオンライン構成を 1 つの記事で学ぶ

>>:  クラウドネイティブKubernetes分散ストレージプラットフォームLonghornの初体験

推薦する

オリジナル記事だけがランキングの基準ではない

最近、「自分のオリジナル記事は1位にならないのに、転載された自分の記事は1位になる」という声が増えて...

ルタオの没落:5年間で3度も自社ブランドへの転換を余儀なくされ失敗

【はじめに】国内垂直型B2C電子商取引の冬はまだ続いています。 10月、長らく休眠状態にあった靴の電...

有能なSEO担当者になる方法

SEO 担当者になるのは実はとても簡単です。なぜそう言うのでしょうか? 記事を書いて外部リンクを投稿...

Cert Manager を使用して Kubernetes Gateway 証明書を自動的に管理する

背景Kubernetes ゲートウェイおそらく、より正確にはKubernetes Gateway A...

flokinet、アイスランド VPS/アイスランド サーバー、高度なプライバシー保護、1Gbps 帯域幅、1Tbps の高度な防御を内蔵

アイスランドのサーバー業者 flokinet (~) は、アイスランドのデータセンターでアイスランド...

正確なデータは勝利の戦略を支える

最近、JD Cloud は新しいクラウド エコシステム製品「Matrix Insight」データ ソ...

個人的な経験:タオバオの商人はユーザーを騙し、オンラインショッピングをする際には注意するよう皆に警告している

インターネット セキュリティは絶えず求められ、推進されており、2014 年のクリーン インターネット...

どのような外部リンクがウェブサイトのランキングを向上させるのか

SEO の本来の目的はウェブサイトのランキングを上げることであり、最終的な目標は利益を上げることです...

ウェブサイトデザインの楽しさを徹底解説:ユーザーを惹きつけ、ウェブサイトの定着率を高める

Web デザイナー兼開発者として、私たちが設計するすべてのプロジェクトには特定の目標と要件があります...

ポップマート:流行のおもちゃ市場のスーパーIP?

最近、香港株式市場に上場している流行玩具メーカーのポップマートが最新の半期報告書を発表した。データに...

ipxcore-128m メモリ/10g ハードディスク/3IP/月額 2.35 ドル

ipxcore はメモリの少ない VPS を推進しています。 ハイライトは、3 つの IPV4 を提...

Oracle Database 12c R1でハイブリッドクラウドが簡単に

7月20日、毎年恒例の業界イベント「Oracle Database Cloud Technology...

トピックを計画するためのアイデアがない場合はどうすればよいですか?

最近、私はプランナーである何人かの友人とよくコミュニケーションを取っています。特に、そのうちの一人は...

簡単な説明: クラウド ネットワークとは何ですか?

クラウドの未来は明るい。 2024 年までに、IT 支出の 45% 以上が、レガシー ネットワークの...

#ddos 保護: secureragon - 年間 25 ドル / メモリ 1g / ハードディスク 25g / トラフィック 1T / G ポート

secureragon.net は、休暇から戻った後にプロモーションを開始したと思われます。open...