网站开发 如何高效、极简构造无服务器Web应用(组图) aspnet开发酒店网站 大约多少钱
2022-10-01
正如它在过去颠覆诺基亚一样,它的出现,也带来了一种全新的、颠覆性的云开发架构模式。在它出现之前,开发人员无法想象能够在几分钟内快速在线部署 Web 应用程序。近日,腾云网络技术讲座特邀资深技术专家孙华分享《如何高效、最小化地构建 Web应用》。孙华从 .
时代应用发展
2012年,铁云网首先提出了这一概念。2014年,腾云网络的发布,首次从概念走向落地,也标志着时代的开始。孙华认为,作为一种计算服务,主要有以下四个特点。
的出现,为应用程序的开发和部署提供了极简模式。目前有几十万用户,用户的通话高峰通常在每秒百万以上。
可口可乐腾云网是用户之一。疫情期间,可口可乐在短短一周内迅速将倒酒应用原型上线,实现了手机与饮料机的毫秒级通信,从构思到交付的时间缩短了50%。
它是一家在线教育服务提供商。疫情期间,在线学习访问量增长了2-3倍。通过将服务迁移到服务器,P95 的性能得到了提高(降低了近 50%),并且通过提高利用率将成本降低了四分之一。
无服务器 Web 应用程序用例
该架构常见的应用场景包括数据处理、IT运维自动化等,很多用户也会将其应用到前端的web应用中,包括.js、.js等应用。它可以将对应的网页渲染到客户端,也支持提供json来分离前后端的REST API。静态的,Vue前端通过HTTP请求调用后端API网站开发,获取数据,展示给客户。此外,移动后端应用程序经常使用开发小程序的后端。
无服务器 Web 应用程序的特点是什么?首先,在开发Web应用程序最常见的方式中,Web应用程序进程运行在服务器中。此时,Web 应用程序将监听一个端口。此外,每个请求都由一个单独的计算实例处理,无论 CPU 或内存如何,它都专用于服务该请求。这种方式的好处是可以隔离每个请求,不会有一个请求崩溃,影响其他用户的并发需求。
其次,Web 应用程序在其中运行,并且需要是无状态的应用程序。由于请求是随机分布到多个计算实例上的,每个计算实例在本地缓存数据,下一个请求可能不会分配到同一个实例。因此网站优化,如果您需要共享状态,可以将其存储在 or 数据库中。
第三,在计算环境中,每次调用的请求处理完毕后,计算环境都会被冻结网站建设,直到下一个请求。在这段时间内,没有CPU资源,后台任务无法运行,因此后台进程无法在其中运行。
最常见的基于前后端分离的Web应用架构通常将前端SPEA应用放在S3上进行HTTP等,前端通过CDN加速。用户下载前端后,前端会通过API调用后端的动态数据。API 提供相应的 HTTP 入口并触发该函数以运行 Web 应用程序。Web 应用程序可以访问数据库或任何后端。
新:网址
腾云网络经常收到客户的反馈。客户希望学习在 Web 上运行 Web 应用程序或在其上运行单个应用程序。URL对应的所有业务逻辑都在里面处理,只需要暴露一个HTTP入口,几乎没有额外的学习成本。上个月,腾云网络推出了内置的 URLs 端口,可以通过在函数中配置 URL 来提供。此功能目前仅可用,并将在不久的将来在中国推出。URL 指向的最新版本或别名。别名可以指向1或2个版本,所以可以通过指向来进行灰度发布或者蓝绿部署。
URL 和 API 有什么区别?
首先,URL 是提供 HTTP 条目的一种非常简单的内置方式。它是在公共网络上公开的 HTTP 条目。入口方式是yes,认证方式可以通过IAM权限控制,也可以在公网上实现。URL 不提供支持,但提供 CORS 支持,因此可以进行跨站请求,例如从浏览器,URL 会根据配置主动返回相应的结果,不会违反功能。但是,URLs只有一些简单的功能,并没有办法实现一些高级功能,例如使用、基于WAF的集成和内部配置,目前还不能实现URLs。因此,如果要使用WAF、、、等,请使用API的Rest API。
其次,URL 的超时时间与函数的超时时间相同。例如,如果函数运行时间最长为 15 分钟,则 URLs 请求可以运行 15 分钟,而 Rest API 和 HTTP API 的超时时间仅为 29-30s。在大小上,URL 与 6MB 相同。
第三,使用 URL 没有额外费用,但使用 Rest API 和 HTTP API 有相应的费用。
许多用户要求 Web 应用程序具有相应的自定义域名才能访问网站。此时,您可以在前面通过CDN的方式添加自定义域名,例如添加自己的域名,同时结合WAF保护相应的集成应用。因为 URL 只提供入口,所以 CDN 回源时,会回源站点。Host无法返回源站,无法获取用户实际访问的自定义域名。如果域名是固定的,可以通过应用中的配置来学习,但是如果域名不固定,则需要根据二级域名来判断是哪个租户在做相应的处理。在这种情况下,您可以利用该功能。域名可以在用户请求端获取,添加到另一个,然后发送回源站。在源站的应用中,可以通过这个获取用户访问的真实域名。
如果基于 URL 部署单功能 Web 应用,静态资源通过代理放在 S3 中进行动态请求,结构统一如下,不需要 API。
新工具:
URL 为您提供了一种非常简单的获取 HTTP 入口的方法,但开发方法是基于事件驱动的方法网站开发,将事件从事件源转换为 json 对象。对于熟悉 Web 应用开发的开发者,会有额外的学习成本。一般的做法是在应用中写一个函数,进行一层转换,将json转换成web应用需要的格式,不过这种方法还可以进一步简化。.
腾云网络推出的新工具的作用是帮助用户完成转化。Web 应用程序可以在 Web 应用程序上运行而无需修改代码。获取对应的json对象,转换成HTTP请求,发送给Web应用。Web应用程序处理完后,通过HTTP返回,并转换成需要的json格式。这样,无论使用什么语言或 Web 框架,都可以通过这种方式开发 Web 应用程序或 HTTP API,而无需修改代码或添加任何依赖项。,您可以使用熟悉的方法在本地开发和调试 API。
此外,API 的 Rest API、HTTP API 都支持作为 HTTP 的事件源。无论是哪种格式,都可以进行相应的解析和转换。同时,由于 URL 的事件格式与 API HTTP API V2 的事件格式完全相同,因此无需任何修改即可访问 URL。用户结合 URL 并可以在其上运行 Web 应用程序或 HTTP API。同时,由于web应用可能会返回图片等数据,因为数据不能直接存储在json中,所以需要做数据,会检测返回的数据是否为数据,并自动完成转码。
同时支持容器镜像形式的打包功能,也支持zip形式的打包功能。当用户使用容器镜像打包功能时,生成的容器镜像既可以运行在互联网上,也可以运行在容器环境中,甚至可以运行在本地计算机上。因此,Web 应用程序可以很容易地运行在不同的计算平台上,并且可以在不同平台之间平滑迁移而无需修改。
在实践中构建无服务器 Web 应用程序
Web 应用程序是使用 URL 构建的,并且可以通过熟悉的 API 轻松访问。但是如果使用它,是否可以在其上运行现有的 Web 应用程序?
腾云网试过了。是电商场景,为什么要在上面跑呢?首先,在网站上,100个访问量最大的网站中,份额第一;其次,是基于PHP开发的,在web应用网站建设中使用了PHP,大约70-80%的网站都是基于PHP开发的,用途非常广泛;第三,每次请求进入都需要重新初始化PHP语言,与无状态计算环境非常兼容。
腾云网络团队采用以下 架构运行。
前端架构采用并做CDN,使用运行中的应用,使用URL代替API作为入口,通过S3存储静态资源。然后,通过函数中的镜像方式,加载PHP、PHP和PHP FPM运行的进程管理服务,并用它打包代码。后端使用相应的数据库,例如最新的V2数据库来缓存数据,并使用EFS共享系统保存用户上传的文件。通过这个架构,腾云网络实现了在基础上的运营。
在其上运行的网站的实际性能如何?如果你想在你的网站上取得更好的性能,你可以将静态内容制作成静态内容,放到前端的CDN网站上。如果您正在运营电子商务网站,用户会浏览产品、将产品添加到购物车、提交订单和付款。这些是动态请求,需要返回到后端 PHP 应用程序。对于静态应用,可以在3分钟内实现从无请求到最高峰的性能,1小时内每分钟可以处理多个订单。在成本方面,每处理一个订单需要调用 10 次 API,即处理 100 万个订单需要调用 1000 万次函数。据统计,1000 万次函数调用的成本仅为 300 美元。不仅,
分享最后,孙华演示了网站运行的实际表现并提供了相关信息。有兴趣的开发者可以扫描下方二维码获取。