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

2021-08-25 13:33:22 +08:00
 wellwell

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

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

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

6012 次点击
所在节点    程序员
29 条回复
ica10888
2021-08-25 14:05:01 +08:00
kubernetes 相关,感觉和大数据差不多,只是一个方向而已。
alexkkaa
2021-08-25 14:07:00 +08:00
能说人话吗 这个词不知道是谁发明的 估计是传销头目抓耳挠腮忽悠外行的
securityCoding
2021-08-25 14:12:08 +08:00
cloudbeyond
2021-08-25 14:20:21 +08:00
wellwell
2021-08-25 14:31:40 +08:00
@alexkkaa 我也被搞晕了 查了一下没查明白。感觉是一个很大的方向
xiadong1994
2021-08-25 14:32:58 +08:00
云原生就是在设计之初就只考虑部署在云计算平台上,并对此做针对性设计。
XTTX
2021-08-25 14:40:10 +08:00
给你个例子你就大概懂了,gitpod 是 clound native app 。它是个 IDE, 打开是网页,可以直接从 github repo 里打开项目,编译完了可以直接存进去,它还会给你分配要给独立的容器,你可以跑你的程序。你在 gitpod 里 npm run start, 跳出来的不是 localhost:xxxx 而是一个外网网址。 这就是 cloud native 。
FreeEx
2021-08-25 15:20:04 +08:00
主要有三个方面的定义吧
1. 应用容器化
2. 面向微服务架构
3. 应用支持容器的编排调度
wangxin13g
2021-08-25 18:55:49 +08:00
容器相当于分布式环境下的进程
k8s 相当于分布式环境下的系统
云原生组件相当于分布式环境下的 top iptables
dazhangpan
2021-08-25 19:21:49 +08:00
baiyang256101
2021-08-25 19:22:14 +08:00
难道是项目从零开始到上线全程云开发部署?👾
echo1937
2021-08-25 20:34:27 +08:00
https://jimmysong.io/kubernetes-handbook/cloud-native/cloud-native-definition.html

这个链接有初步的阐述,目前来说“云原生”是布道师嘴里最长听到的词,

各种语言、各种框架、各个厂家都在定义和推广自己的“云原生”理念。
tanhui2333
2021-08-25 20:43:02 +08:00
简单的说下我的理解
云:服务端
原生:服务发现、治理、日志、等不依赖某个具体语言框架的实现,由服务端来组织。由任意语言用最合适粒度来实现某个具体业务
caoyouming
2021-08-25 21:02:24 +08:00
云原生吧,就是你的应用设计之初就生长在云上,充分利用云的优势,能非常方便的进行应用弹性伸缩等。
然后方向包括:微服务、devops 、持续交付( CICD )、容器化。
然后这个几个点又包含了很多很多分开的点,总之就是原生为云而设计,在云上以最佳姿态运行,充分利用和发挥云平台上的弹性和分布式的优势!
chenshun00
2021-08-25 21:07:44 +08:00
云原声,是一个概念,兄弟们,是一个概念,它描述的是一系列要求,例如服务发现,弹性扩容,自动伸缩等等,是一个描述的缩影,并不是某一项技术的特指。换句话说,可以理解为云原声是一个规范,描述了达到了某些条件的情况下就可以说是云原生,只是现在 k8s 实现了这个"规范",是目前云原生的实现的一个最佳实践,所以大家用这个进行了特指,并不是说 k8s 就代表了云原生,它只是云原生的一个子集。例如 Servlet 只是一个规范,Tomcat 实现了 Servlet 规范这两者这件的关系。
young1lin
2021-08-25 21:36:27 +08:00
云原生,CloudNative,Josh Long 有一本书《 Cloud Native Java 》,我去年看完了,我不建议你看。我把一些重点信息给你说下。其实总结就是,你的应用就是 “长” 在云服务器上的应用,随着云服务器出生而生。


十二要素程序的核心思想

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

十二要素程序的实践

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

构建、发布、运行

**构建阶段**

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

**发布阶段**

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

**运行阶段**

运行阶段(通常称为运行时)是指在可执行环境中运行一个指定的应用版本。
young1lin
2021-08-25 21:39:50 +08:00
对了,Cloud Foundry 应该是比较早做的云原生的一家公司,其一的创始人著有《微服务架构设计模式》,其实 Cloud Foundry 很多是 Pivotal 团队的,也就是开发 Spring Boot 的团队。
FAQ999
2021-08-25 21:49:12 +08:00
chaleaoch
2021-08-25 21:49:30 +08:00
@chenshun00 你说的不对 servlet 是一个规范没错. 云原生有规范吗? 有可落地的协议吗? 没有吧?
wellwell
2021-08-25 22:47:44 +08:00
@baiyang256101 我司做的事情应该和阿里云类似,大概是提供基建吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/797908

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX