DigitalOcean 应用托管平台级更新:应用端到端运行时性能大幅改进

DigitalOcean 希望可以为企业提供所需的工具和基础设施,以帮助企业客户加速云端的开发,实现业务的指数级增长。为此 DigitalOcean 在 2020 年就推出了App Platform。

App Platform(应用托管) 是一个完全托管的 PaaS 解决方案,非常适合小规模应用开发和部署,或是专注于 Web 应用开发且不熟悉底层部署的开发者。开发者使用 App Platform 时,只需关联 Github 仓库或提前构建的容器镜像,App Platform 将承担管理基础设施、应用程序运行时和依赖项的所有繁重工作,让开发者无需设置底层基础设施,降低了开发的复杂性。App Platform 支持许多流行的语言和框架,如Node.js、Python、Django、Go、PHP、Laravel、React、Ruby、Ruby on Rails、Gatsby、Hugo、静态网站和Docker。

近期,为了提高 App Platform 的效率,我们已经将所有应用程序迁移到了一个新升级的基础设施上,这包括对运行时性能的大幅改进。接下来,将介绍我们如何实现 gVisor(沙箱运行时环境) 的最新版本,并分享我们的性能测试结果。

gVisor 的增强

App Platform 是 DigitalOcean 的 PaaS 平台。App Platform 的核心目标之一是用户无需担心底层基础设施,并保证基础设施始终处于最新状态。这就是我们的工作! App Platform 协同工作的多个构建块,可以为用户提供了简单部署的体验。其中一个构建模块就是 Google 的 gVisor 容器运行时,它有助于我们安全、密集地将应用程序打包在同一主机上。

然而,gVisor 增加的安全性机制会带来一定的代价。其核心原则之一就是拦截应用程序的系统调用(syscalls),并在 gVisor 而不是内核中处理这些系统调用。这种通过 ptrace 实现的拦截会带来很大的开销。为了解决这个问题,谷歌发布了一种新的系统调用拦截方法,名为 systrap。这一新平台极大地减少了 gVisor 处理系统调用的开销,从而提高了大多数应用的性能。一般来讲,只要你的应用和业务不是与 CPU 负载重度绑定的,都能从这项改进中受益。

为了更直观地展示改进效果,我们测量了端到端(如你的用户所能观察到的)吞吐量,针对一个最小的 Node.js 应用(它的网络是受限的),以及一个 WordPress 应用(循环使用不同的主题)。之所以选择 WordPress 应用,是因为PHP 应用的性能受到 gVisor 沙箱的影响非常明显。这是因为运行 PHP 应用会出现大量文件操作,以及循环使用不同的主题,让它可以成为一个很典型的极端测试。

上图清楚地展示了新版本 gVisor 及其 systrap 平台带来的改进效果。结果是基本 Node.js 应用的吞吐量提高了两倍多,WordPress 应用的吞吐量提高了七倍多。根据你应用程序的特性,优化效果可能比我们的结果更明显,也可能不那么明显.我们的这些测试结果,可以作为 Google 在其 systrap 公告中的指标的另一份参考。

注:本文中的测试基准吞吐量数据,基于DigitalOcean的内部测试框架和参数得出,使用了具有 2 个专用 vCPU 的应用程序。实际性能数字可能会因系统配置、操作环境和工作负载类型等各种因素而异。

安全发布上线

在我们的测试中,我们发现 gVisor 与我们一直在使用的旧版本相比有一些退步。其中一些是与应用程序应有的行为不兼容,另一些是平台本身的问题。我们与 gVisor 团队建立了紧密的反馈改进机制,收集了我们所看到问题的必要信息,以确定它们的根本原因,并迅速修复。我们非常感谢 gVisor 团队的快速响应和他们在解决这些问题方面的快速支持。

进行这样的平台级改进并非没有风险,对我们来说,进行此类改进时不干扰或破坏用户的应用至关重要。我们所有的地区有将近 60 个集群需要安全升级。因此,我们采取了一种缓慢的、基于金丝雀的方法,在集群群中逐步实现这一更改。gVisor 更新是我们整个栈的整体更新的一部分,其它还包括新的 Linux 内核和 Kubernetes 版本等。我们没有选择对现有集群进行就地升级,而是创建了新的集群,并逐渐启用应用程序部署到它们上面。一旦被认为稳定,我们开始创建旧集群的替代集群,并将应用程序从旧集群迁移到新集群。这个过程现在已经完成,所有应用程序都在新集群上运行。

来尝试改进后的 App Platform 性能吧!

如果你之前在 App Platform 上的应用程序性能有明显问题,请考虑再试一次。我们已经从很多客户那里得到了正向的反馈,他们在这次版本更新过程的早期迁移了应用程序,他们表示自己遇到的性能问题已经在将应用程序移动到新基础设施后,得到了解决。

试试看!登录你在云控制台的App Platform账户,或者通过创建 DigitalOcean 账户,来体验一下更新后的 App Platform。如果你希望咨询更多云服务方案,或希望从其它云服务迁移到 DigitalOcean,可访问DigitalOcean 中国独家战略合作伙伴卓普云官网与我们的技术售前团队咨询、沟通。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录Day 40|Leetcode|Python|139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 解题思路: 确定dp数组含义…

火山引擎数据飞轮携手美宜佳 探索拓店营销新思路

在刚刚过去的 3 月,美宜佳又交出了门店增长的高分答卷。 最新数据显示,美宜佳在全国的连锁店数已经超过 35000 家,每年净增 3000-4000 家店,月均服务顾客超 2 亿人次;同时,在中国连锁经营协会(CCFA)近日发布…

有哪些方式可以有效地评估精益生产咨询公司的能力?

在寻求精益生产咨询服务的过程中,评估咨询公司的能力至关重要。这不仅关乎企业精益生产转型的成功与否,更直接影响到企业未来的竞争力和发展。那么,有哪些方式可以有效地评估精益生产咨询公司的能力呢? 首先,了解咨询公…

Linux网络-PXE高效批量网络装机(命令+截图详细版)

目录 一.部署PXE远程安装服务 1.PXE概述 1.1.PXE批量部署的优点 1.2.要搭建PXE网络体系的前提条件 2.搭建PXE远程安装服务器 2.1.修改相关网络配置(仅主机模式) 2.2.关闭防火墙(老规矩) 2.3.保证挂载上 2.4.准备好配置文…

语音识别--声音位置与起始位置检测

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

代码随想录最后一天!

这是长达63天的最后一天一年的六分之一,我跟着卡哥完成了代码随想录的所有打卡。每天都写下了一篇关于自己做题的小博客。其中有的写的精细,有的潦草,但是都是我一路走来的脚步。 虽然有的题目还是不太理解,但是我依旧自信昂首&am…

Freeswitch-mod开发

文章目录 一、Freeswitch-mod开发1.1 介绍1.2 实战1.2.1 新建一个mymod.c或者mymod.cpp1.2.2 新建一个Makefile1.2.3 编译 二、Freeswitch-mod-自定义Dialplan模块2.1 介绍2.2 实战2.2.1 改造mymod.c(代码是完整的,自己做区别看一下)2.2.2 编…

淘宝数据分析——Python爬虫模式♥

大数据时代, 数据收集不仅是科学研究的基石, 更是企业决策的关键。 然而,如何高效地收集数据 成了摆在我们面前的一项重要任务。 本文将为你揭示, 一系列实时数据采集方法, 助你在信息洪流中, 找到…

突然断电,瀚高数据库启动失败

服务器临时断电后,数据库启动不起来 ps -ef|grep postgres 进到数据库的data目录下看下ls 看下 查看临时文件: ls -la /tmp 把这两个5866的文件改个名字张老师 加个bak就行 改完了pg_ctl start起一下

AUTOSAR中EcuM、ComM和CanNm的关联

ComM的内外部唤醒 ComM可以通过NM保持网络的唤醒,同时也可以通过SM激活通信,总之就像一个通信的总管。 下面通过两种唤醒源来解释ComM的状态机。 1、内部唤醒 ① 当ComM上电初始化时会首先进入NO COMMUNICATION状态,在该状态下ComM会持续循…

口感与风味的完善结合:精酿啤酒的多样风格

啤酒的世界是丰富多彩的,不同的啤酒有着各自与众不同的口感和风味。而Fendi club啤酒,作为精酿啤酒的代表,以其多样化的风格和卓着的口感,吸引了无数啤酒爱好者的目光。 Fendi club啤酒的多样风格,首先体现在其原料的选…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.13-1.14

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)1.13 梯度检验&#…

element-plus el-cascader 懒加载实现-省市区街道选择及回显

大概思路: 准备一个接口可以通过父Id,查询到下一级省市区街道的信息;如下方的getRegionListOne确定后端的数据结构,需要在created里边处理数据回显逻辑el-cascader接收的数据格式是[‘’,‘’,‘’];后端的数据格式多为[{provinceId: ‘’, …

Postman轻松签名,让SHA256withRSA保驾护航!

前言 在接口测试中,我们经常需要对请求进行签名,以保证数据的安全性。而SHA256withRSA是一种较为常见的签名算法,它可以使用私钥对数据进行签名,使用公钥进行验签。 但是,实现该算法签名可能会涉及到一些繁琐的操作&…

利用生成式AI重新构想ITSM的未来

对注入 AI 的生成式 ITSM 的需求,在 2023 年 Gartner AI 炒作周期中,生成式 AI 达到预期值达到顶峰后,三分之二的企业已经将生成式 AI 集成到其流程中。 你问为什么这种追求?在预定义算法的驱动下,IT 服务交付和管理中…

如何把一个PDF文档每两页合并为一页?跟我学,5秒搞定!

想要将两张PDF的内容合并到一张A4纸上显示。 这需要用到PDF编辑软件,在迅捷PDF编辑器中的“打印”功能里进行设置。 下面给大家演示一下具体怎么操作: 01.打开迅捷PDF编辑器,导入PDF文件,找到左上角【打印】功能。 02.在弹出…

服务器2080ti驱动的卸载与安装

服务器2080ti驱动的卸载与安装 前言1、下载驱动2、驱动卸载与安装2.1 卸载原来驱动2.2 安装新驱动 3、查看安装情况 前言 安装transformers库,运行bert模型时出错,显示torch版本太低,要2.0以上的,所以更新显卡驱动,重…

黑马点评项目总结

登录 基于session登录 短信验证码登录 配置登录拦截器 向 Spring MVC 框架中添加拦截器,LoginInterceptor 是一个自定义的拦截器,用于拦截用户的登录请求。 excludePathPatterns这一句是设置拦截器需要放行的请求路径列表。 "/user/code", …

Java | Leetcode Java题解之第67题二进制求和

题目&#xff1a; 题解&#xff1a; class Solution {public String addBinary(String a, String b) {StringBuffer ans new StringBuffer();int n Math.max(a.length(), b.length()), carry 0;for (int i 0; i < n; i) {carry i < a.length() ? (a.charAt(a.leng…

基于云制造的智能工厂简单介绍

基于云制造的智能工厂是利用云制造服务平台&#xff0c;以制造资源层、现场控制层、车间执行层、企业管理层、平台应用层、企业协同的业务需求和集成协作为牵引&#xff0c;综合基于云制造服务平台的应用模式&#xff0c;同时考虑智能工厂整体安全&#xff0c;构建基于云制造的…