V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
wenjun19931112
V2EX  ›  云计算

到底什么是“云原生”?

  •  
  •   wenjun19931112 · 2021-10-12 16:38:28 +08:00 · 6882 次点击
    这是一个创建于 1165 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了很多解释,还是云里雾里。

    现在很多技术文章动不动就是“云原生”,是我落伍了吗?

    34 条回复    2021-10-13 21:34:14 +08:00
    est
        2
    est  
       2021-10-12 16:51:35 +08:00
    CNCF 贴牌的东西就是云土著。
    ch2
        3
    ch2  
       2021-10-12 16:56:55 +08:00
    云原生就是打包成容器
    Chinsung
        4
    Chinsung  
       2021-10-12 17:14:41 +08:00
    现在看来,云原生是基于服务网格上发展来的,因为大部分有 sidecar,反而感觉不需要注册发现限流熔断等考虑,所以叫“原生”。
    个人感觉,你现在直接写个 spring boot 单项目,也可以叫云原生。
    uleh
        5
    uleh  
       2021-10-12 17:32:03 +08:00   ❤️ 3
    简单来说,就是你的应用代码在编写的时候,所有的基础设施都基于云服务来考虑,就是云原生。
    hyq
        6
    hyq  
       2021-10-12 17:34:45 +08:00
    云原生就理解成兼容 k8s
    tanxnative
        7
    tanxnative  
       2021-10-12 17:40:53 +08:00
    现在很多都是把云原生=容器化
    其实很简单,你的服务符合云原生的 12 要素 那么就云原生了
    而不是 服务容器化就云原生了
    比较传统的例子: mysql 可以容器化,那么云原生了吗?
    wunonglin
        8
    wunonglin  
       2021-10-12 17:41:09 +08:00
    我也想知道代码怎么写才算云原生。到处都是名词,麻了麻了
    kidlj
        9
    kidlj  
       2021-10-12 18:02:36 +08:00
    把 K8S 为中心的技术叫“云原生”还是很合适的,因为 K8S 抽象了主要云厂商的基础设施(存储,计算,网络 etc.),让你开发和部署到云厂商的应用是可移植的,不再深度绑定某一个云厂商(虽然仍然会有绑定,但迁移成本小很多)。
    kidlj
        10
    kidlj  
       2021-10-12 18:08:15 +08:00   ❤️ 2
    另一点,自己在本地搭建的 K8S 环境基本体会不到什么叫“云原生”,只不过是一个容器调度系统,因为缺少了很多云厂商的 provider 组件。如果你试用一下 Azure 或 AWS 的 Kubernetes 服务,以 Azure AKS 为例,Service 可以自动映射为的 Load balancer,PV 映射为 Azure 磁盘或块存储,还可以根据负载 metrics 自动缩放节点。也就是说,你只用在 Azure 的界面点点点几下,然后写几个 Service,Ingress,PVC,就可以获得一个自动伸缩的支持很大并发的服务集群,而且这还不用绑定特定厂商,方便移植。从这点上考虑可能更能明白云原生的意义。
    paradoxs
        11
    paradoxs  
       2021-10-12 18:21:39 +08:00
    这种摸不着头脑的词,每隔一段时间都会出来一个

    下次该怎么编好呢?

    云宇宙 如何
    arischow
        12
    arischow  
       2021-10-12 19:40:53 +08:00 via iPhone
    我觉得是基于 Kubernetes,但在云供应商这方面是 agonostic 的能称作云原生
    lance6716
        13
    lance6716  
       2021-10-12 20:44:07 +08:00 via iPhone
    以存储为例,不再保存在硬盘上(有 IO 带宽不能调,不能共享访问,磁盘坏道风险等限制),而是根据访问特性保存在 S3,ebs,efs 上,享受它们的新特性
    justfly
        14
    justfly  
       2021-10-12 20:50:29 +08:00
    cloud native,顾名思义,本地云。
    janxin
        15
    janxin  
       2021-10-12 21:22:07 +08:00
    @paradoxs 定义晚了,现在叫元宇宙
    ReferenceE
        16
    ReferenceE  
       2021-10-12 21:48:42 +08:00 via Android
    Sometimes native (主要是负责打包成镜像吧
    billlee
        17
    billlee  
       2021-10-12 22:06:04 +08:00
    云原生不只是 k8s. 比如现在很多大数据组件从用 HDFS 做底层存储,迁移到 s3 做底层存储,这也能算是云原生。
    jorneyr
        18
    jorneyr  
       2021-10-12 22:11:25 +08:00
    感觉是除了业务代码需要自己写,什么服务器,存储,负载,MQ 等消息中间件都用人家 (云) 提供的 API,只要把应用打包上传到云环境里 (exe,可自行文件,jar 等)。
    wertasy
        19
    wertasy  
       2021-10-12 22:22:13 +08:00 via Android
    老一代应用们都是直接部署在物理服务器上的,得益于云计算技术的成熟之后都纷纷上云了,那生在云上长在云上的新一代应用就可以称之为云原生了呀
    joesonw
        20
    joesonw  
       2021-10-13 09:03:42 +08:00 via iPhone
    换云不换代码,就云原生了。
    jorneyr
        21
    jorneyr  
       2021-10-13 09:09:58 +08:00
    @joesonw 那玩不了了,基本都是云绑定了,上了船就很难下来了。
    yalin
        22
    yalin  
       2021-10-13 09:24:04 +08:00
    CNCF
    joesonw
        23
    joesonw  
       2021-10-13 09:24:56 +08:00 via iPhone
    @jorneyr 云绑定一般说是只能在一个云上,因为基础组件的原因。云原生就是为了打破这个僵局,可以轻松换云,甚至是私有云。
    yalin
        24
    yalin  
       2021-10-13 09:25:13 +08:00
    部署到云厂商并使用相关云厂商的服务,我是这么理解的。
    joudev
        25
    joudev  
       2021-10-13 09:27:16 +08:00   ❤️ 1
    云原生并不是某种具体技术,而是一类思想的集合,用来帮助快速构建和运行应用程序,其中既涵盖着一整套技术体系(容器、服务网格、微服务、不可变基础设施和声明式 API ),也包含着应用开发的管理要点( DevOps 、持续交付、康威定律[3])。只要符合这类思想的应用就可以称为云原生应用。
    可以在这里看看云原生技术体系的发展: https://mp.weixin.qq.com/s/H__pRS844SJSPiYfCqzozA
    betainCao
        26
    betainCao  
       2021-10-13 09:52:12 +08:00
    @wunonglin #8 不是常规的那种应用,应用以 crd 、controller 的模式来开发,更加云原生
    pkoukk
        27
    pkoukk  
       2021-10-13 10:39:13 +08:00
    老一代环境需要部署在物理服务器上的时候,经常要为了避免环境冲突或者解决这台机器上的某些特殊问题,每台机器使用的配置不同,这就没法云原生。
    容器化之后,每个 pod 都是一致的,可替换的,其实就可以认为云原生了。
    outyua
        28
    outyua  
       2021-10-13 10:48:47 +08:00
    当你在设计应用的时候, 不需要考虑机器相关, 只是觉得扔上去了, 就行了
    vinle
        29
    vinle  
       2021-10-13 11:57:50 +08:00
    @paradoxs 好主意,但现阶段是元宇宙,结合一下,下阶段可以是:云元宇宙 /元云宇宙
    julyclyde
        30
    julyclyde  
       2021-10-13 12:47:47 +08:00
    “去本地化”
    不要在本地文件系统里保存状态
    输入输出全都通过网络

    看看 12factors
    wangyu17455
        31
    wangyu17455  
       2021-10-13 17:21:49 +08:00
    @paradoxs 元宇宙(bushi)
    wx497657341
        32
    wx497657341  
       2021-10-13 17:37:20 +08:00
    玩玩 aws 就知道什么是云原生了
    darkengine
        33
    darkengine  
       2021-10-13 17:39:37 +08:00
    我的理解是 serverless,连 docker 之类都不需要,写好你的业务代码往 AWS 或者其他云服务商那里一扔就可以。
    chaleaoch
        34
    chaleaoch  
       2021-10-13 21:34:14 +08:00
    就是天生适合上云的技术.

    对应的就是之前的老的技术, 也可以上云, 但是需要适配.

    大概是这个意思.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:45 · PVG 02:45 · LAX 10:45 · JFK 13:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.