0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

构建API无服务器才是最后的赢家

我快闭嘴 作者:工程师李察 2018-10-06 11:37 2494次阅读

从你自己的Web应用程序里面创建API不合逻辑或不切实际时,有三种主要的方法可以创建API。你可以使用虚拟机(比如AWS EC2实例)构建服务,使用你的服务构建容器,或者在无服务器环境中构建。

下面解释了为什么在构建API时采用无服务器最有意义。

别使用容器来构建API

容器是近年来最令人迷惑的时尚。在某些情况下,“我们可以构建是你之前构建的机器的完美复制品的新机器”有莫大的吸引力,还充分发掘一些关键流程,但公共API很少一开始就需要启动几十个复制品,这个优势无法压倒诸多困难。

与虚拟机相比,容器启动速度更快,只需较少的资源即可多路运行,但这两个优点没一个适用于API服务。通常,容器启动速度不够快,等到收到API请求才开始。与传统虚拟机相比,我们的开销较低,这里就引出了一个基本的开发事实:没有哪个高管抱怨买不到更多的内存,但他们缺少工程师。如果非常稀缺的是内存或CPU周期,没人会写一行Javascript。大多数广泛采用的技术主要是为了节省开发人员的时间。

容器以牺牲开发时间来节省内存,这方面的一个例子是缺乏可靠的管理工具。这是一则轶闻,但我从未在Amazon EC2或Azure VM的虚拟机管理程序界面方面遇到过问题。另一方面,我从未成为(或甚至遇到过)管理Docker容器方面自学成才的专家。

面对大多数Web开发人员面临容器时遇到的一些基本困难时,答案常常是“稍加培训,就能轻松地管理这个或那个”,这引出了容器方面的一个根本问题:接触了多年的Web开发人员仍然无法独自解决问题。一般来说,领导者谈论哪些资源供不应求时,往往是“人时不足”,而不是技术性问题。需要更多工程师时间的解决方案似乎注定带来更多的麻烦。

别使用虚拟机来构建API

虽然我反对容器的理由有一大堆,但反对虚拟机的理由归结为一个词:安全。确实,虚拟机方面的噩梦场景就是类似公共API的服务。设想一下这个场景:

你的团队被要求构建公共API,帮助与并行服务建立起潜在的合作关系。

经过数月或数年的开发后,社区对端点的兴趣不温不火,公司的所有开发人员将注意力转到别处。

在此期间,我们所用虚拟机的操作系统出现了新的漏洞,但由于构建公共API不是任何人的“全职工作”,操作系统没有相应的更新,或者如果虚拟机管理程序服务迫使更新,但要是没有人搞清楚为什么更新搞砸了服务,就得让更新回滚或恢复。

过了一两年后,你收到了一黑客发来的邮件,解释了他们如何通过早就有补丁的安全漏洞、却从未给你API的虚拟机打上补丁,完全克隆你的生产服务器。

问题很明显,但解决方案并不是很清晰:严加管理的虚拟机让我们获得了酷似无服务器的东西,试图将服务迁移到更现代的机器映像可能要占用开发人员的大量时间。更糟糕的是,很难知道这种情况何时发生,于是你的环境中有几个确实很古老的虚拟机。

为什么无服务器是赢家?

无服务器的风头“盖过”容器趋势。许多新开发人员接受了在像Heroku这样高度抽象的环境中管理虚拟机这方面最基本的课程之后,正在学习无服务器。

无服务器提供了这样一个环境:更新和安全漏洞“不是你的问题”,你可以针对已可靠地工作了一段时间的服务,采取“如果它没有坏,别去修它”的态度。

最后,使用单个函数(在AWS中它们是Lambdas)来处理单个路由意味着通过API泄漏数据的危险将大大降低。无服务器可能无法提供出色的资源使用、定价或易复制性,但这些都不是关键的阻碍因素,尤其是在构建公共API时。在Stackery,我们专门旨在解决许多这些问题,使开发人员更容易让无服务器应用程序快速启动和运行起来。

针对内部服务、任务关键型项目和分布式系统,可以为几乎任何现存的技术找出理由。以构建API为例,很难为除了无服务器外的任何解决方案找到充分的理由。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9437

    浏览量

    86512
  • API
    API
    +关注

    关注

    2

    文章

    1531

    浏览量

    62809
  • 虚拟机
    +关注

    关注

    1

    文章

    954

    浏览量

    28650
收藏 人收藏

    相关推荐

    服务器”计算兴起_AWS开启云应用库

    服务器计算是云计算执行模型,在这种模型下,云提供商自动管理机器资源的分配。服务器计算的主要承诺是开发人员无需担心构建应用的底层硬件,让他
    发表于 03-19 18:45 927次阅读

    云计算的思维转换 服务器的优势

    PaaS云是服务器系统的灵感,但是服务器并不意味着没有服务器。目前
    发表于 02-28 14:59 976次阅读

    服务器端发票识别api接口

    服务器端发票识别api接口可实现发票OCR识别本地化部署:基于企业集团内网构建的本地化发票识别服务,网络更稳定、响应更快速、数据更安全。
    发表于 06-01 10:53 2721次阅读

    服务器端名片扫描识别API

    关键词:名片识别 移动端名片识别 云端名片识别 服务器端名片识别 名片识别SDK 名片识别api一、名片识别背景随着计算机技术的迅猛发展,电子化的名片变得越来越流行, 交换变得越来越方便。利用
    发表于 08-07 10:58 368次阅读

    服务器架构面临的10大安全威胁

    服务器架构(也称为功能即服务FaaS)在企业中用于构建和部署软件和服务,不需要内部物理或虚拟服务器
    发表于 08-23 14:35 826次阅读

    什么是服务器服务器架构的安全需要注意什么

    服务器架构可以让企业实现更灵活和更具成本效益的业务架构模式。但是,随着企业开始使用服务器架构时候,需要考虑
    的头像 发表于 09-28 02:56 3685次阅读

    关于服务器云安全,如何保护服务器计算

    服务器计算是云计算发展的最新趋势之一,也是最复杂的趋势之一。与任何一个新技术一样,服务器计算也带来了新的技术风险。
    发表于 03-16 11:42 548次阅读

    盘点服务器架构所面临的10大安全挑战

    服务器架构(也称为功能即服务FaaS)在企业中用于构建和部署软件和服务,不需要内部物理或虚拟服务器
    发表于 03-17 11:39 568次阅读

    剖析服务器 (Serverless) 架构基础安全指南

    服务器(Serverless)架构使组织无需内部服务器即可大规模构建和部署软件。像函数即服务(FaaS)模型这样的微
    的头像 发表于 03-24 11:41 1985次阅读

    AWS服务器平台

      AWS 服务器计算服务支持在 AWS 云上构建和部署应用程序,而无需管理服务器。AWS
    的头像 发表于 10-20 17:54 1334次阅读

    AWS服务器平台

      AWS 服务器计算服务支持在 AWS 云上构建和部署应用程序,而无需管理服务器。AWS
    的头像 发表于 11-30 16:30 856次阅读

    AWS服务器平台

      AWS 服务器计算服务允许在 AWS 云上构建和部署应用程序,而无需管理服务器。AWS
    的头像 发表于 12-08 15:48 760次阅读

    基于RAW API的UDP服务器设计

    前面我们已经完成了LwIP协议栈基于逻辑的基本移植,在这一节我们将以RAW API来实现UDP服务器
    的头像 发表于 12-14 14:56 1260次阅读
    基于RAW <b class='flag-5'>API</b>的UDP<b class='flag-5'>服务器</b>设计

    初探Azure服务器架构

    Azure Functions 是一种按需提供的云服务,可提供运行应用程序所需的所有基础设施和资源,为 Azure 提供服务器计算,用户无需管理服务器或计算资源,节省成本。
    的头像 发表于 12-29 17:21 789次阅读

    使用API连接SMTP服务器的方法

    。 SMTP服务器基础 SMTP服务器是用于发送电子邮件的服务器。它遵循SMTP协议,允许客户端(如电子邮件客户端或应用程序)发送邮件到互联网上的其他电子邮件地址。SMTP服务器通常需
    的头像 发表于 10-30 18:13 425次阅读