V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
GeekSuPro
V2EX  ›  问与答

怎么理解 Serverless?能不能以一个 Java 后端的角度告诉我他能做什么?没看明白

  •  
  •   GeekSuPro · 2023-06-12 16:54:27 +08:00 · 1951 次点击
    这是一个创建于 559 天前的主题,其中的信息可能已经有所发展或是发生改变。
    14 条回复    2023-06-13 09:15:34 +08:00
    sentinelK
        1
    sentinelK  
       2023-06-12 17:08:03 +08:00   ❤️ 1
    Serverless 是一种概念,代表着你不需要去维护与管理“服务器”本身。
    比如扩容,比如系统更新,比如系统安全。然后云厂商通过占用时长、调用频次、硬件压力等维度作为收费依据。
    作为开发者你只需要专注于业务开发就好。

    代价就是每个云服务商的无服务计算的定义与使用方法各有区别。所以在开发层面会被运营商绑定。

    在其上最普遍的,最容易接触到的应用,目前是各种平台下的“云 API”或者是“云函数”。
    即通过 API 接口的方式直接提供最大化通用性质的服务。
    Mithril
        2
    Mithril  
       2023-06-12 17:12:14 +08:00
    你可以认为是个托管的 JVM ,你写完那些 class 直接扔上去就能跑。不用管这 JVM 到底运行在哪里,容错什么的。有请求过来厂家会帮你开个 JVM 实例去接。

    会按照 JVM 使用率收费,计费也是一大坑。
    Gonlandooo
        3
    Gonlandooo  
       2023-06-12 17:14:35 +08:00
    你就把平台当成一个 idea ,你写完 controller 直接点运行就完事了,不用你打包,不用考虑服务器,不用考虑 jvm 配置,啥都不用
    qinfengge
        4
    qinfengge  
       2023-06-12 17:29:28 +08:00
    腾讯云函数明显的启动慢,不过胜在稳定。
    写了一个简单的短视频 API ,只包含获取播放路径的,打包成 docker ,然后放上去自己用还是可以的
    mooyo
        5
    mooyo  
       2023-06-12 17:39:19 +08:00
    Serverless 就是只让你写代码,不考虑运维,环境由云厂商提供。
    zzzzzzZ
        6
    zzzzzzZ  
       2023-06-12 17:46:06 +08:00
    你可以在这里白嫖到 cf 倒闭:[https://workers.cloudflare.com/]
    LLaMA2
        7
    LLaMA2  
       2023-06-12 17:53:09 +08:00
    如果是标准的工作流程,JAVA 后端是不设计运维工作。
    ServerLess 是站在运维的角度去看问题,他不需要你维护管理复杂的运行环境,监控,迁移,扩容等等等工作。
    而你是个后端,这本来就不是你要操心的事情。
    lightjiao
        8
    lightjiao  
       2023-06-12 17:57:55 +08:00 via iPhone
    借贴问一下,serverless 能持久化数据么?
    akira
        9
    akira  
       2023-06-12 18:03:02 +08:00
    代码发版的时候,不是全套东西打包发布,而是只发布你的某个接口 或者 某个函数
    Akitora
        10
    Akitora  
       2023-06-12 18:03:03 +08:00 via Android
    无服务现在还没有一个特别权威的“官方”定义,但它的概念并没有前面各种架构那么复杂,本来无服务也是以“简单”为主要卖点的,它只涉及两块内容:后端设施( Backend )和函数( Function )。

    后端设施是指数据库、消息队列、日志、存储,等等这一类用于支撑业务逻辑运行,但本身无业务含义的技术组件,这些后端设施都运行在云中,无服务中称其为“后端即服务”( Backend as a Service ,BaaS )。
    函数是指业务逻辑代码,这里函数的概念与粒度,都已经很接近于程序编码角度的函数了,其区别是无服务中的函数运行在云端,不必考虑算力问题,不必考虑容量规划(从技术角度可以不考虑,从计费的角度你的钱包够不够用还是要掂量一下的),无服务中称其为“函数即服务”( Function as a Service ,FaaS )。

    无服务的愿景是让开发者只需要纯粹地关注业务,不需要考虑技术组件,后端的技术组件是现成的,可以直接取用,没有采购、版权和选型的烦恼;不需要考虑如何部署,部署过程完全是托管到云端的,工作由云端自动完成;不需要考虑算力,有整个数据中心支撑,算力可以认为是无限的;也不需要操心运维,维护系统持续平稳运行是云计算服务商的责任而不再是开发者的责任。在 UC Berkeley 的论文中,把无服务架构下开发者不再关心这些技术层面的细节,类比成当年软件开发从汇编语言踏进高级语言的发展过程,开发者可以不去关注寄存器、信号、中断等与机器底层相关的细节,从而令生产力得到极大地解放。
    jklopsdfw
        11
    jklopsdfw  
       2023-06-12 18:07:14 +08:00 via iPhone   ❤️ 1
    @lightjiao 可以 db 也能 serverless ,可以理解为 serverless 软件与 serverless 软件之间交互
    zzzzzzZ
        12
    zzzzzzZ  
       2023-06-12 18:14:41 +08:00
    假设你作为小型企业主,或者个人创业人员,你有一个很棒的项目期望放到互联网上给用户使用。
    面临的第一大痛点就是服务器与运维知识 /人员的成本。

    云计算,共享 /弹性资源解决了一部分服务器的问题。现在很多程序员都能用很低廉的价格去「租一台」服务器,部署自己的项目 /博客。而不用去「买服务器」「租机柜」

    接下来你还会遇到「域名解析」「买带宽」「 CDN 加速」「 S3 加速」「弹性伸缩与扩容」「 SLB 服务器负载」「流控熔断」「 Service mesh 」「制品与容器管理」「 O11Y 可观察性指标追踪与治理」等等
    这些都是你现在的云厂商「腾讯云」提供的服务,是「运维技能」+「云原生技能」+「 devOps 技能」总之都是架构师的技能和知识,需要亲自上手操作和管理。

    上面的这些大部分 Serverless 都能给你全包,然后按它制定的规则计费。还有很多 Serverless 做不到的功能,一般小企业或者个人创业者也用不上。
    当然 Serverless 也带来很多不便,如果你对运维一无所知,这些不便也就无所谓了。

    你可以在这里白嫖到 cf 倒闭:[https://workers.cloudflare.com/] 每天不超过 10 万次请求不收费
    Rocketer
        13
    Rocketer  
       2023-06-12 22:02:41 +08:00 via iPhone
    serverless 就是字面意思——你没有服务器

    准确的说,是你没有始终占用服务器,而是调度系统根据需要自动创建服务实例,并加载你的代码运行,闲置一段时间后又自动释放资源。从而实现服务器资源的按需分配,对小用户来说省钱(不用的时候不要钱),对大用户来说有海量备用机自动扩容(流量暴涨的时候也不会挂)。

    serverless 并不局限于函数计算,AWS 等还可以按需运行 docker image ,给开发者更大的自由。
    NewYear
        14
    NewYear  
       2023-06-13 09:15:34 +08:00
    @zzzzzzZ

    怎么看怎么复杂,要不还是用传统的模式吧……哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3092 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:43 · PVG 08:43 · LAX 16:43 · JFK 19:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.