5

云原生到底是做啥的,有前途吗?

 3 years ago
source link: https://www.v2ex.com/t/797908
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

云原生到底是做啥的,有前途吗?

  wellwell · 1 天前 · 2921 次点击

入职一年做的数据开发,hive spark 这些,系统比较成熟,挑战不大,领导也不看好我,遂准备转岗。

公司里数据开发坑比较少,大概率得换了。主要是考虑 java 后台开发,但是一个朋友给我推了个云原生岗位,感觉听起来挺牛的,但我也不太懂。

v 站的朋友们帮忙分析下云原生有前途不?细分岗位有哪些?

第 1 条附言  ·  16 小时 5 分钟前

谢谢大家,看了几个描述,感觉差不多理解了。

可能是要做云原生的基建吧,我司是家云服务提供商,有前途不,和 java 后台比起来。
24 条回复    2021-08-26 09:24:39 +08:00

ica10888

ica10888   1 天前

kubernetes 相关,感觉和大数据差不多,只是一个方向而已。

alexkkaa

alexkkaa   1 天前 via Android

能说人话吗 这个词不知道是谁发明的 估计是传销头目抓耳挠腮忽悠外行的

wellwell

wellwell   1 天前 via iPhone

@alexkkaa 我也被搞晕了 查了一下没查明白。感觉是一个很大的方向

xiadong1994

xiadong1994   1 天前 via iPhone

云原生就是在设计之初就只考虑部署在云计算平台上,并对此做针对性设计。

XTTX

XTTX   1 天前

给你个例子你就大概懂了,gitpod 是 clound native app 。它是个 IDE, 打开是网页,可以直接从 github repo 里打开项目,编译完了可以直接存进去,它还会给你分配要给独立的容器,你可以跑你的程序。你在 gitpod 里 npm run start, 跳出来的不是 localhost:xxxx 而是一个外网网址。 这就是 cloud native 。

FreeEx

FreeEx   23 小时 34 分钟前

主要有三个方面的定义吧
1. 应用容器化
2. 面向微服务架构
3. 应用支持容器的编排调度

wangxin13g

wangxin13g   19 小时 58 分钟前   ❤️ 1

容器相当于分布式环境下的进程
k8s 相当于分布式环境下的系统
云原生组件相当于分布式环境下的 top iptables

baiyang256101

baiyang256101   19 小时 32 分钟前 via Android

难道是项目从零开始到上线全程云开发部署?👾

tanhui2333

tanhui2333   18 小时 11 分钟前

简单的说下我的理解
云:服务端
原生:服务发现、治理、日志、等不依赖某个具体语言框架的实现,由服务端来组织。由任意语言用最合适粒度来实现某个具体业务

caoyouming

caoyouming   17 小时 52 分钟前

云原生吧,就是你的应用设计之初就生长在云上,充分利用云的优势,能非常方便的进行应用弹性伸缩等。
然后方向包括:微服务、devops 、持续交付( CICD )、容器化。
然后这个几个点又包含了很多很多分开的点,总之就是原生为云而设计,在云上以最佳姿态运行,充分利用和发挥云平台上的弹性和分布式的优势!

chenshun00

chenshun00   17 小时 47 分钟前

云原声,是一个概念,兄弟们,是一个概念,它描述的是一系列要求,例如服务发现,弹性扩容,自动伸缩等等,是一个描述的缩影,并不是某一项技术的特指。换句话说,可以理解为云原声是一个规范,描述了达到了某些条件的情况下就可以说是云原生,只是现在 k8s 实现了这个"规范",是目前云原生的实现的一个最佳实践,所以大家用这个进行了特指,并不是说 k8s 就代表了云原生,它只是云原生的一个子集。例如 Servlet 只是一个规范,Tomcat 实现了 Servlet 规范这两者这件的关系。

young1lin

young1lin   17 小时 18 分钟前   ❤️ 1

云原生,CloudNative,Josh Long 有一本书《 Cloud Native Java 》,我去年看完了,我不建议你看。我把一些重点信息给你说下。其实总结就是,你的应用就是 “长” 在云服务器上的应用,随着云服务器出生而生。


十二要素程序的核心思想

+ 使用**声明**的方式来搭建自动化环境,最大限度地减少新加入项目的开发人员的时间和成本。
+ 与底层操作系统之间建立清晰的约定,在执行环境之间提供**最大的可移植性**。
+ 适合**部署**在现代的**云平台上**,无须提供服务器和系统管理工具。
+ **最大程度减少**开发环境与生产环境之间的**区别**,通过**持续部署**获得最大的灵活性。
+ 可以在不对工具、架构或开发实践带来重大变动的前提下,进行**水平扩展**。

十二要素程序的实践

| 代码库 | 一份版本控制下的基准代码库,多份部署 |
| ----------------- | :------------------------------------------- |
| 依赖 | 显示声明和隔离依赖关系 |
| 配置 | 在环境中存储配置 |
| 后端服务 | 把后端服务当作附加资源 |
| 构建、发布、运行 | 严格分离构建和运行阶段 |
| 进程 | 将应用程序作为一个或多个无状态进程执行 |
| 端口绑定 | 通过端口绑定暴露服务 |
| 并发 | 通过进程模型进行扩展 |
| 易处理 | 通过快速启动和正常关机来最大限度地提高健壮性 |
| 开发 /生产环境一致 | 尽可能保持开发、预发布和生产环境的配置一致 |
| 日志 | 将日志视为事件流 |
| 管理进程 | 将管理任务作为一次性进程运行 |

构建、发布、运行

**构建阶段**

构建阶段将应用程序的源代码编译或打包到一个程序包中。创建的包被称为一次构建物。

**发布阶段**

发布阶段需要将某次构建与其配置相结合。随后,创建出的发布文件应该可以在某个执行环境中运行。无论是使用版本号还是时间戳,每个版本应该有一个唯一的标识符。每个发布文件都应该被添加到一个目录中,可以通过发布管理工具回滚到之前的发布版本。

**运行阶段**

运行阶段(通常称为运行时)是指在可执行环境中运行一个指定的应用版本。

young1lin

young1lin   17 小时 14 分钟前

对了,Cloud Foundry 应该是比较早做的云原生的一家公司,其一的创始人著有《微服务架构设计模式》,其实 Cloud Foundry 很多是 Pivotal 团队的,也就是开发 Spring Boot 的团队。

chaleaoch

chaleaoch   17 小时 5 分钟前

@chenshun00 你说的不对 servlet 是一个规范没错. 云原生有规范吗? 有可落地的协议吗? 没有吧?

wellwell

wellwell   16 小时 7 分钟前

@baiyang256101 我司做的事情应该和阿里云类似,大概是提供基建吧。

holulu

holulu   8 小时 10 分钟前

@chaleaoch 都还在频繁演化的事物,肯定都没有规范。看哪个大厂最先垄断之后,它就是事实上的规范了。

chenshun00

chenshun00   6 小时 0 分钟前

@chaleaoch 我重点在于阐述云原生是一个概念,并不是某一项特定的技术,只是拥有某些性质,虽然没有说是规范,但性质和规范差别其实不大,虽然举例有不恰当之处,但是我觉得也可以说明这个关系了。符合云原生描述的性质 /规范,就可以说应用是云原生的,并不一定说云原生必须得用 k8s

yalinyalin   5 小时 55 分钟前

CNCF 被 Google 大佬强力充值

chaleaoch

chaleaoch   5 小时 30 分钟前

@holulu 微服务这么多年了有规范吗?

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK