如何判断2服务器性能好或坏_无服务器革命:好,坏和丑

如何判断2服务器性能好或坏

“这是愚蠢的。 比愚蠢还糟:这是一场营销炒作。”
理查德·斯托曼Richard Stallman)对云计算的评论,2008年9月

而且,十年后,当有人提到这个词时,您开始三思而后行:是到天上掉的东西,还是到2020年预计将占全球企业工作量83%的其他东西?

无论您是否喜欢,另一场革命正在进行中。 AWS处于领先地位,紧随其后的是Microsoft Azure和GCP,它们都怀有一个共同的目标:

解除对基础软件的束缚。

无服务器。

FaaS。

DevOps的死亡。

随便你

无论名称如何(为方便起见,我们将野兽称为“无服务器”),这种新范例已经在重塑软件领域中发挥了作用。 我们已经看到像可口可乐这样的巨头在其生产堆栈中采用了无服务器组件, 而无服务器等框架则获得了数百万美元的资金。 但是,我们应该记住,无服务器并不适合每个人,任何地方,每次都适用-至少到目前为止还不是。

服务器(较少)=状态(较少)

作为常规程序员,我看到的无服务器最大的“障碍”是“无状态”。 早先我可以肯定地知道我存储在内存中的复杂计算结果; 或我提取到/tmp的相当大的元数据文件; 或我刚刚产生的辅助子进程; 一旦我的程序恢复控制,它将仍然存在,无服务器几乎打破了所有这些假设。 尽管像lambda这样的实现往往会保留状态一段时间 ,但总的约定是,应用程序应该能够放弃所有希望,并可以从零开始优雅地启动,以防被干净的表盘调用。 不再有内存中状态:如果要保存,则保存。 你不,你输。

从另一个角度考虑,这可能也被认为是无服务器的(意外的)巨大优势之一。 因为瞬态(通过“服务器化”架构仅使存在成为可能)是大多数(即使不是全部)邪恶的根源。 现在,通过设计,您减少了犯错误的空间-这可能是一个公平的权衡,尤其是对于像我这样臭名昭著的程序员而言,它们通过内存状态管理寻求(通常为时过早)优化。

但是,我们不应忘记由于内存中状态管理和缓存容量的减少而导致的性能损失; 您的状态管理器(数据存储)原先只有数个“电路跃点” ,现在将相距数个网络跃点,从而导致数毫秒(甚至几秒)的延迟,以及更多的故障空间。

次秒计费

如果您在过去的十年中还活着,那么您将会看到它的到来:一切逐渐变成按需付费的模式。 现在,它的长度已到了以0.1秒的执行间隔对λ进行充电的程度,并且量化将继续进行。 对于持久负载而言,这可能并不意味着很多优势,有时甚至可能意味着劣势 ,但由于负载变化率高的应用程序始终不需要预配置并支付预期的峰值负载,因此可以获得巨大的优势。 更不用说具有稀疏负载配置文件的事件驱动和批处理系统,这些系统可能节省一个数量级,特别是当它们是小型的且在地理位置上受限时。

此外,新的按资源使用付费模式(考虑到时间或执行时间,也是一种非常有价值的资源),鼓励了面向性能的编程,这确实是一个好兆头。 FaaS提供商通常使用复合计费指标,将执行时间与内存分配等相结合,进一步加强了均衡优化的动力,最终产生了更好的资源利用率,更少的浪费以及由此带来的财务和环境效益。

看不见的红外线

代替物理硬件,虚拟化(以后)或容器化(以后)操作系统环境,现在您只能看到一个过程:实际上是一个功能或工作单元。 乍一看听起来不错(不再进行基础设施/硬件/操作系统/支持实用程序的监视或维护,希望无服务器提供商会为我们提供帮助!),但这在灵活性方面也意味着巨大的挫折:即使在在容器的日子里,我们至少可以灵活地选择自己喜欢的基本操作系统(尽管仍绑定到底层内核),而现在我们所拥有的只是编程语言的选择(有时是其版本)。 但是,那些经历过开发人员头痛的人肯定会同意,后者是一个非常合理的权衡。

加强隔离

由于您不再具有访问现实世界的权限(通常来说,这是一个短暂的容器化过程),因此出错的空间更少(不可避免的,因为实际上您可以做的事情更少!)。 即使您受到损害,您的短暂寿命和有限的特权也可以防止进一步的污染,除非该漏洞利用足够强大,足以影响基本的业务流程框架 。 随之而来的是,不幸的是,如果发现了这样的漏洞,由于基于lambda的恶意软件主机将比以往具有更大的可伸缩性,因此可以被大量利用。

大多数提供商故意限制lambda尝试进行恶意活动,例如发送垃圾邮件 ,合法用户对此会不以为然,但遭到了垃圾邮件的困扰(想象每月有数百万lambda运行时数量激增,AWS已经提供了100万次免费调用, 320万秒的执行时间 -向一组用户发送垃圾邮件;十二个免费的AWS订阅将使攻击者获得巨大的优势!)

供应商锁定:有副作用吗?

这是每个云平台(或者,如果您仔细考虑的话) 任何平台,实用程序或服务的固有问题。 一旦您决定利用平台的“酷”或“高级”功能,便可以有效地与之耦合。 对于无服务器平台而言,这比以往任何时候都更加真实:除了语言构造之外,几乎所有其他一切都是特定于提供程序的,并且试图编写“通用”功能最终会陷入难以理解的复杂的黑客和重塑车轮中 ,或者很可能什么都没有。

从某种意义上说,这是必不可少且不可避免的回报。 如果必须要特别,就必须要具体! 诸如Serverless之类的框架正在积极尝试解决这一问题,但是,按照一般的观点 ,通用解决方案仍然遥不可及。

拥有权利的同时也被赋予了重大的责任

鉴于无服务器应用程序的简单性,多功能性和可伸缩性,它们对于公司的IT基础设施而言可以成为宝贵的资产。 但是,如果设计,部署,管理和监控不当,则无论是架构复杂性还是财务方面的问题,都可能非常容易失控。 因此,知道如何驯服野兽比简单地学习野兽可以做什么更为重要。

祝您在无服务器的冒险中好运!

翻译自: https://www.javacodegeeks.com/2018/02/serverless-revolution-good-bad-ugly.html

如何判断2服务器性能好或坏

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

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

相关文章

datax 持续数据同步_采用DataX实现多表增量数据同步

这两天验证了一下阿里的DataX数据同步工具,觉得DataX可以用来做管理数据的多级数据同步。DataX用来做批量数据迁移很适合,能够保证数据的一致性,性能也很好,结合时间戳字段,用来实现数据定时增量同步也是可以的&#x…

Linux RPM包校验和数字证书

文章目录一、Linux RPM 包校验二、Linux RPM 数字证书验证(一)使用数字证书验证 RPM 包的步骤(二)安装/卸载数字证书为了能够及时发现文件误删、误修改文件数据、恶意篡改文件内容等问题,Linux 提供了以下两种检测方式…

java 字符串文字筛选_Java的原始字符串文字

java 字符串文字筛选似乎“ 原始字符串文字 ”即将出现在Java中。 JEP 326开始的(“原始字符串字面量”) 发行JDK-8196004 ,并宣布为“新JEP候选人” 3月2日的JEP和相关问题的人指出,“Java的仍然是一小群现代编程语言中的一个不为…

计算机系统常识笔记

计算机系统常识操作系统篇LinuxWindowsAndroidIOSUNIXGNU(GNUs Not Unix!)MacOSDOS处理器(CPU)篇x86ARM处理器显卡(GPU)篇分类性能指标显示存储器显卡频率显存类型流处理器单元显存位宽总线接口类型按当前主流显卡等级划分编译器篇公司篇IntelAMDNVIDIAMicrosoft(微软)IBMOracl…

jsr303jsp页面怎么显示错误信息_springmvc使用JSR-303进行数据校验实例

项目中,通常使用较多的是前端的校验,比如页面中js校验以及form表单使用bootstrap校验。然而对于安全要求较高点建议在服务端进行校验。服务端校验:控制层controller:校验页面请求的参数的合法性。在服务端控制层controller校验&am…

spring @lazy_Spring @Lazy批注用例

spring lazySpring框架几乎可以毫不费力地为您解决许多常见的编程问题,但是其某些功能比其他功能鲜为人知。 在本文中,我们将仔细研究属于该组的Lazy批注。 阅读了几个示例之后,您应该能够将注释应用于日常开发任务。 1. 懒豆初始化 Spring的…

什么是虚数

在数学中,虚数就是形如 ab*i 的数,其中 a、b 是实数,且 b≠0,i -1。虚数这个名词是 17 世纪著名数学家笛卡尔创立,因为当时的观念认为这是真实不存在的数字。后来发现虚数 ab*i 的实部 a 可对应平面上的横轴&#xff…

计算机网络--接入互联网方式

接入网 指将端系统物理连接到其边缘路由器的网络。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。 1.家庭接入互联网方式 一般通过DSL、电缆、FTTH、拨号和卫星接入。 数字用户线(DSL) 住户通常从提供本地电话接入的本地电话公司处获得DSL因特网接入。因…

mysqls压力测试怎么用_MySQL压力测试工具使用

一、MySQL自带的压力测试工具——Mysqlslapmysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的验…

java isempty_Optional.isEmpty()即将加入Java吗?

java isemptyJDK-8184693请求将方法isEmpty()添加到JDK 8引入的Optional类中。 调用Optional.isEmpty()等同于调用! Optional.isPresent() ! Optional.isPresent() 。 当前没有与JDK-8184693关联的JDK版本 ,但是它正在积极地工作,如最近发布的名为“ RFR…

如何理解文件存取单位 -- 块(block)

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性…

知识图谱笔记

知识图谱知识分类陈述性知识过程性知识本体(Ontology)知识库(Knowledge Base)数据库(Database)语义网知识图谱详细解析知识图谱的生命周期知识建模(知识体系构建)知识获取知识融合(知识集成)知识存储、查询和推理(知识服务)知识推理知识应用领域知识图谱的应用金融证券领域医疗…

nslookup 包含在那个包中_nslookup命令详解

Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP(在之后的windows系统也都可以用的,比如win7,win8等) 中均可使用,但在Windows 98中却没有集成这一个工具。Nslookup 必须要安装了TCP/IP 协议的网络环境之后才能使用…

java ee 8 api_Java EE 8安全性API:概述

java ee 8 api新的安全性API Java EE 8中添加的最重要的一项新功能可能就是新的安全性API。 此新API的主要动机是简化,标准化和现代化跨容器和实现处理安全性问题的方式。 他们做得很好。 由于三个新的注释使web.xml文件声明多余,Web身份验证的配置已实…

Linux 命令之 ln -- 为文件创建链接

文章目录一、命令介绍(一)符号链接的特点(二)硬链接的特点二、命令格式三、常用选项四、命令示例(一)创建硬链接(二)创建软链接一、命令介绍 Linux 具有为一个文件起多个名字的功能…

计算机网络笔记----概述

参考计算机网络自顶向下第七版和计算机网络谢希仁第七版计算机网络和Internet什么是互联网?具体构成描述互联网服务提供商(ISP)服务描述什么是协议?协议分层应用层(最高层)传输层(运输层)网络层:数据链路层和局域网物理层网络边缘接入网家庭接…

prima evb_用Priam设置Cassandra

prima evb前面已经解释了如何在AWS中设置Cassandra 。 所描述的设置有效,但在某些情况下可能还不够。 例如,它不能为您提供制作和还原备份的简便方法,添加新节点依赖于自定义python脚本,该脚本会随机选择一个种子。 因此&#xf…

Java 9:Process API的增强

Java 9对Process API进行了各种改进,用于控制和管理操作系统进程。 获取有关流程的信息 有一个新的ProcessHandle类,提供了进程的pid,父级和后代,以及有关开始时间和累积CPU时间的信息。 jshell> Process p new ProcessBui…

HTTP的操作过程

HTTP的操作过程 HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP是面向事务(一系列的信息交换,不可分割的整体)的应用层协议,它是万维网上能够可靠…

什么是绝对值?

绝对值是指一个数在数轴上所对应点到原点的距离,用 | | 来表示。|b-a| 或 |a-b| 表示数轴上“表示a的点”和“表示b的点”的距离。 正数 x 的绝对值表达式:| x | x,负数 x 的绝对值表达式:| x | -x,0 绝对值表达式&…