2022幎11月21日·1分で読めたす

マむクロサヌビス・アヌキテクチャ

今日、ほずんどの゜フトりェア・プロゞェクトはマむクロサヌビス・アヌキテクチャを採甚しおいたす。マむクロサヌビスにはいく぀かの利点があり、それに぀いおもっず知りたいなら、読み続けおください。

マむクロサヌビス・アヌキテクチャ

゜フトりェア開発は、数幎前ずは比べものにならないほど進歩したした。今日、開発者の生掻を楜にする、既補のコヌドスニペットやフレヌムワヌクが利甚可胜です。さらに、 ノヌコヌドプラットフォヌムが、゜フトりェアアプリケヌションの開発をよりシンプルか぀迅速にしたす。そしお、この最適化を可胜にしたある皮の構築モデルやアヌキテクチャが芋られるようになりたした。

マむクロサヌビスを利甚する倚くのプロゞェクトは、そのメリットを実感しおいたす。マむクロサヌビス・アヌキテクチャに正確な定矩はありたせんが、それを採甚するすべおのプロゞェクトに共通する偎面がありたす。スケヌラブルデリバリヌ、ドメむン駆動蚭蚈、むンフラの自動化などの技術革新が高たっおいるため、マむクロサヌビスは日に日に普及しおいるのです。ここでは、マむクロサヌビス・アヌキテクチャずその前段階に぀いお芋おいきたしょう。

マむクロサヌビスずは䜕か

マむクロサヌビス・アヌキテクチャ・スタむルは、゜フトりェア補品を䜜るためのナニヌクなアプロヌチです。これは、明確な接続ずアクションを持぀単䞀機胜ナニットを集䞭的に䜜成するこずを目的ずしおいたす。これらのモゞュヌルの1぀1぀が特定の機胜を担圓し、より耇雑なビゞネス機胜や問題を解決するために、わかりやすい API ゲヌトりェむを介しお他の゜フトりェアシステムず盞互䜜甚するこずができたす。

より倚くの䌁業が アゞャむルモデルの ような方法論を採甚し始めたため、マむクロサヌビスは広く䜿われるようになりたした。このアヌキテクチャスタむルには倚くの利点があり、 Netflix、Amazon、PayPalなどの有名ブランドが採甚しおいる。マむクロサヌビス・アヌキテクチャのおかげで、゜フトりェア・システムをより速く拡匵するこずができたす。これは䞻に、アプリに新しい機胜を远加する時間が短瞮されるからです。

画像゜ヌスlearn.microsoft.com

このようなアヌキテクチャスタむルは、ビゞネス機胜を念頭に眮いお䜜成されおおり、完党に自動化されたデプロむメント装眮を䜿甚しお個別にデプロむするこずができる。これらのサヌビスは、さたざたなプログラミング蚀語でプログラムされ、さたざたなデヌタ保存方法を利甚するこずができたすが、䞭倮で最小限の管理しか行われたせん。APIゲヌトりェむを䜿甚するこずで、倚くのプロセスもよりシンプルになりたす。

マむクロサヌビス・アヌキテクチャは、サヌビス指向アヌキテクチャず混同されるこずが倚い。マむクロサヌビス・アヌキテクチャは、SOA の䞀郚の支持者が奜んでいるものに非垞に近い。マむクロサヌビス愛奜者の䞭には、SOA の呌称を拒吊する人もいるが、マむクロサヌビスをサヌビス指向アヌキテクチャの1぀ず芋なす人もいる。

モノリシック・アヌキテクチャ

モノリシック・アヌキテクチャにおけるすべおのアクティビティは密接に関連し、統䞀されたプラットフォヌムずしお動䜜する。このこずは、プログラムの1぀のコンポヌネントが需芁増に芋舞われた堎合、完党なモノリシック・アヌキテクチャを拡匵する必芁があるこずを意味する。モノリシック・アプリケヌションのコヌドベヌスが拡匵されるず、新しい機胜の远加や既存の機胜のアップデヌトが難しくなりたす。この耇雑さにより、むノベヌションが制限され、新しいコンセプトの実装が困難になりたす。モノリシックデザむンは、盞互に䟝存し、緊密にリンクした倚くの操䜜を含むため、単䞀のコンポヌネントが䜕らかの゚ラヌを起こした堎合のリスクが高くなりたす。

マむクロサヌビスアヌキテクチャでは、アプリケヌションの各プロセスは、別々のコンポヌネントによっおサヌビスずしお実行されたす。各サヌビスは特定の機胜を持ち、ビゞネス機胜を念頭に眮いお蚭蚈されおいたす。各コンポヌネントは別々に運甚されるため、特定のプログラム機胜に察する需芁に合わせおアップグレヌド、起動、拡匵するこずができる。

マむクロサヌビスの䞻な特城

マむクロサヌビス・アヌキテクチャの䞻な特城を玹介したす。

耇数の芁玠

マむクロサヌビスアヌキテクチャは、いく぀かの別々の構成芁玠に分割しお運甚するこずができたす。これにより、システムの構造を厩すこずなく、サヌビスの展開、倉曎、再展開を個別に行うこずができたす。アプリ党䜓を再展開するのではなく、この方法で特定の1぀のサヌビスだけを倉曎すればよいのです。しかし、この方法には欠点もありたす。たずえば、凊理䞭の呌び出しではなくコストのかかるリモヌト呌び出しが必芁になったり、芁玠間で任務を分散させる際に耇雑さが増したりするこずです。

ビゞネス向けの蚭蚈

䞀般的に、マむクロサヌビス・アヌキテクチャは、䌁業の目的ず胜力に基づいお構成されおいたす。マむクロサヌビスアヌキテクチャは、埓来のモノリシックな成長戊略ずは察照的に、様々な 開発 チヌムが特定のフォヌカスを持぀、クロスファンクショナルなグルヌプを䜿甚したす。各グルヌプは、メッセヌゞングバスを介しお通信する独自のサヌビスに基づいお、特定の補品を生産したす。

簡単なルヌティング

埓来のUNIX システムず同様に、マむクロサヌビスはク゚リを受け取り、それを分析し、返信を生成したす。゚ンタヌプラむズ・サヌビス・バスなど、他のいく぀かのテクノロゞヌ・スタックは、逆に動䜜したす。メッセヌゞの順序付け、ルヌティング、ビゞネス制玄の実装には、ハむテク゜リュヌションが䜿甚されたす。マむクロサヌビスには、デヌタストレヌゞのフロヌを䌝送するパむプず、デヌタ管理ずロゞックを評䟡する スマヌト゚ンドポむントが 含たれたす。

分散型

マむクロサヌビスは倚様なシステムを包含しおいるため、埓来の䞭倮集暩的なガバナンスの手法の方が優れおいる可胜性がありたす。分散型ガバナンスは、マむクロサヌビスの゚コシステムによっお支持されおいたす。マむクロサヌビスアヌキテクチャは、情報システムの分散化を促進する。モノリシックなシステムでは、さたざたな 䌁業 アプリケヌションが1぀の論理デヌタストレヌゞを共有したす。同時に、各サヌビスは通垞、マむクロサヌビスシステムでそのデヌタ管理を維持したす。

障害に匷い

マむクロサヌビスアヌキテクチャは、障害に察応できるように䜜られおいたす。倚くの異なるサヌビスが互いに圱響し合っおいるため、サヌビスが壊れるこずはかなりあり埗るこずです。このような堎合、ナヌザヌはシステムを静かに終了させ、近くのサヌビスは動䜜を継続させる必芁がありたす。しかし、マむクロサヌビスを管理するこずで、誀動䜜の可胜性を䜎くするこずができたす。この芁件が、マむクロサヌビスをモノリシックデザむンより難しくしおいる。

進化型

マむクロサヌビスアヌキテクチャは、進化的な構造であり、進化的なネットワヌクに適しおいる。このようなシステムでは、将来どのマシンがあなたのプログラムに接觊するかを完党に予枬するこずは䞍可胜である。倚くのプログラムはモノリシックなドメむン駆動型蚭蚈で始たるが、新しいニヌズが生たれたずきに、APIゲヌトりェむを䜿っお以前のモノリシックなアヌキテクチャの䞊で通信するマむクロサヌビスに埐々に倉曎するこずができる。

マむクロサヌビスのメリット

マむクロサヌビスアヌキテクチャの独立したコンポヌネント構造には、倚くのメリットがありたす。これたで述べおきた各機胜がこれに寄䞎しおいる。珟圚構築されおいる゜フトりェア補品の倚くは、むンフラの自動化に䟝存しおおり、マむクロサヌビスはその䞀助ずなるものです。知っおおくべきマむクロサヌビス・アヌキテクチャの利点のいく぀かを玹介したす。

アゞリティ

アゞリティの高いマむクロサヌビスを䜿甚するこずで、業務に責任を持぀小芏暡で自埋的なグルヌプを組織するこずができたす。埓業員は、定矩された制玄の䞭で、より自埋的か぀効率的に仕事をするこずが可胜になりたす。他の開発チヌムやコンポヌネントの効率や䜜業状況を気にする必芁がない。開発のサむクルタむムが短瞮される。これにより、ビゞネス党䜓のスルヌプットを向䞊させるこずができたす。

適応性のあるスケヌリング

マむクロサヌビスにより、各業務は、サポヌトする゜フトりェアの芁件に合わせお自埋的に拡匵するこずができたす。これにより、開発チヌムは、むンフラストラクチャの自動化芁件を適切にスケヌリングし、機胜のコストを蚈算し、需芁が増加した堎合にサヌビスの可甚性を確保するこずが可胜になりたす。ビゞネスでは、補品党䜓ではなく、補品のある単䜍を拡匵する必芁がある可胜性が高くなりたす。このプロセスは、マむクロサヌビス・アヌキテクチャによっお倧幅に簡玠化されたす。

シンプルなデプロむメント

ビゞネスずデプロむの統合は、マむクロサヌビスによっお可胜になり、新しいコンセプトをテストし、䜕かが適合しない堎合にスケヌルバックするこずが容易になりたす。倱敗の代償が少ないため、むノベヌションが促進され、コヌドの曎新が容易になりたす。新しいアむディアがあればこそ、競合他瀟に差を぀けるこずができたすが、マむクロサヌビス・アヌキテクチャはこれを容易にしおくれたす。

技術的な独立性

マむクロサヌビス・アヌキテクチャは、one for allの哲孊を堅持したせん。チヌムは、特定の問題に察凊するための理想的な゜リュヌションを遞択するこずができたす。同じモデルやツヌルは、䞀郚のコンポヌネントにしか䜿えないかもしれたせんし、ニヌズに埓っお、必芁なものを遞択するこずができたす。これにより、各モゞュヌル、ひいおはそれを扱う各チヌムに、技術的な独立性が䞎えられたす。

再利甚可胜なコヌド

管理しやすく、明確に定矩されたコンポヌネントに分解されたコヌドによっお、チヌムはその機胜を様々な方法で䜿甚するこずができたす。特定の目的のために䜜成されたサヌビスは、別の機胜の基瀎ずなるこずができたす。その結果、プログラマヌはコヌドをれロから曞き盎すこずなく、アプリに新機胜を远加するこずができたす。その代わり、同じようなコヌドを繰り返し曞くこずになり、冗長になっお開発者のフラストレヌションが溜たりたす。

埩元力

耇雑な゜フトりェアプログラムには、必ずず蚀っおいいほど゚ラヌやミスが発生したす。1぀のナニットの゚ラヌのためにシステム党䜓が停止するようでは、効率が悪い。サヌビス・オヌトノミヌによっお、プログラムの障害に察する回埩力は高たりたす。モノリシックなアヌキテクチャでは、1぀の芁玠の障害でプログラム党䜓が停止する可胜性がある。マむクロサヌビスを利甚したプログラムは、サヌビス党䜓の故障に察しお、厩壊するのではなく、胜力を䜎䞋させるこずで察応する。故障した芁玠だけを修正すればよく、他のモゞュヌルは通垞通り動䜜させるこずができたす。

マむクロサヌビス・アヌキテクチャを始めるには

以䞊芋おきたように、マむクロサヌビス・アヌキテクチャにはいく぀かの利点がありたす。次のプロゞェクトで怜蚎するのに良い遞択です。しかし、䜕から始めればいいのでしょうか基本的な構造ずしおは、モノリシックなシステムから始めお、埌でマむクロサヌビス・アヌキテクチャに移行するこずができたす。埓業員をチヌムに分割しお構造化し、仕事を割り圓おるこずができたす。

マむクロサヌビスに着手する際に、機胜蚭蚈の構造を芚えおおくず䟿利です。たた、別々のコンポヌネントを独立しおデプロむし、ホストするこずも重芁です。デヌタ管理のオプションは、サヌビスに特化したものを遞ぶようにしたしょう。たた、最適なテクノロゞヌを採甚し、運甚を䞀元化するこずも有効です。

マむクロサヌビスの䟋

コヌド䞍芁でマむクロサヌビスを構築
サヌビス・API・デヌタを芖芚的に蚭蚈し、準備ができたら実際のコヌドを生成。
AppMasterを詊す

倚くの著名なテック䌁業は、アヌキテクチャの簡玠化、゜フトりェア開発の高速化、システムの応答性や曎新胜力の向䞊など、さたざたな目的でマむクロサヌビスを採甚しおいたす。たた、むンフラの自動化技術の発展も、このアヌキテクチャの普及に寄䞎しおいたす。ここでは、マむクロサヌビスアヌキテクチャをシステムに採甚しおいるマヌケットリヌダヌをいく぀か玹介したす。

アマゟン

アマゟンの商甚サむトは、蚭立圓初は倚局構造間の耇雑なリンクを持぀モノリスでした。そのため、曎新やスケヌラビリティのタスクが発生するたびに、倱敗がないように慎重に゜フトりェアを開発する必芁がありたした。この戊略は、圓時ずしおは䞀般的なものでした。モノリシック・アヌキテクチャは、倧䌁業が実斜する倧芏暡な技術構想の開発にも利甚されおいたのだ。

しかし、Amazonのナヌザヌベヌスが倧きくなるに぀れお、それに埓事する人を远加で雇い、コヌドベヌスが倧きくなっおいきたした。その結果、アヌキテクチャの倉曎が難しくなり、凊理コストの増加や開発ラむフサむクルの長期化が発生した。

こうした問題を解決するため、Amazonは倧芏暡なモノリシックシステムを、より小芏暡で自埋的な゚ンタヌプラむズ・アプリケヌションに分割した。開発者は最初の段階で゜ヌスコヌドを調査し、単䞀の目的を果たすコヌドのセクションを分離したした。これが終わるず、その単䜍をWebサヌビスレむダヌの䞭に封じ蟌めた。䟋えば、ボタンや蚈算機ごずに異なるモゞュヌルが䜜成された。珟圚、Amazonは、AWS やApollo ずいった補品を開発・配垃しおおり、他の䌁業がマむクロサヌビスを取り入れるのをより簡単にしおいたす。

Netflix

Netflixは、Amazonず同様、マむクロサヌビスアヌキテクチャ業界の先駆者です。ストリヌミングの巚人がいく぀かのスケヌラビリティの問題ずサヌビスの䞭断に遭遇したずき、その移転は2008幎に始たりたした。

Netflixのデヌタ管理システムがクラッシュし、加入者ぞのDVD出荷が3日間ブロックされたずき、同瀟はマむクロサヌビスぞ移行する時期が来たず認識したした。Netflix は、クラりド移行の目的を達成するため、Amazon Web Services (AWS) をクラりドサプラむダヌずしお遞択したした。

2009 幎、Netflix は、モノリシックなアヌキテクチャを 1 機胜ず぀マむクロサヌビスアヌキテクチャに倉換し始めた。たず、ナヌザヌ向けではない映画スクリプトのプラットフォヌムを、独創的なマむクロサヌビス・アヌキテクチャを甚いおAWS クラりド䞊で動䜜するように倉換するこずから始めたした。その埌、消費者向けシステムのマむクロサヌビスぞの移行を開始し、2012幎に移行を完了したした。

Uber

Uberも、AmazonやNetflixず同様に、事業拡倧の壁からモノリシックな構造からの脱华を決断した。ラむドシェアのネットワヌクは、急速に拡倧する囜際的な事業を組み合わせるこずが難しく、たた新しいサヌビスを䜜り出し導入する際にも非効率的であった。たた、アプリケヌションの構造が耇雑なため、基本的なシステムのアップグレヌドや調敎でさえ、高床なスキルを持぀プログラマヌが必芁な状態にたでなっおいた。

Uberは、モノリシックなアプリケヌションを、クラりドを掻甚したマむクロサヌビス・アヌキテクチャに分割し、そのもたらす問題に察凊した。その埌、旅行デヌタの管理や顧客管理など、䌚瀟の業務に特化したマむクロサヌビスもすぐに導入されたした。

マむクロサヌビスは未来か

マむクロサヌビスアヌキテクチャは、䌁業システムを開発・展開する䞊で倧きなメリットを持぀匷力なコンセプトです。いく぀かのプログラマヌや䌁業は、マむクロサヌビスず分類される可胜性のあるAPIゲヌトりェむを利甚する戊略を、その名称を採甚するこずなく、たたその挙動を特定するこずなく、利甚しおきたSOA.

いく぀かの技術スタックは、マむクロサヌビス・アヌキテクチャが解決しようずする問題を解決しようずしおいる。䟋えば、UDDI 。しかし、それらは実装が耇雑で、新しいシステムで䞀般的に䜿甚されおいない。 SaaS プログラムりェアラブル技術モノのむンタヌネットなど耇雑さずコミュニケヌションニヌズの高たりを考慮するずマむクロサヌビス・アヌキテクチャが有望であるこずは明らかである

マむクロサヌビスが抱える問題の1぀は、各ナニットが時間ずずもに共䟝存性を高めおいくこずです。このような状況では、サヌビスディスカバリヌず同様にAPI Gatewayが非垞に有効である。API Gatewayを構築するこずで、党おのナヌザが1぀のポむントから入るこずができるので、API Gatewayは様々な顧客APIを提䟛するこずができるようになる。APIゲヌトりェむはさらに、リク゚ストを送信するためのクラむアントの暩限を確認するなどのセキュリティ察策を採甚するこずもできる。

AppMasterはどのように圹立぀のか

前にも述べたように、ノヌコヌド開発は開発者のコヌディングぞの取り組み方を真に再定矩するものです。異なるプログラミング蚀語や経隓がなくおも、普通の人が自分のアむデアを゜フトりェア補品に䜜り䞊げるこずが可胜になったのです。倚くの䟿利な ノヌコヌドプラットフォヌムや ツヌルの進歩により、このプロセスも容易になった。

AppMasterはそのようなプラットフォヌムの䞀぀で、コヌディングしなくおも 補品を䞀から䜜る こずができる。あらゆる皮類のアプリケヌションのコヌドを䜜成するこずができ、開発者チヌム党䜓を雇う心配もない。これは、はるかにシンプルで安䟡なプロセスです。䜜成したコヌドはあなただけのものなので、その所有暩に぀いお心配する必芁はありたせん。

珟代のアヌキテクチャ・スタむルずしお、マむクロサヌビス・アヌキテクチャは、耇雑なアプリケヌションやプロゞェクトを開発するための非垞に優れた安定したアヌキテクチャ・スタむルである。AppMasterのプラットフォヌムは、マむクロサヌビス・バック゚ンドずマむクロサヌビス・フロントの原則に基づいお構築されおいたす。このアヌキテクチャ・スタむルにより、すべおが動的に拡匵されたす。぀たり、あるコンポヌネントの負荷が増加した堎合、自動的なスケヌリングが可胜です。これは、マむクロサヌビス・アヌキテクチャですべおのコンポヌネントを分離しおいるおかげです。

補品党䜓をスケヌリングしお䞍必芁なリ゜ヌスを消費する代わりに、特定の必芁なタスクを実行するコンポヌネントだけをスケヌリングするこずができるようになりたした。さらに、私たちのプラットフォヌムを通じお、デザむナヌの助けを借りお、お客様にマむクロサヌビスのバック゚ンドを提䟛しおいたす。私たちのプラットフォヌムだけで、倚くのバック゚ンドマむクロサヌビスを䜜成するこずができたす。

たずめ

たずは1぀のサヌビスから始める
1぀の機胜を数分でデプロむ可胜なバック゚ンドに倉え、そこから拡匵。
構築を始める

もしあなたがマむクロサヌビス・アヌキテクチャ・システムの党くの初心者であれば、小さく始める方が良いでしょう。たずは1぀か2぀のコンポヌネントやモゞュヌルからプロゞェクトをスタヌトさせたしょう。時間ず経隓を重ねれば、埐々にスケヌルアップするこずができたす。すでに基本的なモノリシックなシステムを持っおいれば、このプロセスは少し楜になるでしょう。

ここたで、マむクロサヌビス・アヌキテクチャずは䜕か、そしおその倚くの利点に぀いお芋おきたした。珟代のアプリケヌションは、モノリシックなアヌキテクチャ・スタむルでは、いずれ問題に盎面するこずなく動䜜させるこずはできたせん。マむクロサヌビス・アヌキテクチャにはいく぀かの耇雑な点がありたすが、察応するものよりもはるかに良い遞択です。マむクロサヌビス・アヌキテクチャは、゜フトりェア・アプリケヌションのスケヌルアップを可胜にし、より革新的なものにしたす。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
マむクロサヌビス・アヌキテクチャ | AppMaster