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

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

3天内不再提示

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

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

从你自己的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

    文章

    8120

    浏览量

    82531
  • API
    API
    +关注

    关注

    2

    文章

    1383

    浏览量

    60994
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27380
收藏 人收藏

    评论

    相关推荐

    linux服务器和windows服务器

    应用和企业环境中使用,那么Win dows服务器可能更适合你的需求。 综上所述,Linux服务器和Windows服务器各有优劣,选择适合自己需求的服务器操作系统是确保
    发表于 02-22 15:46

    配置一个边缘IO服务器服务器共有1-8个COM口,怎样的分配才是最高效的呢?

    在配置一个边缘IO服务器,此服务器共有1-8个COM口,将每两个COM口用来插DO板和DI板,共为四组,比如COM-1口可以和COM-2口为一组。本设备希望用DO板来控制DI板,故希望DO在发送数据时跟DI收到的数据一致,请问应该怎样以怎样的分配
    发表于 04-02 06:19

    服务器选型经验谈

    酒店方案,打造新型酒店,对于酒店的管理,成本,上面都有很大的改进,因而在服务器领域又有新的突破。无论是什么档次的地方都会配备一台电脑,而我们的酒店当然也不甘愿落后,考虑成本问题和管理问题酒店盘方案
    发表于 07-21 18:25

    服务器知识

    、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。随着云计算的时代到来,服务器的地位越来越重要,在构建一朵超级的云时候少不了
    发表于 08-12 13:43

    基于ARM和Linux的嵌入式Web服务器构建及应用

    摘要:本文主要研究了基于ARM和Linux的嵌入式Web服务器构建及应用.随着互联网的飞速发展,越来越多的信息化产品需要接入互联网并通过Web页面进行远程访问和控制,嵌入式Web服务器已成为目前
    发表于 11-05 06:07

    如何利用多线程去构建一种TCP并发服务器

    一、实验目的和要求1了解TCP/IP协议2掌握Socket编程,熟悉基于TCP和UDP的传输模型3掌握多线程编程4掌握基于TCP的并发服务器设计二、实验内容和原理实验内容:编写C程序,利用多线程构建
    发表于 12-22 08:03

    求一种在Arm服务器上Robox安卓容器的构建与使用方案

    1、在Arm服务器上Robox安卓容器方案的构建编译过程和使用方法随着云计算相关产业蓬勃发展,用户对移动设备的弹性需求推动出云手机、云游戏等概念,云手机和云游戏就是将云计算技术运用于网络终端服务
    发表于 06-17 14:34

    如何在ARM上构建一个web服务器

    本人现在在做ARM上构建一个web服务器,就是将网页放在这个服务器上,然后接入internet可以通过PC机上网访问即可。用的是C#编程,实际实现上还是有些模糊,希望有心人能教教俺,最好能给出
    发表于 10-28 10:55

    ESP32 Web服务器可以向外部Rest API发起HTTP请求吗?

    我想知道以下是否可行...... 1)作为网络服务器运行的 ESP32 可以向外部 Rest API 发起/发出 HTTP 请求吗?2) 我是否需要同时将其设置为服务器和客户端,或者 ESP-IDF
    发表于 03-01 06:22

    如何用ESP8266构建网络服务器

    我正在开始一个关于用 ESP8266 构建网络服务器的系列文章 第一个故事是构建一个带有一些文本字段的网页。 将文本放入字段并将其发送到 ESP。
    发表于 04-28 07:21

    如何构建DNS服务器

    如何构建DNS服务器  在用TCP/IP协议族架设的网络中,每一个节点都有一个唯一的IP地址,用来作为它们唯一的标志。然而,如果让使用者来记住这
    发表于 02-01 11:56 1371次阅读

    服务器可以挖矿吗_云服务器怎么挖矿

    本文对云服务器的定义、对云服务器优势进行了详细分析。最后详细的介绍使用云服务器挖比特币的教程。
    发表于 01-08 17:19 3w次阅读
    云<b class='flag-5'>服务器</b>可以挖矿吗_云<b class='flag-5'>服务器</b>怎么挖矿

    服务器端发票识别api接口

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

    服务器端名片扫描识别API

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

    基于RAW API的UDP服务器设计

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