サーバレスの概要

コンセプト

  私たちは、文字通りの意味として推論ワードに、サーバと少ないために2つの単語を解体サーバレス「少しものサーバ、または全くないサーバー。」もちろん、これは意味しない何のアプリケーションアーキテクチャのサーバリソースが存在しませんが、サーバレスを通じてサービスのこのフォームは、対応するサービスの利用中のユーザーが、そうで気に以下のサーバーのハードウェアリソース、ソフトウェアリソース、安定性を気にしていません、これらは通常、すでに完全にクラウドコンピューティングベンダーに管理し、クラウドコンピューティング施設、サービスやSLAの保証会社によって提供されています。ユーザーは有料の量の関数として長期に合わせて、コンピューティングプラットフォーム対応のクラウドを実行するために自分のアプリケーションコード自体、アップロード機能に焦点を当てる必要があります。

進化

  クラウドコンピューティングの誕生前に、物理マシン内のコンピューティングリソースのほとんどが「ベアメタル」のステータス、運用、保守担当者は、ハードウェアの対応する仕様を選択するために、IDCは部屋、ネットワークを構築し、完全なサービスを提供し、ハードウェアやメンテナンスコストのインフラ投資が高いです。
  クラウドコンピューティングの誕生後、ユーザーがクラウドホスト(VM)を購入することができ、基礎となる物理的なハードウェアとネットワーク管理は、単一の物理マシンを借りサプライヤー管理、マルチユーザに引き渡されますが、すべての雲のようなユーザーのためにホスティングされています単一の物理マシン、ユーザ間の相互分離。このモードでは、ユーザーのハードウェア管理のコストを削減角度に立っプラットフォーム、我々は通常のIaaS(インフラストラクチャー-AS-A-呼び出すサービス)。
  容器のより小さい粒径の開発にVM環境によって算出ソフトウェアコンテナの上昇と発展に伴い、容器は、異なるソフトウェアサービスを実行することができ、のPaaS(プラットフォームとして- -サービス) とのCaaS(コンテナままの-サービス)ビューに入るようになりました。最終的にホスティングプラットフォームにコンテナミラーリングの構築と展開アプリケーションを使用して独自のアプリケーションを開発するなど、データベース、メッセージ、などのユーザープラットフォーム基盤ソフトウェア。この時点では、インフラの運用・保守がより沈んで、開発者は、インフラストラクチャ・ソフトウェアとコンテナに焦点を当てる必要があります。
  具体的な条件によってトリガビジネスロジック機能を完了し前進し続ける、よりきめ細かい機能を実行するアプリケーションを実行するために進化し、ユーザーが関数に特定のサービス・ハンドラを開発オンデマンド関連のバックエンドサービス、プラットフォームを開催し、開発者計算。ユーザーは、リソースの消費による機能の賃金コストのみが実行されている継続的なアプリケーションのために支払う必要はありません、これはモデルのサーバレスサービスです。
ここに画像を挿入説明

サーバレスの歴史

ここに画像を挿入説明
始まり[始まり]
  ケンのIron.ioは、ソフトウェアの未来を作ったクラウドインフラストラクチャ・サービス・プロバイダーの副社長は、2012年に、最初に提案されているサーバレスのコンセプト、以下は、オリジナルの抜粋です。

Even with the rise of cloud computing, the world still revolves around servers. 
That won’t last, though. Cloud apps are moving into a serverless world, and 
that will bring big implications for the creation and distribution of software 
and applications.

[ひな鳥は]
  ラムダ製品の発売のAWS、サーバレスは、正式にクラウドコンピューティングのステージにかかりました

[emergeの]
  多くのメーカーがLAASとのPaaS入場を持っています

【未来已来】
  随着容器技术,IoT,5G,区块链等技术的快速发展, 技术上对去中心化,轻量虚拟化,细粒度计算等技术需求愈发强烈,而Serverless必将借势迅速发展。

业界产品

架构

  如上文的描述,Serverless 架构由两部分组成,即 Faas 和 BaaS。

Faas

  FaaS(Function-as-a-Service)即为函数运行平台,用户无需搭建庞大的服务系统,只需要上传自己的逻辑函数如一些定时任务、数据处理任务等到云函数平台,配置执行条件触发器、路由等等,完成基础函数的注册。

BaaS

  BaaS(Backend-as-a-Service)包含了后端服务组件,它是基于 API 的第三方服务,用于实现应用程序中的核心功能,包含常用的数据库、对象存储、消息队列、日志服务等等。
ここに画像を挿入説明

Baas和Paas的区别

  PaaS需要参与应用的生命周期管理,BaaS则仅仅提供应用依赖的第三方服务。典型的PaaS平台需要提供手段让开发者部署和配置应用,例如自动将应用部署到Tomcat容器中,并管理应用的生命周期。BaaS不包含这些内容,BaaS只以API的方式提供应用依赖的后端服务,例如数据库和对象存储。BaaS可以是公共云服务商提供的,也可以是第三方厂商提供的。其次从功能上讲,BaaS可以看作PaaS的一个子集,即提供第三方依赖组件的部分。
  BaaS服务还允许我们依赖其他人已经实现的应用逻辑。对于这点,认证就是一个很好的例子。很多应用都要自己编写实现注册、登录、密码管理等逻辑的代码,而对于不同的应用这些代码往往大同小异。完全可以把这些重复性的工作提取出来,再做成外部服务,而这正是Auth0和Amazon Cognito等产品的目标。它们能实现全面的认证和用户管理,开发团队再也不用自己编写或者管理实现这些功能的代码。

Serverless工作机制

  Serverless 其实是通过事件驱动的,当一个任务被触发时,比如 HTTP 请求,API Gateway 接受请求、解析和认证,传递对应参数给云函数平台,平台中执行对应回调函数,配合 DB、MQ 等 BaaS 服务在特定容器中完成计算,最终将结果返回给用户。函数执行完成后,一般会被 FaaS 平台销毁,释放对应容器,等待下一个函数运行。
ここに画像を挿入説明

优缺点

  讲完 Serverless 的基本架构,我们来谈谈它的优点和缺点。

  根据 Serverless 的特性,我们可以总结出以下优点:
ここに画像を挿入説明

  同样,Serverless 是一把双刃剑,它也有一些缺陷需要我们了解,以便取长补短:

  • 云厂商强绑定 当你决定使用公有云的 Serverless产品时,它们常常会和厂商的其他云产品相绑定,如对象存储、消息等等,这意味你需要同时开通其他的服务,将导致你的应用与平台强绑定,迁移成本剧增。

  • 不适合长时间任务 云函数平台会限制函数执行时间,如阿里云 Function Compute 最大执行时长为 10
    min,如果你的任务时间超长,那么你需要拆分编排你的函数执行流程,并在一个函数执行结束时唤起另一个函数执行。这将增加编码的复杂度,而且花费上可能高于购买一个长时间运行的实例。

  • 冷启动时间 函数运行时,执行容器和环境需要一个准备的时间,尤其是第一次启动时时间可能会较长。对一个 HTTP请求来讲,可能会带来响应时延的增加,产生性能毛刺。

  • 调试与测试 由于本地环境和平台运行环境的差异性,开发者需要不断调整代码,打印日志,并提交到函数平台运行测试,会带来一些开发成本和产生一些费用。

应用场景

  结合以上的优缺点,实践中我们可以发掘 Serverless 的落地场景,目前阶段 Serverless 主要适合以下的应用场景:

  • 定时任务 通过时间触发对应的函数任务,完成开发者业务逻辑的处理。

  • 数据加工 通过事件驱动件机制,在特定的条件下触发,对系统的日志进行整合,或者对多媒体文件进行加工等等。

  • 低频请求 用户可以按照频次付费,而无需构建一个应用来应对这些必要的但是量小的请求。

  • IoT 物联网场景下,大部分是用户对设备的操控,用户对时延的容忍度较高,也是典型的事件触发且低频场景。

  • 認知計算は、このようなボットのような特定のAIのシナリオに適用されます。

エピローグ

  現時点では、国内のサーバレスの開発を支援し、サービスの一部を段階的に改善することが、まだ初期段階にあり、かつ少数の大規模なサクセスストーリー。しかし、これは、私たちはビューのフロントエンドエンジニア角に立って、技術革新に熱心防ぐ持続可能な開発サーバレスはありません、それは将来的には、フロントエンドを作ることができるのNode.jsや他の言語を使用して完全なアプリケーションを構築しやすく、ちょうど前端と後端に焦点を当てますビジネスロジック自体、およびより少ないハードウェアとソフトウェアのシステムと基本的な知識の膨大な運用・保守を懸念。エンジニアへのWebフロントエンドWebアプリケーション・エンジニアを促す、アプリケーションのビルド、FBIの時間を短縮-より大きな開発の効率化、将来はまた、より統一テクノロジー・スタック、設計仕様やデータ構造として、フロントとリアエンドのワークフローにいくつかの変更をもたらすかもしれません進化の転換。
参考記事:
https://www.zoo.team/article/serverless
https://www.jianshu.com/p/85d8bcd6ad81
https://blog.csdn.net/cc18868876837/article/details/90672971

88元記事公開 ウォンの賞賛317 ビューに35万+を

おすすめ

転載: blog.csdn.net/sunxianghuang/article/details/103146378