专栏首页技术那些事无服务器架构是小型创业公司的未来

无服务器架构是小型创业公司的未来

作者丨Aidan Hallett,技术顾问

来源丨https://www.infoq.cn/article/eIBj9SVgYXoqjlwx*RzU

当谈到 2019 年的后端 web 开发,这一领域的风景可谓十分壮阔,从 VM 到容器,再到无服务器功能,每个公司都有自己的优势。许多大型银行、政府机构和老牌公司仍然依赖于较老的技术来运行它们的应用程序。而优步(Uber)、网飞(Netflix)和 Monzo 银行等较年轻的公司受益于容器化和微服务等新技术,它们的发展速度更快、效率更高。有趣的是,如今 Netflix 约占所有互联网流量的 15%,超越了任何其他视频流媒体服务的流量,因此这家公司在应用程序规模化设计和运营方面处于技术最前沿也就不足为奇了。

把时间花在真正重要的事情上

可悲的事实是,很多时候技术并不重要。至少对用户来说不是这样。用户根本不关心应用程序的后端到底是用 Java、Go 还是 NodeJS 编程语言编写的。他们也不关心它是使用容器技术还是无服务器架构,在虚拟机上还是实体机上运行。用户只关心他们的用户体验,这个应用对用户来说有价值吗?它好用吗?它好看吗?

在科技创业公司的早期阶段,人们一直在测试新的假设。一个新的理论或想法提出来,需要为之进行快速测试,以验证你正在构建的东西是有用的。构建和测试特性的速度越快,反馈循环就会发生得越迅速,从而就越容易准确地找到用户想从你的产品中获得什么。

当构建新产品的团队非常小时,对于创业公司的时间利用而言,管理复杂的基础设施不太可能是高效的方式。任何对于应用程序进行管理而不是构建的工作,统统都算作是产品开发的开销。然而,一个重要的提醒是,请牢牢记住,持续集成 / 持续部署(CI/CD)非常有用。这些必要的基础设施能帮助你走得更快。

使用无服务器架构,你可以专注于应用程序的逻辑。网站或移动 APP 上的每个功能都转换为一个或多个 API 调用,这样就提供了一个或多个无服务器式的功能。假设每个无服务器的功能只负责一个特定的 API 调用,那么代码可以比相应的微服务或单片机实现要简单得多。我使用无服务器架构所做的大部分工作几乎没有使用任何库。

你的应用程序突然产生了大量流量?不用担心,无服务器技术有现成可用的解决方案。无需管理,服务器或容器就能完成对流量的自适应扩展。你还可以选择与随需应变的数据库进行集成,如 AWS DynamoDB 或 MongoDB Stitch,它们也可以随需自动伸缩。

刚开始不用付费

无服务器架构的一个重要卖点是,可以按用户请求数量付费。与 VM 技术不同的是,你永远不会在服务空闲或没有用户使用时为基础设施付费。然而,重要的是,要正确地使用该技术,不要将之用于长时间运行、CPU 密集型的服务,因为如果这样做,将比只运行 VM 实例,比如 AWS EC2,花费更多。如果你以恒定的速率拥有较高的网络流量,当然你还是可以选择使用无服务器技术并支付更多的费用,但显然 EC2 的性价比会更高。

那么潜在的问题是什么呢?

无服务器架构也有其缺点,但完全是用例方面的相关问题。只要以正确的方式使用它,你就可以从多个方面获益——节约巨额的成本、缩短上市时间,以及减少开销中。

就像那句俗语一样,请不要用螺丝刀把钉子钉进墙上。

《Register》杂志引用了加州大学伯克利分校的一些研究人员对 AWS Lambda 进行的一些测试,其中之一是培训一个机器学习模型,并将其与 AWS EC2 进行比较。“在 EC2 上,执行该任务的成本比 Lambda 低 57 倍,而且 EC2 的延迟性能要好得多。” 对,所以让我们用无服务器技术来做它擅长的事情,即基于事件驱动的服务。

在设计无服务器架构的应用程序时,尽可能避免使用大型库是非常重要的。一旦使用大型服务,冷启动的时间可能会急剧增加,这就会对用户的体验产生负面影响。

如果你在科技领域,你可能听说过这个词——厂商锁定。随着无服务器架构得到越来越广泛的应用,许多云提供商已经发布了自己版本的无服务器功能。像无服务器这样的技术框架,尝试从云提供商抽离出来,并云提供商之间的数据迁移更加容易。有许多像 knative 和 kubeless 这样的无服务器解决方案,它们允许你在任何云甚至你自己的基础设施上使用 kubernetes 运行无服务器工作负载。

结语

简而言之,计算的新时代已经来临。无服务器架构让你专注于构建产品,而不是管理服务器。对于小型创业企业来说,无论是在产品上市速度还是成本节约方面,都有巨大的益处。

本文分享自微信公众号 - 程序猿技术大咖(cxyjsdk),作者:Aidan Hallett

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jenkins实战(二):Jenkins各项配置选项

    从正式使用Jenkins之前,将会逐步接触到Jenkins的各种配置,通过各种配置来完成各项不同的工作。本文将简单介绍一下Jenkins中的各项配置选项,以便后...

    xcbeyond
  • JDK1.8新特性(六):Stream的终极操作,轻松解决集合分组、汇总等复杂操作

    上一篇JDK1.8新特性(五):Stream,集合操作利器,让你好用到飞起来,主要讲解了关于Stream的基本操作,可以轻松摆脱"遍历、再遍历、再运算"等复杂操...

    xcbeyond
  • Jenkins实战(一):Jenkins入门及安装

    Jenkins对于开发者而言,应该不会陌生。在软件开发、部署阶段,为了实现自动化,大家都会首选Jenkins工具来完成构建自动化,是开发中不可缺少的一部分。本系...

    xcbeyond
  • 建站教程:云服务器使用(完整版)

    (学生主机免认证链接)购买地址:https://cloud.tencent.com/redirect.php

  • Burp之Collaborator使用技巧

    在我们进行渗透测试的时候,可能会遇到这种情况,测试xss的时候插入了脚本,无法立即触发,例如提交反馈表单,需要等管理员打开查看提交信息时才会触发,或者是无回显的...

    cn0sec
  • 云服务替代私有服务器的九个原因

    如今,私有服务器的应用已经超出了人们的预期,然而其所面临最大的挑战就是云计算应用。虽然大多数组织已经转向采用云服务器,但一些传统公司仍然在采用他们的私有服务器开...

    静一
  • Linux下更改SSH端口

    最近发现之前买的好几台VPS服务器都被服务商停止了,发TK咨询全部被告知说被DDOS流量太大,所以把服务器给暂停了。可是我的服务器只有操作系统,没有任何服务的,...

    行 者
  • 对于大数据大流量情况下微软架构的水平扩展的遐想(瞎想)

    最近回顾SAAS的书籍,书中的扩展架构都有点让我痴迷,但书中介绍的都是以Java,Apache,JBoss,Hadloop等技术实现负载均衡,大数据处理,对于微...

    脑洞的蜂蜜
  • MySQL实现主从复制功能

    MySQL安装参考之前的文章https://www.jianshu.com/p/452aa99c7476有讲解。

    Happyjava
  • Asp.Net MVC4下设置W3P3(IIS)调试步骤

    环境】 VS 2012  IIS7.5 【问题】   MVC项目在创建时和APS.NET不同,不能够选择服务器类型,不能够直接把项目创建到IIS上。      ...

    郑小超.

扫码关注云+社区

领取腾讯云代金券