《资源成本双优化!看 Serverless 颠覆编程教育的创新实践》

简介: 说起 Serverless 这个词,我想大家应该都不陌生,那么 Serverless 这个词到底是什么意思?Serverless 到底能解决什么问题?可能很多朋友还没有深刻的体会和体感,这篇文章我就和大家一起聊聊 Serverless。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UEifITGq-1608690353684)(https://ucc.alicdn.com/pic/developer-ecology/5542a076d32c4e6ba76ea5dbced2de30.jpg “1.jpg”)]
作者 | 计缘
来源 | Serverless 公众号

说起 Serverless 这个词,我想大家应该都不陌生,那么 Serverless 这个词到底是什么意思?Serverless 到底能解决什么问题?可能很多朋友还没有深刻的体会和体感,这篇文章我就和大家一起聊聊 Serverless。

什么是 Serverless

我们先将 Serverless 这个词拆开来看。Server,大家都知道是服务器的意思,说明 Serverless 解决的问题范围在服务端。Less,大家肯定也知道它的意思是较少的。那么 Serverless 连起来,再稍加修饰,那就是较少的关心服务器的意思。

Serverfull 时代

我们都知道,在研发侧都会有研发人员和运维人员两个角色,要开发一个新系统的时候,研发人员根据产品经理的PRD开始写代码开发功能,当功能开发、测试完之后,要发布到服务器。这个时候开始由运维人员规划服务器规格、服务器数量、每个服务部署的节点数量、服务器的扩缩容策略和机制、发布服务过程、服务优雅上下线机制等等。这种模式是研发和运维隔离,服务端运维都由专门的运维人员处理,而且很多时候是靠纯人力处理,也就是 Serverfull 时代。

DevOps 时代

互联网公司里最辛苦的是谁?我相信大多数都是运维同学。白天做各种网络规划、环境规划、数据库规划等等,晚上熬夜发布新版本,做上线保障,而且很多事情是重复性的工作。然后慢慢就有了赋能研发这样的声音,运维同学帮助研发同学做一套运维控制台,可以让研发同学在运维控制台上自行发布服务、查看日志、查询数据。这样一来,运维同学主要维护这套运维控制台系统,并且不断完善功能,轻松了不少。这就是研发兼运维的 DevOps 时代。

Serverless 时代

渐渐的,研发同学和运维同学的关注点都在运维控制台了,运维控制台的功能越来越强大,比如根据运维侧的需求增加了自动弹性扩缩、性能监控的功能,根据研发侧的需求增加了自动化发布的流水线功能。因为有了这套系统,代码质量检测、单元测试、打包编译、部署、集成测试、灰度发布、弹性扩缩、性能监控、应用防护这一系列服务端的工作基本上不需要人工参与处理了。这就是 NoOps,Serverless 时代。

Serverless在编程教育中的应用

2020 年注定是不平凡的一年,疫情期间,多少家企业如割韭菜般倒下,又有多少家企业如雨后春笋般茁壮成长,比如在线教育行业。

没错,在线教育行业是这次疫情的最大受益者,在在线教育在这个行业里,有一个细分市场是在线编程教育,尤其是少儿编程教育和面向非专业人士的编程教育,比如编程猫、斑马 AI、小象学院等。这些企业的在线编程系统都有一些共同的特点和诉求:

屏幕一侧写代码,执行代码,另一侧显示运行结果。
根据题目编写的代码都是代码块,每道题的代码量不会很大。
运行代码的速度要快。
支持多种编程语言。
能支撑不可预计的流量洪峰冲击。

例如小象学院的编程课界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2sbZIEfL-1608690353690)(https://ucc.alicdn.com/pic/developer-ecology/25ae8804c57041ada389ab482aee9e67.png “2.png”)]

结合上述这些特点和诉求,不难看出,构建这样一套在线编程系统的核心在于有一个支持多种编程语言的、健壮高可用的代码运行环境。

那么我们先来看看传统的实现架构:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVRNRZ3n-1608690353691)(https://ucc.alicdn.com/pic/developer-ecology/3a7b248dbc3c41f48e899e75f1ce032a.png “3.png”)]

从 High Level 的架构来看,前端只需要将代码片段和编程语言的标识传给 Server 端即可,然后等待响应展示结果。所以整个 Server 端要负责对不同语言的代码进行分类、预处理然后传给不同编程语言的 Runtime。这种架构有以下几个比较核心的问题。

工作量大,灵活性差

首先是研发和运维工作量的问题,当市场有新的需求,或者洞察到新业务模式时需要增加编程语言,此时研发侧需要增加编程代码分类和预处理的逻辑,另外需要构建对应编程语言的 Runtime。在运维侧需要规划支撑新语言的服务器规格以及数量,还有整体的 CICD 流程等。所以支持新的编程语言这个需求要落地,需要研发、运维花费不少的时间来实现,再加上黑/白盒测试和 CICD 流程测试的时间,对市场需求的支撑不能快速的响应,灵活性相对较差。

高可用自己兜底

其次整个在线编程系统的稳定性是重中之重。所以所有 Server 端服务的高可用架构都需要自己搭建,用以保证流量高峰场景和稳态场景下的系统稳定。高可用一方面是代码逻辑编写的是否优雅和完善,另一方面是部署服务的集群,无论是 ECS 集群还是 K8s 集群,都需要研发和运维同学一起规划,那么对于对编程语言进行分类和预处理的服务来讲,尚能给定一个节点数,但是对于不同语言的 Runtime 服务来讲,市场需求随时会变,所以不好具体衡量每个服务的节点数。另外很重要的一点是所以服务的扩容,缩容机制都需要运维同学来实时手动操作,即便是通过脚本实现自动化,那么 ECS 弹起的速度也是远达不到业务预期的。

成本控制粒度粗

再次是整个 IaaS 资源的成本控制,我们都知道这种在线教育是有明显的流量潮汐的,比如上午 10 点到 12 点,下午 3 点到 5 点,晚上 8 点到 10 点这几个时段是流量比较大的时候,其他时间端流量比较小,而且夜晚更是没什么流量。所以在这种情况下,传统的部署架构无法做到IaaS资源和流量的贴合。举个例子,加入为了应对流量高峰时期,需要 20 台 ECS 搭建集群来承载流量冲击,此时每台 ECS 的资源使用率可能在 70% 以上,利用率较高,但是在流量小的时候和夜晚,每台 ECS 的资源使用率可能就是百分之十几甚至更低,这就是一种资源浪费。

Serverless 架构

那么我们来看看如何使用 Serverless 架构来实现同样的功能,并且解决上述几个问题。在选择 Serverless 产品时,在国内自然而然优先想到的就是阿里云的产品。阿里云有两款 Serverless 架构的产品 Serverless 应用引擎和函数计算,这里我们使用函数计算来实现编程教育的场景。

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

这里不对 FC 的含义做过多赘述,只举一个例子。FC 中有两个概念,一个是服务,一个是函数。一个服务包含多个函数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tg8xfzcb-1608690353694)(https://ucc.alicdn.com/pic/developer-ecology/3d94834a9b3644aa92a91b9dc1dbb149.png “4.png”)]

这里拿 Java 微服务架构来对应,可以理解为,FC 中的服务是 Java 中的一个类,FC 中的函数是 Java 类中的一个方法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yY0C75wE-1608690353697)(https://ucc.alicdn.com/pic/developer-ecology/83cc78aa74144b83bcc983aa66f63a75.png “5.png”)]

但是 Java 类中的方法固然只能是 Java 代码,而 FC 中的函数可以设置不同语言的 Runtime 来运行不同的编程语言:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ecS9QB2W-1608690353698)(https://ucc.alicdn.com/pic/developer-ecology/cd390be0b0a3459ab2f03840b4c1f441.png “6.png”)]

这个结构理解清楚之后,我们来看看如何调用 FC 的函数,这里会引出一个触发器的概念。我们最常使用的 HTTP 请求协议其实就是一种类型的触发器,在 FC 里称为 HTTP 触发器,除了 HTTP 触发器以外,还提供了 OSS(对象存储)触发器、SLS(日志服务)触发器、定时触发器、MNS 触发器、CDN 触发器等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JBI8tgHp-1608690353699)(https://ucc.alicdn.com/pic/developer-ecology/ae6561f33724409dad74eecf0c771865.png “7.png”)]

从上图可以大概理解,我们可以通过多种途径调用 FC 中的函数。举例两个场景,比如每当我在指定的 OSS Bucket 的某个目录下上传一张图片后,就可以触发 FC 中的函数,函数的逻辑是将刚刚上传的图片下载下来,然后对图片做处理,然后再上传回 OSS。再比如向 MNS 的某个队列发送一条消息,然后触发 FC 中的函数来处理针对这条消息的逻辑。

最后我们再来看看 FC 的高可用。每一个函数在运行代码时底层肯定还是IaaS资源,但我们只需要给每个函数设置运行代码时需要的内存数即可,最小 128M,最大 3G,对使用者而言,不需要考虑多少核数,也不需要知道代码运行在什么样的服务器上,不需要关心启动了多少个函数实例,也不需要关心弹性扩缩的问题等,这些都由 FC 来处理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zGzuN961-1608690353700)(https://ucc.alicdn.com/pic/developer-ecology/357657e3a37f494ba2a465858a415914.png “8.png”)]

从上图可以看到,高可用有两种策略:

给函数设置并发实例数,假如设置为 3,那么有三个请求进来时,该函数只启一个实例,但是会启三个线程来运行逻辑。

线程数达到上限后,会再拉起一个函数实例。

大家看到这里,可能已经大概对基于 FC 实现在线编程教育系统的架构有了一个大概的轮廓。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgAy5rL8-1608690353701)(https://ucc.alicdn.com/pic/developer-ecology/4f3da4c13dbf4a09ac942c1ba24999b1.png “9.png”)]

上图是基于 FC 实现的在线编程教育系统的架构图,在这个架构下来看看上述那三个核心问题怎么解:

  • 工作量和灵活性:我们只需要关注在如何执行代码的业务逻辑上,如果要加新语言,只需要创建一个对应语言 Runtime 的 FC 函数即可。
  • 高可用:多线程运行业务逻辑和多实例运行业务逻辑两层高可用保障,并且函数实例的扩缩完全都是 FC 自动处理,不需要研发和运维同学做任何配置。
  • 成本优化:当没有请求的时候,函数实例是不会被拉起的,此时也不会计费,所以在流量低谷期或者夜间时,整个 FC 的成本消耗是非常低的。可以做到函数实例个数、计费粒度和流量完美的贴合。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HHk0QFFj-1608690353702)(https://ucc.alicdn.com/pic/developer-ecology/62caa0bff9e34693a88c09a355a7cea6.png “10.png”)]

Python编程语言示例

下面以运行 Python 代码为例来看看如何用 FC 实现 Python 在线编程 Demo。

创建服务和函数

打开函数计算(FC)控制台,选择对应的 Region,选择左侧服务/函数,然后新建服务:https://fc.console.aliyun.com/fc/overview/cn-hangzhou

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9yRoZASC-1608690353703)(https://ucc.alicdn.com/pic/developer-ecology/55ebac4d46c44e8b8240e9a4074a03e6.png “11.png”)]

输出服务名称,创建服务。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJv1aayU-1608690353704)(https://ucc.alicdn.com/pic/developer-ecology/69c4ce76d2e7452399b4578b065b912e.png “12.png”)]

进入新创建的服务,然后创建函数,选择 HTTP 函数,即可配置 HTTP 触发器的函数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z4oORzZD-1608690353705)(https://ucc.alicdn.com/pic/developer-ecology/5382a56b17fa4921bfc24a206334bbb5.png “13.png”)]

设置函数的各个参数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHVbU20F-1608690353706)(https://ucc.alicdn.com/pic/developer-ecology/50df79be14c545f7861c77bc13baf02a.png “14.png”)]

几个需要的注意的参数这里做以说明:

  • 运行环境:这个很好理解,这里选择P ython3
  • 函数实例类型:这里有弹性实例和性能实例两种,前者最大支持2C3G规格的实例,后者支持更大的规格,最大到8C16G。
  • 函数入口:详细参见文档 - HTTP 触发器认证方式:anonymous 为不需要鉴权,function 是需要鉴权的。https://help.aliyun.com/document_detail/74756.html?spm=a2c4g.11186623.6.572.195359cdselnzR

代码解析

函数创建好,进入函数,可以看到概述、代码执行、触发器、日志查询等页签,我们先看触发器,会看到这个函数自动创建了一个 HTTP 触发器,有调用该函数对应的 HTTP 路径:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0E6JEyi-1608690353707)(https://ucc.alicdn.com/pic/developer-ecology/d53fb2d775df4715b41cd0b2763d4528.png “15.png”)]

然后我们选择代码执行,直接在线写入我们的代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-piZUvgqB-1608690353708)(https://ucc.alicdn.com/pic/developer-ecology/a968060d6d5d409ba75c679cbca6623b.png “16.png”)]

具体代码如下:

-- coding: utf-8 --
import logging
import urllib.parse
import time
import subprocess
def handler(environ, start_response):
context = environ['fc.context']
request_uri = environ['fc.request_uri']
for k, v in environ.items():
if k.startswith('HTTP_'):
pass
try:
request_body_size = int(environ.get('CONTENT_LENGTH', 0))
except (ValueError):
request_body_size = 0
# 获取用户传入的code
request_body = environ['wsgi.input'].read(request_body_size)
codeStr = urllib.parse.unquote(request_body.decode("GBK"))
# 因为body里的对象里有code和input两个属性,这里分别获取用户code和用户输入
codeArr = codeStr.split('&')
code = codeArr[0][5:]
inputStr = codeArr[1][6:]
# 将用户code保存为py文件,放/tmp目录下,以时间戳为文件名
fileName = '/tmp/' + str(int(time.time())) + '.py'
f = open(fileName, "w")
# 这里预置引入了time库
f.write('import time rn')
f = open(fileName, "a")
f.write(code)
f.close()
# 创建子进程,执行刚才保存的用户code py文件
p = subprocess.Popen("python " + fileName, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, encoding='utf-8')
# 通过标准输入传入用户的input输入
if inputStr != '' :
p.stdin.write(inputStr + "n")
p.stdin.flush()
# 通过标准输出获取代码执行结果
r = p.stdout.read()
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return [r.encode('UTF-8')]

整个代码思路如下:

  • 从前端传入代码片段,格式是字符串。
  • 在 FC 函数中获取到传入的代码字符串,截取 code 内容和 input 的内容。因为这里简单实现了 Python 中 input 交互的能力。
  • 将代码保存为一个 Python 文件,以时间戳为文件名,保存在 FC 函数的 /tmp 目录下。(每个 FC 函数都有独立的 /tmp 目录,可以存放临时文件)
  • 然后在文件中追加了引入 time 库的代码,应对 sleep 这种交互场景。
  • 通过 subprocess 创建子进程,以 Shell 的方式通过 Python 命令执行保存在 /tmp 目录下的 Python 文件。如果有用户输入的信息,则通过标准输入输出写入子进程。
  • 最后读取执行结果返回给前端。

前端代码

前端我使用 VUE 写了简单的页面,这里解析两个简单的方法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgyjIjjh-1608690353709)(https://ucc.alicdn.com/pic/developer-ecology/d8d893a6ead54b5bbf42f3a62f151b35.png “17.png”)]

页面加载时初始化 HTTP 请求对象,调用的 HTTP 路径就是方才函数的 HTTP 触发器的路径。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lMZIVP11-1608690353709)(https://ucc.alicdn.com/pic/developer-ecology/67664d1db2eb49d28e7cb62ef5f821f2.png “18.png”)]

这个方法就是调用 FC 中的 PythonRuntime 函数,将前端页面的代码片段传给该函数。这里处理 input 交互的思路是,扫描整个代码片段,以包含 input 代码为标识将整个代码段分成多段。没有包含 input 代码的直接送给 FC 函数执行,包含 input 代码的,请求用户的输入,然后代码片段带着用户输入的信息一起送给 FC 函数执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UUafFSNW-1608690353710)(https://ucc.alicdn.com/pic/developer-ecology/56c59e1f7fba4ad5b64ef786ab40ea12.png “19.png”)]

演示如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GDO0oob1-1608690353711)(https://ucc.alicdn.com/pic/developer-ecology/2ff6b2f042ae4b22a9da93389464a90b.gif “20.gif”)]

结束语

这篇文章给大家介绍了 Serverless,阿里云的 Serverless 产品函数计算(FC)以及基于函数计算(FC)实现的在线编程系统的 Demo。大家应该有所体感,基于函数计算(FC)实现在线编程系统时,研发同学只需要专注在如何执行由前端传入的代码即可,整个 Server 端的各个环节都不需要研发同学和运维同学去关心,基本体现了 Serverless 的精髓。

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

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

相关文章

为了让盲人也能追剧,优酷做了哪些努力?

简介: 虽然Android和iOS系统本身就有对无障碍技术的官方支持,但是随着各种技术的迭代和演进,以及页面内容的复杂度的增加,靠系统自身的支持已经远远无法达到理想的无障碍用户体验。优酷客户端针对视障群体实际需求及反馈进行梳理&…

统信软件启用全新LOGO,迎接中国操作系统大时代

编辑 | 宋慧 出品 | CSDN云计算 头图 | 统信软件发布会现场 在2020年底完成11亿元A轮融资的半年之后,统信软件在7月31日发布了全新品牌LOGO,并推出了200多项功能改进的统信UOS1040版本。 统信软件技术有限公司总经理刘闻欢表示,统信软件从成…

距离 Java 开发者玩转 Serverless,到底还有多远?

简介: 本文摘自 Spring Cloud Alibaba 开源项目创始团队成员方剑撰写的《深入理解 Spring Cloud 与实战》一书,主要讲述了 Java 微服务框架 Spring Boot/Cloud 这个事实标准下如何应对 FaaS 场景。 作者 | 方剑(洛夜) Spring Clo…

MSHA x Chaos 容灾高可用实践

简介: 2020 年 12 月份,阿里云应用高可用产品 AHAS(Application High Availability Service)发布了新的功能模块 AHAS-MSHA,它是在阿⾥巴巴电商业务环境演进出来的多活容灾架构解决⽅案。本篇文章我们首先介绍容灾领域…

基于元学习和人机协同的端到端对话模型

Dialog Studio 是达摩院NLP-小蜜Conversational AI团队研发的面向开发者的智能对话开发平台,目前已经在云(多省市政务12345热线、中移动10086、金融、医疗等)、钉钉(通过钉钉官方智能工作助理服务几百万企业)、集团内&…

AI释放数字经济潜能!思谋科技受邀出席2021全球数字经济大会

8月2日,2021全球数字经济大会在北京举办。本次会议以“创新引领 数据驱动——建设全球数字经济标杆城市”为主题,由北京市人民政府、国家发展和改革委员会、工业和信息化部、商务部、国家互联网信息办公室共同主办。思谋科技作为承办单位参与论坛。思谋科…

ZAO 背后的深度学习算法原理浅析

ZAO最近火爆,成为现象级产品之一,引起大家的广泛关注,ATA上面已经有同学做了一些说明分析,链接如下: https://www.atatech.org/articles/148375?spmata.13269325.0.0.27ad49fa0Vr2gG 上面文章介绍了ZAO是基于deep f…

Serverless在SaaS领域的最佳实践

简介: 特别对于当下的经济环境,SaaS厂商要明白,不能再通过烧钱的方式,只关注在自己的用户数量上,而更多的要思考如何帮助客户降低成本、增加效率,所以需要将更多的精力放在自己产品的定制化能力上。 作者&a…

终于有人把大数据讲明白了。。。

大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算、高并发处理、高可用处理、集群、实时性计算等&a…

都 2021 年了,Serverless 能取代微服务吗?

简介: 马上就要 2021 年了,Serverless 是否终将取代微服务?从微服务到 Serverless 需要经过怎样的路径?本文将对 Serverless 与微服务在优势劣势上进行深度对比。 来源 | Serverless 公众号 编译 | OrangeJ 作者 | Mariliis Rett…

Knative 快捷操作命令 Kn 介绍

简介: kn 是 Knative 命令行操作客户端。 通过 kn 可以方便的操作Knative 相关的资源。 安装 Kn 可以通过官方获取对应的 Kn 二进制 • macOS • Linux • Windows kn 会与 kubectl 使用同样的config 文件,默认使用 $HOME/.kube/config 服务管理 使用…

四大触点,教你从“用户视角”构建数据分析体系

简介: 做增长、做产品其实和谈恋爱的道理是一样的,想要把这件事情做好,需要建立一个好的用户基础,站在用户(女朋友)的角度看待问题、发现需求、建立场景、提出解决方案,这种需求大到可以是产品的…

数据中心 48 V 直流供电,Vicor 如何解决“最后一英寸”电源设计难题?

作者 | 伍杏玲出品 | CSDN云计算(ID:CSDNcloud)7 月 27 日,由 OCP 社区主办、浪潮承办的第三届 OCP China Day 2021 在北京举行。会上,笔者有幸和全球领先的电源厂商 Vicor 公司的高管进行交流,了解这个 40…

阿里云高效基因序列检索助力新冠肺炎病毒序列快速分析

简介: 阿里云高效基因序列检索助力新冠肺炎病毒序列快速分析 AnalyticDB for MySQL是云端托管的PB级高并发低延时数据仓库,通过AnalyticDB for MySQL向量检索功能构建基因检索系统,支持毫秒级针对10亿级别的向量数据进行查询分析,…

DTCC 2020 | 阿里云赵殿奎:PolarDB的Oracle平滑迁移之路

简介: Oracle兼容性是业务客户从Oracle生态迁移到PolarDB生态的第一步也是至关重要的一步,PolarDB通过不断沉淀支持大量实际业务的真实Oracle兼容性功能,确保客户业务可以真正做到平滑迁移。同时PolarDB带给Oracle生态客户的不仅仅是上的来的…

边缘计算助力云游戏成为5G时代的杀手级应用

作者:王超引言随着技术、架构以及商业模式的快速发展和完善,边缘计算作为一种成熟的计算范型已经得到广泛应用。边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和IT环境服务,“边缘”指的是位于管理域的边缘,尽可能…

阿里如何做好双11技术保障?大队长霜波分享4点经验

简介: 为什么说双11是阿里每年技术保障稳定性最困难的一次?50多个BU一起加入双11,怎么组织和运营?为了保障双11的顺利进行,又有哪些备战方案以及创新技术?在由阿里云CIO学院主办的【2020中国企业数字创新峰…

47 张图带你走进浏览器的世界!

作者: 零一0101来源:前端印象大家好,我是零一,每个开发者(尤其是前端工程师)或多或少会跟浏览器打交道,那么你们有没有想过去深入了解浏览器呢?无论是因为好奇还是为了面试&#xff…

一文教你轻松搞定ANR异常捕获与分析方法

简介: 选择一款有超强捕获能力的专业产品,对于开发者定位和修复稳定性问题至关重要。友盟U-APM SDK集成了UC 内核团队强大的技术及友盟超强的错误捕获能力,通过数万次捕获实践中积累了丰富经验,在产品、性能和研发能力上都极大保障…

DTCC 2020 | 阿里云梁高中:DAS之基于Workload的全局自动优化实践

简介: 第十一届中国数据库技术大会(DTCC2020),在北京隆重召开。在12.23日性能优化与SQL审计专场上,邀请了阿里巴巴数据库技术团队高级技术专家梁高中为大家介绍DAS之基于Workload的全局自动优化实践。 SQL自动优化是阿…