クラウドネイティブコンピューティングは技術的負債を排除できますか?

クラウドネイティブコンピューティングは技術的負債を排除できますか?

[[415169]]

[51CTO.com クイック翻訳]クラウド ネイティブ コンピューティングは、業界主導の設計、GitOps、その他の最新のソフトウェアのベスト プラクティスを統合することができ、企業が適切に実装すれば技術的負債を削減できます。

クラウド ネイティブ コンピューティングは、アプリケーション開発からソフトウェア アーキテクチャ、そしてすべての稼働を維持する基盤となるインフラストラクチャまで、現代のテクノロジーのあらゆる側面に関係するエンタープライズ IT の新しいパラダイムです。

クラウド ネイティブは、企業に技術的負債を解消する機会を提供します。たとえば、Kubernetes のような「ほうき」を使用すると、既存のテクノロジーのほこりっぽい隅々まで掃除することができます。したがって、クラウド ネイティブによって、長年にわたって蓄積された技術的負債が最終的に解消されると考えるのは理にかなっています。

これは論理的かもしれませんが、現実的ではありません。技術的負債は長期間にわたって存続することがよく知られています。さらに、どの CIO も、前任者が残した混乱を一掃するために IT 予算を無駄にするよりも、新しいテクノロジーや新しいものに IT 予算を費やしたいと考えています。

しかし、クラウド ネイティブに期待できる理由もあります。クラウド ネイティブは魔法のほうきではありませんが、その中核となるプラクティスは、企業が技術的負債を削減し、少なくとも以前ほど負債を増やすことなく新しいソフトウェア機能を提供するのに役立ちます。

新たな負債が発生しないようにビジネスで技術的負債を解消することは確かにパズルの一部ですが、より差し迫った問題は、既存のレガシー技術的負債をどのように返済するかということです。

長年にわたり、私たちのインフラストラクチャには、便利なショートカット、扱いにくいコーディング、さまざまなインターフェースが絡み合った混乱が形成されてきました。この困難な問題に対しては、「迅速かつ断固とした」対策を講じる必要があるかもしれない。

クラウド ネイティブ コンピューティングは、ドメイン駆動設計に基づくアーキテクチャの再構築という、非常に鋭いナイフです。ドメイン駆動設計では、複雑なエンタープライズ ソフトウェアの課題を、それぞれが「境界付けられたコンテキスト」を持つ個別のビジネス ドメインに分割する必要があります。

境界付けられたコンテキストは、ビジネス ニーズに基づいて「顧客」や「請求書」などのビジネス上の問題を解決するためにコンテキストを制限できます。たとえば、大企業の異なる部門では、顧客の概念が異なっている(重複している可能性もある)場合があります。それぞれが別個の境界付けられたコンテキストを表します。

マイクロサービス アーキテクチャの初期の調査により、相互接続されたマイクロサービスが急増しましたが、その複雑さがスケーラビリティの制限としてすぐに明らかになりました。境界付けられたコンテキストを通じてそれらを整理することが、この複雑さを管理し、マイクロサービス ベースのソリューションを大規模に提供するための鍵となります。

したがって、ドメイン駆動設計はクラウド ネイティブ コンピューティングの一部となり、さらに、この新しいパラダイムに従ってレガシー資産をどのように最新化する必要があるかを示します。

技術的負債の多いレガシー ソフトウェアの課題に対処するための最初のステップは、アーキテクチャのリファクタリングを適用して、レガシー アーキテクチャを境界付けられたコンテキストを持つモジュール要素に変換することです。言い換えれば、企業は技術的負債を削減するための道筋を導くために、ビジネス主導の境界付けられたコンテキストに従ってモジュール性を導入する必要があります。

そして、悪魔は細部に潜んでいます。組織が直面しているビジネス ニーズと従来の課題に応じて、この再構築をいくつかの方法で活用できます。

  • 境界付けられたコンテキスト内の既存のコードが、現在の要件を満たしていないことに気付く場合があります。この場合、コードをマイクロサービスとして書き直すことができます。
  • 従来のビジネス ロジックにまだ価値がある場合は、それをマイクロサービスに移行します。
  • レガシー モジュールは、既に便利な API を備えているか、レガシー コードが更新されて API 経由で公開されるため、API として公開できます。
  • ロボティック プロセス オートメーション (RPA) プログラムを使用して、レガシー モジュールと対話するスクリプトを作成できます。

レガシー ソフトウェアは以前に再編成され、境界付けられたコンテキストにモジュール化されているため、上記の 4 つのアプローチはそれぞれ他のアプローチよりもシンプルであることに注意することが重要です。

さらに、技術的負債を分割する「分割統治」アプローチにより、必要に応じて将来のリファクタリングがより簡単になります。たとえば、企業にとっては、1 つの大きな技術的負債を返済するよりも、4 つの小さな技術的負債を時間をかけて返済する方が簡単な場合があります。

このアプローチは、RPA の脆弱性を軽減する最良の方法の 1 つでもあります。境界付けられたコンテキストに基づくアーキテクチャのリファクタリングがなければ、アプリケーション環境のどこかで何かが変更されると、そのようなボットは機能しなくなります。適切に区分化することで、このような障害はより管理しやすくなり、修正も容易になります。

新たな技術的負債の防止

新たな技術的負債を防ぐことは、部屋をきれいに保つように頼むようなものです。しばらくはきれいな状態を保てるかもしれませんが、最終的には乱雑になってしまいます。

必要なのは、さらなる構造ですよね?少なくともクラウドネイティブの場合には、その構造は役立ちます。

クラウド ネイティブ コンピューティングは、ソフトウェアの構築、インフラストラクチャの構成、アプリケーションの作成と展開、運用環境におけるすべての管理を最適に行う方法を説明する幅広いベスト プラクティスを提供します。

もちろん、このアドバイスをすべて実行すれば、新たな技術的負債が発生する可能性は低くなります。少なくとも、発生する速度は遅くなります。

「Infrastructure as Code」(IaC) の原則が重要な例です。 IaC の原則では、作業者は運用中のサーバーを操作してはならないと規定されています。 IaC の原則は、運用上の問題を解決するための積極的なアプローチを提供するため、運用における追加の技術的負債を確実に制限できます。ただ 1 つ問題があります。それは、IaC だけでは不十分だということです。

IaC の問題は、さまざまなプログラムを記述する必要があることです。これらのプログラムは、他のプログラムと同様にテスト、管理、バージョン管理する必要があります。つまり、他のソフトウェアと同様に技術的負債が発生する可能性があります。

幸いなことに、クラウド ネイティブ コンピューティングは IaC を超えて進化しており、各ステップで前のステップよりも改善されています。

  • 最初のステップは、宣言的な構成を通じてインフラストラクチャを表現することです。宣言的な構成では、インフラストラクチャを構成する方法を指定しますが、その構成を実現する方法を指定しません。

IaC と比較すると、宣言型アプローチではショートカットの余地が少ないため技術的負債が軽減されますが、これらの表現 (通常は YAML ファイルまたはその他の JSON ベースの形式) は、特に複雑で動的なインフラストラクチャ構成の場合、依然としてコードと非常によく似ています。

  • ステップ 2: GitOps。 GitOps は、Git 中心のプラクティスとプロセスをソフトウェアのリリースと管理に導入します。

GitOps はソフトウェアのデプロイメントに宣言的なアプローチを採用しているため、インフラストラクチャ構成に対する宣言的なアプローチをさまざまな方法で補完します。 GitOps は、プロセスにさらなる構造を提供することでさらに一歩進んでおり、構造が強化されるほど、技術的負債が発生する可能性が低くなります。

  • 3 番目のステップは、現在の最先端技術であるインテント ベース コンピューティングです。

インテントベース コンピューティングは、次の 3 つの部分で構成されます。

  • 技術戦略の形式での関連ソフトウェア (インフラストラクチャ、アプリケーション コードなど) の宣言的表現。
  • ビジネス ポリシーなどの技術ポリシーのこの抽象化は、基礎となる構成のビジネス上の意図を表現します。
  • 基盤となるソフトウェアがこのビジネス目的に準拠していることを保証し、ポリシーの適用におけるポリシーのドリフトを排除するメカニズム。

言い換えれば、インテントベース コンピューティングは宣言型の構成アプローチと GitOps を採用し、追加の構造を追加することで、基本的にクラウド ネイティブ環境全体が時間の経過とともにビジネス インテントと一致することを保証します。

この種のコンプライアンスは、技術的負債の混乱を切り抜ける最良の手段です。

記事タイトル: クラウドネイティブコンピューティングは技術的負債を解消できるか?、著者: Jason Bloomberg

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

<<:  Hightouch は、ウェアハウスと SaaS アプリケーション間でデータを同期するために「リバース ETL」をどのように使用しますか?

>>:  雲が増えればパワーも増える?マルチクラウド アーキテクチャに隠された 11 の秘密をご存知ですか?

推薦する

茶包装ステーションの最適化プロセス中に発生した問題の原因の簡単な分析

私が最適化を始めたお茶のパッケージを販売するサイトは、4月8日にオンラインになってから安定したインク...

短期賃貸の元祖Airbnb:海外旅行で中国市場に逆参入

[概要] 今後、中国では初めての海外旅行に出かける人がますます増えるでしょう。これらの人々はAirb...

新華社通信:Qvodに対する罰金の額はまだ決定されておらず、法的手続きもまだ完了していない。

経済オブザーバーレポートのスクリーンショット20日午後、「Qvod社が2億6000万元の罰金を科せら...

Apple iOSプログラミング言語はC++よりも人気があり、JavaとC++に次いで2番目に人気があります。

プログラミング言語のランキングの推移(写真提供:テンセントテクノロジー)テンセントテクノロジーニュー...

第7回国勢調査は電子登録を採用、テンセントクラウドが技術サポートを提供

我が国では10年ごとに国勢調査が行われており、今年もまた新たな国勢調査が始まろうとしています。これは...

分散システムにおける「スプリットブレイン」とは一体何でしょうか?

[[413929]]この記事はWeChatの公開アカウント「New Vision of Progra...

新浪の高級電子商取引事業が閉鎖間近と報じられる

最近、一部のメディアは、Jiapin.com が大規模な人員削減を経験し、Sina Luxury が...

dedipath: $99/E3-1270v2/16g メモリ/4T ハードディスク/1Gbps 無制限トラフィック/ロサンゼルス

Dedipath のロサンゼルス データ センターでは、格安サーバーの特別プロモーションを実施してい...

ネットユーザーの皆さん、端午の節句おめでとうございます!

端午節は3日間休みです。皆さんが楽しい休日を過ごせますように。たくさん食べて、たくさん飲んで、たくさ...

阿倍豆班氏との対話:ユーザー価値の外部性を見つける

豆板創始者阿倍氏(右) Doubanの創設者Abeiは、Geek Park Innovation C...

Kafka のパフォーマンス: Kafka がなぜ「高速」なのか?

[[388822]] 「Code Brother」による Redis シリーズの記事の 1 つ、「R...

エッジコンピューティングにおいて Kubernetes がなぜそれほど重要なのでしょうか?

エッジ コンピューティングはクラウド コンピューティングの一種で、コンピューティング、ストレージ、ネ...

Prometeus の iwstack クラウドがオンラインになりました

Prometeus の VPS クラウドが正式にリリースされました! iwStack の基本機能: ...

justhost: ノボシビルスク VPS、200Mbps、無制限トラフィック、月額 11 元から

justhost は、ロシアの DataLine と Rostelecom の 2 つのデータセンタ...

Pinduoduoの100億元補助金の最大の弱点!

Pinduoduoは、ブランド所有者の「軽蔑」により、再び論争の中心に立っている。最近、拼多多プラッ...