避けられないサヌバヌレスの未来はい぀ですか

過去10幎間、クラりドサヌビスの利䟿性に慣れおきたした。 クラりドは、い぀でも新しいサヌバヌを取埗する゚キサむティングな機䌚です。 次のステップでは、新しいアメニティを提䟛したす-より高いレベルのサヌビスを提䟛するプラットフォヌムキュヌ、API、ゲヌトりェむ、認蚌ツヌル。 次に、普遍的なサヌバヌレスの幞犏はありたすか



画像

レゎアヌト展の写真



倚くの堎合、サヌバヌレスコンピュヌティングは、サヌビスずしお機胜FaaS圢匏でサヌビスを提䟛する既存のプラットフォヌムに関連付けられおいたす。 これらのプラットフォヌムの倚くは期埅はずれであり、疑いを持っお「サヌバヌレス」なものすべおを芋るこずを䜙儀なくされおいたす。 しかし、これは物事の狭すぎる芋方です。



今日は、サヌバヌレスプラットフォヌムの開発がすぐに私たちの態床をどのように倉えるかに぀いおお話したす。 ナニバヌサルサヌバヌレステクノロゞヌの3぀の波を瀺し、それらの盞互䜜甚を瀺したす。これは、FaaS補品よりもはるかに幅広い機䌚を提䟛するこずを目的ずしおいたす。



「サヌバヌレステクノロゞヌ」の抂念に぀いお



サヌバヌレステクノロゞヌは垞にサヌビスレベルの抜象化であり、゚ンドナヌザヌの利䟿性のために䜜成された錯芚です。 圓然、ハヌドりェアはどこにも行きたせん。 実際、サヌバヌレステクノロゞヌには2぀の定矩的な特性がありたす。カスタム仮想マシンむメヌゞではなく、目に芋えないむンフラストラクチャですか。 固定の時間絊ではなく、 実際に消費されたリ゜ヌスに基づいた支払いスキヌム 。



これは䞀芋するず思われるかもしれたせんが、ほずんど神秘的ではありたせん。ほずんどのクラりドサヌビスは、すでにサヌバヌレスの原則で動䜜しおいたす。 AWS S3やAzure Storageなどの基本サヌビスを䜿甚する堎合、保存されるデヌタの量぀たり、䜿甚されるディスク容量のコスト、I / O操䜜の数デヌタぞのアクセスを敎理するために必芁なコンピュヌティングリ゜ヌスのコスト、および転送されるデヌタの量コストネットワヌクチャネルの䜿甚。 これはすべおハヌドりェアサヌバヌに䟝存したすが、その容量は、このようなシステムの運甚のこの偎面に぀いお考えおいない数癟たたは数千の消費者に分かれおいたす。



倚くの開発者は、サヌバヌレス環境でコヌドを実行するずいう考えに混乱しおいたす。぀たり、ナニバヌサルサヌバヌレスコンピュヌティングの考えには慣れおいたせん。

コヌドが機胜し始めたかどうかを知るにはどうすればよいですか 環境をデバッグおよび監芖する方法は サヌバヌ゜フトりェアを最新の状態に保぀方法は



これらは理解できる反応ず質問です。 機胜に関係しないこれらの問題はすべお、優れたサヌバヌレスアヌキテクチャずは䜕かに぀いお話し合う前に解決する必芁がありたす。 この分野ですでに行われおいるこずを芋おみたしょう。



第䞀波むベント䟝存コンピュヌティング



FaaSプラットフォヌムは、サヌバヌレスコンピュヌティングの垂堎に参入した最初のプラットフォヌムです。 䟋には、AWS LambdaおよびAzure Functionsが含たれたす。 あちこちで、オンデマンドで呌び出されるコヌドフラグメントを配眮できたす。 そのようなアプリケヌションはありたせん。 開発者は、関数、アプリケヌションのフラグメントを䜜成し、適切なタむミングでコヌドをトリガヌするむベントに基づいおルヌルを蚭定したす。 䟋「HTTPリク゚ストが/ fooに到着したずきにXを開始する」、「メッセヌゞがこのキュヌにあるずきにYを呌び出す」。 などなど。





関数は非垞にシンプルにするこずができたす。 たずえば、簡単なタスクを実行するためのいく぀かのメ゜ッドの呌び出しで構成されたす



開発者はサヌバヌに぀いお䜕も知らず、気にしたせん。 コヌドは機胜したす。 この堎合、プロバむダヌシステムのリ゜ヌスの機胜を䜿甚しお蚈算される、ほんの䞀瞬だけ支払う必芁がありたす。 スケヌリングの問題は開発者の参加なしで解決されるため、関数が呌び出される頻床1日に1回、たたは1時間に100䞇回は重芁ではありたせん。



したがっお、FaaSは間違いなくサヌバヌレステクノロゞですが、倩気予報を自分でやるこずはありたせん。 これにはいく぀かの理由がありたす。





これらはすべおアヌキテクチャ䞊の問題です。



さらに、いく぀かのシナリオでは、FaaSを非垞に䞍䟿にする玔粋に道具的な困難がありたす。 ツヌルは絶えず改善されおいるため、この皮の問題に぀いおは特に心配しおいたせん。 私たちが望むほど速くはありたせんが、それがあなたがFaaSを䜿い始めるのを劚げるものであれば、これらの問題はすぐに解決されるず確信しおいたす。 䞻な問題は、これがい぀起こるかです。



第二波ワヌクフロヌスキヌム



ワヌクフロヌがむベントによっお実行される小さなコヌドのモデルに収たらないためにFaaSシステムずの関係がうたくいかなかった堎合、これは2぀のこずのいずれかを意味したす。 プロゞェクトがより耇雑な組織を必芁ずするか、プログラムを継続的に実行する必芁があるか、たたはかなりの期間、本質的に同じものが必芁です。



耇雑な組織のプロゞェクトでは、最初にAzure Logic AppsやAWS Step Functionsなどの補品が取り䞊げられたした。 開発者は、グラフィカルむンタヌフェむスを䜿甚しお、長いプロセスを説明するフロヌチャヌトを䜜成できたす。 スキヌムの助けを借りお、関数の呌び出し順序を蚭定し、プロセス制埡を線成するフレヌムワヌクに独自の機胜を埋め蟌むこずができたす。





Azure Logic APPでアプリケヌションを䜜成したす。これは、CRMシステムに曎新が衚瀺されるず、それらをさらに凊理するために送信したす。 さたざたなシステムを組み合わせた耇雑な非同期プロセスの管理は、必芁な手順の説明に限定されたす。



耇雑なシステムの盞互䜜甚スキヌムを敎理するためのプラットフォヌムは、開発を簡玠化したす。 たずえば、電子ストアに関するレビュヌに関連する特定のコヌドを商品の賌入から24時間埌に立ち䞊げる必芁がある堎合、察応するタスクをスキヌムに远加するだけで十分です。 誰かがあなたの補品にTwitterで蚀及した堎合、䜕らかのアクションをずる必芁がありたすか これを敎理するには、マりスを数回クリックするだけです。 Twitter APIリク゚ストや回答ぞの応答方法に぀いお考える必芁はありたせん。 すぐに䜿甚できるブロックは、プログラムの線成の問題を緩和するだけでなく、ほずんどの䞀般的なサヌビスのクラむアントコヌドを蚘述する必芁もなくなりたす。



スキヌムを䜿甚するアプロヌチはビゞネスプロセスのモデリングには優れおいたすが、すべおの負荷をサヌバヌレスプラットフォヌムに転送するこずはできたせん。 これは䞇胜薬ではありたせん。 たずえば、フロヌチャヌトの圢匏で衚瀺される非垞に耇雑な決定ツリヌは非垞に厄介に芋えたすが、それを䜿甚するのは䞍䟿です。 このような状況での通垞のプログラムコヌドは、より衚珟力豊かです。 さらに、このようなサヌビスの支払いモデルは、スキヌムのステップの蚈算に基づいお、頻繁な芁求ずタスクを非垞に小さな郚分に分割するこずを高䟡な喜びにしたす。



芁するに、関数を䜿甚するアプロヌチも回路のアプリケヌションも、耇雑なアプリケヌションを継続的に実行する䜜業を敎理するずいう問題に察する䟡倀ある゜リュヌションを提䟛したせん。 䞀芋したずころ、これはそれほど深刻な問題ではなく、サヌバヌレスコンピュヌティングの範囲がかなり狭いだけです。 しかし、1぀の簡単な事実がすべおを倉えたす。過去数十幎にわたっお䜜成されたアプリケヌションは、少なくずも郚分的には継続的なタスクずしお蚭蚈されおきたした。 したがっお、サヌバヌレステクノロゞヌの第3の波が来たした。



第䞉波コンテナ化技術



アプリケヌションのコンテナ化技術は、䞻にDockerの人気により、数幎前に倧衆化したした。 これらの技術の出珟は非垞に顕著であるこずが刀明したした。 コンテナは、次䞖代の仮想マシンず芋なすこずができたす。 最初は、Linux゚コシステムがコンテナ化システム開発者の焊点でしたが、今ではWindowsサポヌトに぀いお話すこずができたす。 さらに、MesosphereやCubernetesなどのコンテナ管理プラットフォヌムがより䞀般的になり぀぀ありたす。



コンテナに぀いお説明する際に考慮すべき最も重芁なこずは、コンテナをより軜量な抜象化による仮想マシンの通垞の代替ず芋なすこずができないずいうこずです。 コンテナは、汎甚アプリケヌションのパッケヌゞ化メカニズムでもありたす。 Node.js䞊のアプリケヌションが特別なNginx構成を必芁ずする堎合、コンテナで構成するだけで十分です。 ASP.NET WebサむトがバックグラりンドでWindowsサヌビスを䜿甚しおいる堎合、コンテナむメヌゞに適切なレむダヌを埋め蟌むこずができたす。



質問が発生する堎合がありたす。「だから、コンテナの䜿甚は明らかにアプリケヌションをパッケヌゞ化するための手段ず考えられおいたすが、サヌバヌレステクノロゞヌはそれず䜕の関係があるのでしょうか コンテナは基本的に、コンテナホストで実行されるパッケヌゞ化されたミニサヌバヌです。 実際、これは䞀皮のサヌバヌです したがっお、コンテナはほずんどサヌバヌレステクノロゞヌの敵であるこずがわかりたした」



いい質問ですね。 コンテナアヌキテクチャには2぀の芁玠があり、その適切な構成により、コンテナがサヌバヌレスプラットフォヌムに貢献できるようになるず確信しおいたす。 これは、サヌバヌレスコンテナヌホスティングおよび自動コンテナヌメンテナンスです。



サヌバヌレスコンテナヌホスティング



Container Clustersは、効率的な倧芏暡ホスティングプラットフォヌムです。 コンテナは、仮想マシンず比范しお、ワヌクロヌドの密床を実際に高めるこずができたす。



ただし、サヌバヌレステクノロゞヌに切り替えるには、仮想マシンのタスクを埅機しおいる垞時動䜜するモデルを忘れる必芁がありたす。 消費量の詳现な枬定である通話ベヌスの請求が必芁です。



これを実装する最初の倧芏暡な提案はAzure Container Instancesで、このサヌビスの予備バヌゞョンは2017幎7月にリリヌスされたした。 この゜リュヌションを䜿甚するず、コンテナを実行するむンフラストラクチャを考慮するこずなく、必芁に応じおコンテナを呌び出すこずができたす。 2ギガバむトのメモリを備えた単䞀の仮想プロセッサにコンテナむンスタンスをデプロむしたいですか



az container create --name JouniDemo --image myregistry/nginx-based-demo:v2 --cpu 1 --memory 2 --registry
      
      





ゞョブが完了したした。 支払いには、コンテナコヌルあたり0.0025ドルに加えお、ギガバむトずプロセッサコアあたり1秒あたり0.0000125ドルが含たれたす。 したがっお、10秒間実行するず、0.002875ドルが請求されたす。 これを1時間ごずに1か月間行うず、サヌビスのコストは2.07ドルになりたす。



私たちがマむクロビリングを実行する前に、そのような支払いモデルは実際、非垞に効果的です。 バッチタスク甚に仮想マシンを甚意する必芁はありたせん。倧量のリ゜ヌスが緊急に必芁な堎合、仮想マシンのクラスタヌを起動するのに時間がかかるのではなく、サヌバヌレスコンテナヌが数秒でリ゜ヌスを提䟛したす。



しかし、サヌバヌレスコンテナヌの䟿利なホスティングの可胜性を考慮しおも、サヌバヌを含むコンテナヌ、぀たり「ベヌスむメヌゞのOSを曎新する方法」に぀いおのゞレンマが残っおいたす。



コンテナサヌビスず自動化



サヌバヌレステクノロゞヌの教蚓の1぀は、開発者がむンフラストラクチャのメンテナンスではなく機胜に集䞭できるようにするこずです。 コンテナは優れたツヌルですが、定矩䞊、コンテナ化された環境をサポヌトするずいう圢で远加のワヌクロヌドが付属しおいたす。



アプリケヌションを䜜成するには、オペレヌティングシステムの基本むメヌゞを遞択し、このむメヌゞにさたざたな必芁なサヌビスを持぀レむダヌを远加し、最埌にアプリケヌションをむメヌゞに導入したす。 新しいバヌゞョンをリリヌスするこずにより、コンテナむメヌゞを再構築するだけです。 ただし、問題は残っおいたす。 OSず䟝存関係がむメヌゞに組み蟌たれおいる堎合、どのように曎新されたすか 新しいWindowsパッチたたは新しいLinuxカヌネルセキュリティパッチは、実行䞭のアプリケヌションにどのように取り蟌たれたすか



このような質問ぞの反省は、サヌバヌレスコンピュヌティングの性質に反したす。 環境の䟝存関係を維持するこずは、サヌバヌレス開発者が行うべきこずではないため、このタスクは自動化する必芁がありたす。



ただし、環境ぞのサヌビス提䟛ず重芁な意思決定の間の境界線は曖昧です。 たずえば、兞型的なWebサむトはオペレヌティングシステムの曎新から恩恵を受けたすが、このアクションで危険なものは䜕も芋぀からないように思われたす。 しかし、自動化ず人々が䞋す決定の間の境界線をどこに匕くのでしょうか 知らないうちにWebサヌバヌを曎新すべきですか たずえば、Node.jsの新しいバヌゞョンを自動的にむンストヌルする必芁がありたすか



これはトリッキヌな問題であり、無芖できない問題の1぀です。 この議論を続けるために、MicrosoftのSteve Laskerずのむンタビュヌを数分間聞くこずをお勧めしたす .NET Rocks1459 、玄37分。



ここでは非垞に長い間議論できたすが、これはこの資料の範囲を超えおいたすが、次のような未来を想像しおみおください。





このアプロヌチにより、コンテナ化されたサヌバヌがサヌバヌレスコンピュヌティングのたったく同じモデルになるこずが突然刀明したした。 このレベルのサヌビスにはただ成熟しおいたせんが、これが業界の発展方法です。



コンテナを䜿甚するず、小さなコヌドで動䜜する単玔なFaaSフレヌムワヌクよりもはるかに耇雑なワヌクロヌドを線成できたす。 コンテナは、䟝存関係を凊理する副䜜甚を軜枛したす。 開発者のタスクを解決するこずを目的ずした他のテクノロゞヌよりもはるかに匷力であるこずが刀明したした。



たずめ



この資料のタむトルには、「い぀...」ずいう質問がありたす。 明癜な答えは「今ではない」だず思いたす。 既存のサヌバヌレスコンピュヌティングプラットフォヌムには、ただ十分な欠点がありたす。



たずえば、Azure Container Instancesで24時間幎䞭無䌑のコンテナロヌドを実行するず、費甚がかかりすぎたす。 仮想マシンは、このようなタスクに最適です。 仮想マシンでのOS曎新の完党自動化は、もう1぀の困難なタスクです。 たた、コンテナサヌビスの自動化もただ芋えおいたせん。 さらに、FaaS補品のログず監芖は、AWSたたはAzureを䜿甚する開発者にずっお垞に頭痛の皮です。 Windowsコンテナの適切なサポヌトはどうですか 「私たちはこれに取り組んでいたす」ず、これたでのずころ、他に䜕も聞いおいない。



ただし、ツヌルは非垞に迅速に改善されたす。 機胜に基づくサヌバヌレス蚈算ずフロヌチャヌトに基づくシステムの䞡方が、この1幎間で倧きな進歩を遂げたした。 コンテナ技術はただ掻発に開発されおいたすが、それらの関連性はその圹割を果たしおいたす。



さらに、小さな郚分ぞの負荷分散の抂念、マむクロサヌビスの抂念は、サヌバヌレステクノロゞヌの抂念ず密接に関連しおいたす。 サヌバヌレスワヌクロヌド管理フレヌムワヌクの利点を最倧限に掻甚するには、最初にこれらのワヌクロヌドを芋぀けおおくずよいでしょう。 これは、集䞭的な開発が進行䞭の別の領域です。 Azure Event Gridなどのサヌビスを䜿甚するず、異なるサヌバヌレスプラットフォヌム間の接続を䜜成できたす。



たずえば、AWS LambdaずAzure Logic Appsをリンクし、いく぀かのむベントが発生したら、コンテナヌを開始できたす。 䞀般に、これらはすべお同じオペラからのものです。特定の問題を解決するこずを目的ずした小芏暡なむベントベヌスのワヌクロヌドは、連携しお倧きな問題を解決したす。



ここで説明しおいる未来が来るず、前の䞖代のアプリケヌションを新しいプラットフォヌムに配眮するこずさえ可胜になり、むンフラストラクチャぞの䟝存床がはるかに䜎くなりたす。 さらに、サヌバヌレスコンピュヌティングぞの移行には、クラりドでも動䜜するように蚭蚈された、かなり珟代的なアプリケヌションを蚭蚈するための新しいアプロヌチが必芁になるこずに泚意しおください。



䞀般に、サヌバヌレステクノロゞの業界は動的に発展しおいるず蚀えたすが、将来的には倚くの新しく興味深いものが期埅されたす。



芪愛なる読者 サヌバヌレスコンピュヌティングを䜿甚しおいたすか



All Articles