两者都是当今技术时代的热门话题,也都被视为是开发技术的竞争对手。

首先,还有相当多的好奇和担心。此外,两者都是可供工程师使用的、高效的、机器无关的抽象。

但是,在冠军之间,有一个不可逾越的鸿沟。你要么在容器区域,要么选择 Serverless。除此之外,如果你愿意将两者结合起来,那将是一个强大的组合。

预计到 2021 年,Serverless 将达到 77.2 亿美元 的规模。但对容器的需求也将增长 40%

1. 什么是 Serverless?

简而言之,Serverless 是运行在服务器上的,基于云服务的子集。

1.1. 容器 vs. Serverless:为什么 Serverless 更好?

服务提供商或供应商管理 Serverless 操作的基础设施需求。你所需要做的就是部署代码。因此,你有机会更专注于应用逻辑,而不必担心基础设施。

该技术在主流企业中是非常酷的一种存在。

来源:https://www.slideshare.net/speckandtech/a-bot-in-minutes-with-serverless

有很多可用的平台 —— Google 云、AWS Lambda、EdgeEngine

2. 为什么要从 Containers 到 Serverless?

2.1. 廉价

使用 Serverless,你通常是按使用量付费。闲置资源会有价格豁免。例如,Lambda 以 100 毫秒范围为其计时单位。

此外,由于任务很小,且运行在较小的 Serverless 功能上,因此开销成本可达到最小化。

2.2. 低维护

除此之外,代码部署、容器配置、系统策略、可用性级别或后端服务器任务,都不再是你头疼的问题。

你有机会试用自动扩缩容。

2.3. 原型简单

来源:epsagon.com

在主机应用环境下,Serverless 是一种外部集成。因此,个人容器的生命周期可以避开任何运行时故障的情况。

3. 使用 Serverless 的场合有哪些?

3.1. 网站或应用的后台任务

像其他服务器一样,Serverless 接受来自数据库或前端程序及站点的信息。根据程序来检索数据并将其返回给用户接口。

与容器相比,Serverless 的定价差异在于,其计费取决于实际的后端任务执行持续时间。

3.2. 大容量后台进程

在销售系统上,Serverless 功能可组织库存和交易数据库以及重新进货等临时任务。

最后但同样重要的是,Serverless 在将数据转换为持久化存储或将指标转发给分析服务方面是非常方便的。

4. Serverless 的限制

这些限制发生在大小和内存使用方面,或者说是基于 Serverless 架构的限制。

例如,为了保持函数的正常运行,并防止额外的系统资源消耗,本机支持的编程语言的有限列表对于 Serverless 来说并不自然。由于基本功能的限制,Serverless 函数可能并不适合监控工具。首先,Serverless 是对主框架平台的外部集成支持。

因此,你无法访问内容管理系统。

5. 什么是容器微服务?

这只是 独立包 的一部分,在其中部署、执行和扩展了一个应用程序。

根据 亚马逊 的介绍,容器是“一种操作系统虚拟化的方法,其允许用户在资源隔离的进程中运行应用程序。”

根据容器框架,Docker 的说法,容器管理平台声明:“容器是一个软件单元,它将代码及其所有依赖打包在一起,因此应用程序可以快速可靠地从一个环境迁移到另一个环境。”

在从一个环境到另一个环境的迁移过程中,容器概念非常有用。原因在于其能够在迁移期间引入隔离,以避免任何变量的改变。

因此,如果你要将设计的产品代码从开发迁移到生产,这将是为你而准备的。

6. 容器 vs. Serverless:为什么选择容器?

其优点很多。

6.1. 容器 vs. Serverless:容器助力大型化项目

如果你有这方面的技术专长,那么你会喜欢使用容器。它最适合更为广泛的应用或企业。在这种情况下,使用 Serverless,你可能很快就会面临代码蔓延而难以管理的问题。

例如,如果在 Serverless 应用上运行,则折射器会出现各种瓶颈。结果将是极其分散的微服务。

6.2. 容器 vs. Serverless:完全控制 Docker

你可以设置策略、保留和管理资源、严格控制安全性,并充分利用容器来管理和迁移服务。

基础架构命令全都掌握在你手里,只需按需定制即可。

6.3. 容器 vs. Serverless:调试、测试及监控

手动浏览容器活动的开关及状态。

这就确保了有效深入的调试和测试、对资源的全方位使用,以及在各个级别进行深入的性能监控。

7. 容器的好处在哪里?

第一个也是最重要的好处是“特有的易移植性”。你可以将所有应用程序与所有依赖组合在一个小的 package 中并在任何地方运行它。

容器非常适合大型应用程序,因为其不受内存或大小限制。你是这里所有涉及功能的唯一所有者。

8. 对比容器 vs. 无服务运算

如果要对比容器与 Serverless 计算之间的区别。

容器最适合大型和复杂的应用。 如果您的产品对环境敏感,则需要一丝不苟的质量保证和监控,容器是解决方案。

容器在迁移遗留的单体应用时也很方便。 您可以将此大型应用程序碎片整理为容器,并使用第三方工具进行安装。

容器适用于大型电商网站。那种具有相当大的站点地图或者有很多子域的网站。您可以使用容器将每个节点包装在其中。

因此,如果您要开始一个新项目,且产品不需要太多迁移时,Serverless 是最好的选择。例如,Serverless 是物联网(IoT)应用程序的最佳选择。该应用程序监测到水的存在,以识别储水设施的泄漏。

通常,程序不必一直运行,但当泄露的情况下,其需要准备好执行。

通常,当开发速度和成本最小化非常重要,且不想管理可扩展性时,Serverless 是理想的选择。

9. 混合模型

您是否仍然坚持在容器与 Serverless 之间进行选择?

截至目前,两者都可用于相同的开发项目,但用途不同。 Serverless 适用于处理数据事件驱动的触发器。另一方面,容器在技术规范上提供更大的可扩展性和独立性。

有了适当的专业知识,您可以通过容器管理项目的小碎片,作为在 Serverless 上运行项目子集的一种方法。

但这取决于预算管理和项目要求。

结论

容器与无服务器计算?!!正如他们所说,这些是相互竞争的技术!!

基于容器和无服务器的计算是同时代的。 它们支持不断发展的云和基于持续交付的软件世界。 因此,如果您是寻求云战略的人,那么集成技术以减轻弱点对您有利的。

你是哪一方? 你会考虑将两者结合起来吗?

原文:https://geekflare.com/containers-vs-serverless/

作者:Pallavi Priyadarshini

译者:万想

9月福利,关注公众号

后台回复:004,领取8月翻译集锦!

往期福利回复:001,002, 003即可领取!

Containers vs Serverless:你选择谁,何时选择?的更多相关文章

  1. Pandas之容易让人混淆的行选择和列选择

    在刚学Pandas时,行选择和列选择非常容易混淆,在这里进行一下讨论和归纳 本文的数据来源:https://github.com/fivethirtyeight/data/tree/master/fa ...

  2. 选择Android还是选择JavaEE?

    很多同学咨询过同样的一个问题,该问题也是最备受争议的问题,那就是到底是选择Android还是选择JavaEE.下面发表一些本人的看法.       Android属于一个特有的Java技术应用,专注于 ...

  3. JS-加载页面的时候自动选择刚才所选择option

    <body class="no-skin" onload="option_auto(${pd.PACK_SORT})"> <select na ...

  4. 选择排序—简单选择排序(Simple Selection Sort)

    基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素 ...

  5. CSS选择符-----元素选择符

       通配选择符(*)           选定所有对象 通配选择符(Universal Selector) 通常不建议使用通配选择符,因为它会遍历并命中文档中所有的元素,出于性能考虑,需酌情使用 & ...

  6. 选择问题(选择数组中第K小的数)

    由排序问题可以引申出选择问题,选择问题就是选择并返回数组中第k小的数,如果把数组全部排好序,在返回第k小的数,也能正确返回,但是这无疑做了很多无用功,由上篇博客中提到的快速排序,稍稍修改下就可以以较小 ...

  7. 选择排序—简单选择排序(Simple Selection Sort)原理以及Java实现

    基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素 ...

  8. jquery操作checkbox方法(全选、全不选、至少选择一个、选择值/文本)

    原文:http://blog.csdn.net/u014079773/article/details/52371382 在实际开发中我们经常操作checkbox,不仅仅要获得checkbox选中的值, ...

  9. project .mpp 查看当天工作任务 1.选择自己 2.选择起始和终止时间 就显示当天的任务了

    project .mpp 查看当天工作任务 1.选择自己 2.选择起始和终止时间 就显示当天的任务了

随机推荐

  1. [AI] 论文笔记 - CVPR2018 Super SloMo: High Quality Estimation of Multiple Intermediate Frames for Video Interpolation

    写在前面 原始视频(30fps) 补帧后的视频(240fps) 本文是博主在做实验的过程中使用到的方法,刚好也做为了本科毕设的翻译文章,现在把它搬运到博客上来,因为觉得这篇文章的思路真的不错. 这篇文 ...

  2. LiteORM-For-DotNet,我的第一个开源库

    这是一个DotNet轻量级ORM框架,解决C#.Net开发过程中重复繁琐的数据库CURD操作. 前言 因工作中接手的.net项目,源码里面都用了动软代码生成的源码做为数据库操作类库.其中,有些根本就没 ...

  3. egret之弹幕

    要实现弹幕功能,首先需要将弹幕配置成配置表.然后代码随机生成. /**生成单个弹幕 */ private showCaptionAnim(captionText: string) { egret.lo ...

  4. hive 四种表,分区表,内部,外部表,桶表

    Hive四大表类型内部表.外部表.分区表和桶表 一.概述 总体上Hive有四种表:外部表,内部表(管理表),分区表,桶表.分别对应不同的需求.下面主要讲解各种表的适用情形.创建和加载数据方法. 二.具 ...

  5. Keras(四)CNN 卷积神经网络 RNN 循环神经网络 原理及实例

    CNN 卷积神经网络 卷积 池化 https://www.cnblogs.com/peng8098/p/nlp_16.html 中有介绍 以数据集MNIST构建一个卷积神经网路 from keras. ...

  6. CodeForces 85D Sum of Medians Splay | 线段树

    Sum of Medians 题解: 对于这个题目,先想到是建立5棵Splay,然后每次更新把后面一段区间的树切下来,然后再转圈圈把切下来的树和别的树合并. 但是感觉写起来太麻烦就放弃了. 建立5棵线 ...

  7. jquery中的 $(function(){ .. }) 函数

    2017-04-29 在讲解jquery中的 $(function(){ .. }) 函数之前,我们先简单了解下匿名函数.匿名函数的形式为:(function(){ ... }),又如 functio ...

  8. CVE-2019-0708远程桌面代码执行漏洞复现

    漏洞环境 使用VMware 安装Windows7 SP1模拟受害机 利用 攻击工具准备 1.使用如下命令一键更新安装的metasploit框架 curl https://raw.githubuserc ...

  9. .gitignore文件失效的解决方案

    通常在idea中,我们使用git进行项目管理的时候,一些不需要的文件如.idea,.target文件不需要上传至gitlab仓库,这时,就需要在项目中定义一个.gitignore文件,用来标识这些文件 ...

  10. 网页去重之Simhash算法

    Simhash算法是Google应用在网页去重中的一个常用算法,在开始讲解Simhash之前,先了解——什么是网页去重?为什么要进行网页去重?如何进行网页去重,其基本框架是什么?   网页去重,顾名思 ...