Serverless 落地实践

.Net Core Serverless初体验

什么是Serverless

  Serverless 是一个当今软件世界中比较新的话题。它并没有一个普遍公认的权威定义,每个人每个企业对它的解释可能都有不同,而 Serverless 正是在这种情况下不断发发展的。但是就算如此,有一些 Serverless 的特征还是被广泛认可的:

  • 服务端的主机和进程完全由供应商管理

  • 可以根据负载进行自动伸缩

  • 按照精确的使用情况来计费,就像水和电一样。(效用计算)

  引用掘金,原文地址:https://juejin.im/post/5c68fdbfe51d4539a569f259

Serverless演进

 ee7c1302509ffd99f9bebbb3c8756e33.png

  在这个发展历程中有以下几个渐进的里程碑事件:

  • 通过虚拟化技术将大型物理机虚拟成单个的VM资源。

  • 将虚拟化集群搬到云计算平台上,只做简单运维。

  • 把每一个VM按照运行空间最小化的原则切分成更细的Docker容器。

  • 基于Docker容器构建不用管理任何运行环境、仅需编写核心代码的Serverless架构。

  引用阿里云,原文地址:https://help.aliyun.com/knowledge_detail/65565.html?spm=a2c4g.11186631.2.1.4f811bbeDYGmvp

阿里云Serverless - 函数计算

  函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。

借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。

  引用阿里云,原文地址:https://help.aliyun.com/document_detail/52895.html?spm=a2c4g.11186623.6.541.23dc641aB3U3K0

编写.Net Core代码

  1. 新建一个.net core控制台程序,这里命名为AliyunServerless。

  8c8d92dbd7fdf486623d5d4b3cc8c77b.png

  2. 引用阿里云提供的函数计算组件Aliyun.Serverless.Core

Install-Package Aliyun.Serverless.Core

  2726c1ea67cf7408365eea54fe265cca.png

  3. 按照函数计算的要求编写.Net Core的类与函数,这里用两个类与函数

  a. 打印执行日志

/// <summary>/// 打印执行日志/// </summary>public class LogHandler{public void Handle(Stream input, IFcContext context){ILogger logger = context.Logger;logger.LogInformation($"Handle request: {context.RequestId}");}}

3a86cf251039720d89d0b582a4ee2b75.png

  b. 打印服务器IP

/// <summary>/// 打印服务器IP/// </summary>public class IpHandler{public void Handle(Stream input, IFcContext context){ILogger logger = context.Logger;var ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());logger.LogInformation($"Handle request: {context.RequestId}");foreach (var ipAddress in ipHostInfo.AddressList){logger.LogInformation($"IP Address:{ipAddress}");}}}

  说明:

  b237b336e0fc19c5c3ee71dec1d41737.png

   详情可参考原文地址:https://help.aliyun.com/document_detail/112379.html?spm=a2c4g.11174283.6.567.206852120XSx37

  4. 发布程序并打包成zip

dotnet publish -c Release

   21a6c694ee6132dade17fcac1b194945.png

配置阿里云函数计算

  1. 费用说明及免费额度

  4c3caabd09e3cab096b5a71b37954544.png

  2. 选择函数执行的地区

  参考入口地址:https://fc.console.aliyun.com/fc/overview/cn-shenzhen

  2ee5e36b6add71aaf91b9d72c70ece49.png

  3. 创建服务及函数

  a. 创建函数

  545032013fc7be0aec0637d80540b356.png

  b. 选择“事件函数”,然后“下一步”

  17981da03366f5ff31d11da50fd0320e.png

  c. 配置函数信息

  fc602c6300dbf20bcde8902fa2d277f9.png

  其中:

  “所在服务”是分组,根据需要填写即可。

  “函数名称”是名称,根据需要填写即可。

  “运行环境”选择dotnetcore2.1。

  “函数入口”要按规定填写,模板是{程序集}::{命名空间}.{类名}::{函数名},这里是:AliyunServerless::AliyunServerless.LogHandler::Handle

  “函数执行内存”,函数执行需要的内存。

  “超时时间”,函数执行不能超过设置的时间。

  d. 执行函数

  点击“执行”,可以看到执行摘要(执行时间、使用内存、执行状态等)及执行结果:

  f3933f52122c868641ee6740a065abef.png

  e. 创建触发器

  2336087fed0ecc90f62a87b29d0fc27a.png

  这里用的是“定时触发器”,支持Cron表达式,调度最高频率为1分钟,暂不支持秒级调度;除了“定时触发器”,还有以下的触发器类型:

  0a37dd00b2d30b31fec0717c15e4ef75.png

   有兴趣的朋友可以自行研究。

   配完触发器以后,函数就会被定时触发,由于这里是打印日志,需要配置日志才能看到,本文没配置日志,就不演示触发效果了。

扩展测试

  按照创建函数的步骤,创建“打印服务器IP”函数,执行并进行跟踪,结果如下:

  1. 多次执行(5次不同的RequestId),服务器IP没变(都为21.0.3.3),说明分配到同一台服务器上

  e1ec4a514ae8587b228948fd995af25e.png

  3af11055bf0a2766cc5779201d6f9630.png

  52dbf7afedff34be524c5716b86935f1.png

  4355c2e08f06bb0233a15ff76246cc63.png

  07bdf8c82e63a3e0ab9ebb256abb3d9b.png

  2. 重新上传程序包,服务器IP会变,但同一个软件包服务器IP不变

  a. 第一次重新上传:

  e57833589907b2b3332bc99963affaa1.png

  fc12ffe4c4a05202e0d99ebe70377738.png

  b. 第二次重新上传:

  55519d5ae62a5ce9548488000ade8dac.png

  08864c33f16714c58d1af61bd12a345c.png

  3. 我选择的执行地区是“华南1(深圳)”,但是服务器IP是美国IP;因为无服务器信息,该结论仅供参考

  2f7f9ee5da5b29e1c9477e09c3569321.png

  3e3c66f0825c10093606bf3ce86acd76.png

  8ddd9dd439e7d9dd4bace307947aafed.png

  4. 调用统计会非实时(正常现象),大部分业务月免费额度应该足够使用

  8054fd8005ab6c833b28e75241bad8e2.png

源码地址

  https://github.com/ErikXu/AliyunServerless

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KOFLive Beta Daily-Scrum 9

组 员今天的工作进 度问 题明天的计划田 飞Work Item 38911&#xff1a;角色四照片拍摄 Work Item 38897:键盘输入人物四的图片已经导入&#xff0c;键盘三个连键检测完成还剩最后一个连键的检测Work Item 38911:拍摄人物角色五付 浩Work Item 37741:游戏主模块 Work Item 3889…

Dapr + .NET 实战(十-终篇)K8S运行Dapr

工作原理为了实现在k8s上安装Dapr&#xff0c;Dapr需要部署dapr-sidecar-injector、dapr-operator、dapr-placement和dapr-sentry服务。 dapr-operator: 管理组件(state stores, pub/subs, etc.)dapr-sidecar-injector: 将 Dapr 注入 annotated pods&#xff0c;并添加环境变量…

mvc control 请求两次问题

今天在做项目时&#xff0c;突然发现一个mvc 的control中action被执行了两次&#xff0c;最终发现是由于favicon.ico导致的。问题代码&#xff1a; <link rel"shortcut icon" href"Images/wangyi.ico" type"image/x-icon" />,最终改成了 &…

为什么老师批改完试卷,分数下要画两条横线?今天终于知道了!

全世界只有3.14 % 的人关注了爆炸吧知识总有考试分数下画两条横线的习惯&#xff0c;原来是这样形成的&#xff01;为什么老师改卷之后会在分数下画两条横线呢&#xff1f;你要去问老师&#xff1f;别问了&#xff0c;可能连老师都不知道……来看看这位当了老师的网友怎么说的&…

Windows 11 小技巧- WSL开启Linux桌面应用

WSL 经过⼏年的发展&#xff0c;已经是⼀个Windows下不少开发⼈员做云原⽣应⽤的必备环境&#xff0c;你可以在上⾯写各种语⾔&#xff0c;各种后端框架&#xff0c;也可以完成容器和k8s的部署&#xff0c;在Windows11下更进⼀步&#xff0c;直接⽀持Linux桌⾯应⽤&#xff0c;…

lcd屏幕抖动_电视屏幕面板大科普!买电视之前必看!

BOE知识酷 ?显示技术|显示资讯| PPT|知识管理第856篇推文导读&#xff1a;经常看到什么LCD、LED、OLED、ULED、QLED、SLED、GLED……之类的名词&#xff0c;花里胡哨。别看那么多名词&#xff0c;但从显示技术角度看&#xff0c;现在市场上主流的电视机其实就两种&#xff1a;…

一击即中的表白方式,学会了吗?

1 自己吃自己的&#xff0c;敢抢我吃的&#xff0c;吃我的小拳拳&#xff01;2 承受了太多哈哈哈3 狗狗在你不知道的时候会默默守护你4 眼前的方不是方。。5 一击即中的表白方式&#xff0c;学会了吗&#xff1f;&#xff1f; 图自甜星球日报社6 哦…了解了图自迷影心生 7 当90…

mysql2012用户名_SQL Server 登录名、服务器角色、用户名和数据库角色 --- 解释

1.一个数据库用户可以对应多个架构(架构是表容器)。架构里面包含的是数据库表。2.一个数据库角色有可能涉及多个架构。数据库角色对应的是权限。3.一个用户对应一个数据库角色。4.登录名与数据库用户在服务器级别是一对多的&#xff1b;在数据库级别是一对一的。服务器登录名&a…

Windows 11 正式版 ISO 镜像下载大全

Windows 11 ISO 镜像规格1.Windows 11 中文版文件大小&#xff1a;5.13 GB系统类型&#xff1a;64 位操作系统版本号&#xff1a;Windows 11 21H2发布日期&#xff1a;2021 年 10 月 5 日MD5: 68FB0CAD069CF82A9BA0996A6D3D112BSHA1: 9F602662FFAB0DF3B3A66FC6A42849BFFD3315A7…

于明:APU能否接力取代迟暮的X86?

图&#xff1a;AMD Fusion APU中国发布会 有作用力必然有反作用力&#xff0c;有光亮也必然有黑暗&#xff0c;有诚实也必然有欺骗&#xff0c;任何事物都具有两面性&#xff0c;而PC的核心处理器也不例外&#xff0c;存在着“真融合”与“假融合”之分。 就拿AMD(NYSE: AMD)在…

SQL Azure Reporting CTP

http://blogs.msdn.com/b/azchina/archive/2011/02/18/sql-azure-reporting-limited-ctp-arrived.a概念SQL Azure Reporting 把云端报表作为服务来提供&#xff0c;构建于SQL Server Reporting Services 和 SQL Azure 技术之上。诸如SQL Azure Reporting此类云端报表服务具有许…

Windows 11 小技巧- winget安装和维护应用程序

安装好Windows 11后&#xff0c;你可能需要为系统安装常⽤的⼯具&#xff0c;例如安装Visual Studio Code&#xff0c;Google Chrome &#xff0c;VLC Player 等应⽤。以往你可能需要⾃⼰去各大网站上安装。如果你曾经使⽤Linux, 你可以通过命令⾏⽅式用apt安装和维护很多的…

输出毫秒_自学单片机第十三篇上:单点输出

关注一下&#xff0c;更多精彩等着你&#xff01;打开之前的工程&#xff0c;当然新建也可以&#xff0c;具体步骤看之前的文章就行。因为是学习&#xff0c;所以也用不着总是新建工程&#xff0c;起名起一大堆&#xff0c;接下来&#xff0c;除非要用两个执行文件&#xff0c;…

Hadoop分布式文件系统:架构和设计要点

一、前提和设计目标 1、硬件错误是常态&#xff0c;而非异常情况&#xff0c;HDFS可能是有成百上千的server组成&#xff0c;任何一个组件都有可能一直失效&#xff0c;因此错误检测和快速、自动的恢复是HDFS的核心架构目标。 2、跑在HDFS上的应用与一般的应用不同&#xff0c;…

22张令人叹为观止的照片,你所未知的另一面

全世界只有3.14 % 的人关注了爆炸吧知识见惯了身边的平淡和琐碎&#xff0c;总要开阔眼界&#xff0c;长长见识。走&#xff0c;带你看震惊世界的22张照片&#xff0c;保准惊呆你&#xff01;1、你知道他们是如何安装那些巨大的电线塔的了吧&#xff1a;2、人体分离魔术&#x…

Windows 11 小技巧- WSL运行本地GPU算力

WSL 已经被很多开发⼈员⽤于云原⽣开发&#xff0c;但如果你像我每天要完成⼈⼯智能应⽤的 发&#xff0c;会⼀直希望能加上GPU算⼒&#xff0c;这样就不需要再去安装⼀台Linux的机器去做⼈⼯智能的⼯作了(毕竟很多的⼈⼯智能场景都是在Linux下完成的)。这次Windows 11 不仅⽀…

私房钱就藏在老婆眼皮底下

1 建议出一个藏私房钱的教程▼2 以前还是打飞的就这个价格&#xff0c;最多是个飞公交▼3 众所周知狗是不会剪视频的&#xff0c;所以是真的▼4 老实讲我小时候也幻想过这个操作▼5 这可真是一个悲伤的故事▼6 这可真是令人羡慕的发量▼7 退一步越想越气忍一时越想越亏▼…

19.Silverlight调用webservice上传多个文件

Silverlight不支持读写服务器端的硬盘&#xff0c;可是很多时候用户需要在Silverlight客户端往服务器端上传文件&#xff0c;那么本节将讲述 Silverlight中最简单的上传文件的方式&#xff1a;在Silverlight客户端将文件序列化为Byte[]字符组&#xff0c;然后服务器端使用 webS…

原创:PHP内核研究:HASH表和变量

PHP HASH表 在PHP中,所有的数据 无论变量,常量,类,属性 都用Hash表来实现. 先要说说 HASH表 [c]typedef struct bucket { ulong h; /* Used for numeric indexing */ uint nKeyLength; //key长度 void *p…

Windows 11 小技巧- 安装

Windows 11 依赖于TPM 2.0&#xff0c;什么是TPM呢?TPM技术旨在提供基于硬件的与安全性相关的功能。TPM芯片是⼀个安全的加密处理器&#xff0c;有助于执⾏⽣成、存储和限制加密密钥的使用等操作。TPM芯片包含多重物理安全机制&#xff0c;具有防篡改功能&#xff0c;恶意软件…