怎么样可以算一名云原生工程师?
这个问题来自前段时间知识星球里面一位同学的提问:
广义上的云原生工程师需要区基础设施工程师和业务实现工程师吗?怎么样才算一名云原生工程师?
招聘软件上大多招聘 Go 的高级开发工程师,任职要求里面很明显是业务设计开发,但是也会要求熟悉 Kubernetes,深入理解容器,Devops 等。因为我在平时工作中很少会主动操作 Kubernetes,所以招聘软件上要求熟悉 Kubernetes,目的是让你工作中了解 kubernetes 特性,时刻提醒自己基于 Kubernetes 做开发,尽量让自己的服务是无状态的还是会有其他目的? 或者换个问法,Go 的高级开发工程师和云原生工程师(业务方向)本质区别是什么?
最近在和多个人聊到云原生相关的话题时,发现每个人对云原生的定义和对云原生技术理解都很不一样。 以至于很多人会问我,我学习云原生需要从 Java/.NET/xxx 语言转 Go 吗?
回答这个问题,需要从『云原生的基础设施』和『遵循云原生架构设计的应用系统』两个方面来看待云原生。首先,云原生基础设施的方向,和以往的中间件/infra 平台开发本质上并没有什么不同,做的事情也都是构建应用系统里做业务逻辑支撑的基础组件,比如 容器平台,Devops 平台,微服务治理框架,各种中间件的管理和运维等。
当然值得一提的是,Golang 凭借着简单的语法和友好的网络/并发机制,是目前做云原生框架和平台的首选。除此之外,还需要掌握的基础技能包括:操作系统,网络,分布式协议等。
其次,如果你一直做的是应用系统开发或者业务架构设计,对于了解和深入云原生,我的观点是建议继续使用之前的语言,不需要重新学习和转型 Golang。
和开发基础设施平台不同,基于云原生架构来设计应用系统,并不要求你具备很多的底层技术能力,更多的要求是掌握云原生四要素提到的,比如对 DevOps 和敏捷开发,微服务/云原生架构的原则等,在深度上了解各种云原生框架/微服务框架 (这里列举一些,比如 Kubernetes,Jenkins/Gitlab,Nacos,Istio,Dapr,Prometheus,Skywalking…) 的使用,而运维则交给基础架构或 SRE 团队,让专业的人做专业的事情。
今年来看,云原生仍然是一个值得投资学习的技术方向,一方面云原生仍然是未来几年的技术趋势,合理的使用云原生技术对企业 IT 系统开发维护都有不错的降本增效成果。最近讲一下我认为的云原生的一些细分方向目前的成熟度:
容器和 Kubernetes:趋于成熟稳定,针对 Kubernetes 的管理工具也有很多,入门难度在持续降低。
可观测性:Opentelemetry 在去年是 CNCF 活跃度前二的项目,我看到的也是 Opentelemetry 的使用率在持续提升,是一个不错的学习方向。但可观测性的整体解决方案还是比较复杂,需要 Opentelemetry (数据采集) + Jaeger ,Prometheus ,ELK (后端)+ Grafana (展示前端) 组合使用,或者使用 SkyWalking 这种一体化的 APM 系统
开发工具和效能:代码托管,CI/CD 工具也偏向稳定,使用常见的 Gitlab ,Jenkins / ArgoCD 等
微服务:侵入式微服务框架已经比较成熟了(包括云原生 API 网关,配置中心,注册中心)。但 Service Mesh 技术因为复杂度的问题仍没有解决,大规模落地并不理想
应用管理:PaaS 也是一个偏成熟的方向,也有 Kubevale 这种提供应用模型定义的平台,使得 PaaS 构建门槛进一步降低
Dapr:个人对 Dapr 的设计也比较喜欢,但客观来说 Dapr 的落地还需要很长时间,是一个可以投资的方向
Serverless:未来看好,但现在除云上的 FaaS 使用较多外,Serverless 整体的普及和落地也需要一个漫长的过程,建议投资关注
Ebpf:在云原生安全和无侵入可观测性方向有较大的空间,有兴趣可以学习
AIOps:过去几年我对 AIOps 有较多研究,但现在我感觉这个方向并没有它宣传的那么美好,我的看法是可以作为可观测性的一个辅助
未来企业对云平台和云原生技术的使用成本会更多关注,促生了 FinOps 的发展。
相关内容拓展:(技术前沿)
近 10 年间,甚至连传统企业都开始大面积数字化时,我们发现开发内部工具的过程中,大量的页面、场景、组件等在不断重复,这种重复造轮子的工作,浪费工程师的大量时间。
针对这类问题,低代码把某些重复出现的场景、流程,具象化成一个个组件、api、数据库接口,避免了重复造轮子。极大的提高了程序员的生产效率。
推荐一款程序员都应该知道的软件 JNPF 快速开发平台,采用业内领先的 SpringBoot 微服务架构、支持 SpringCloud 模式,完善了平台的扩增基础,满足了系统快速开发、灵活拓展、无缝集成和高性能应用等综合能力;采用前后端分离模式,前端和后端的开发人员可分工合作负责不同板块,省事又便捷。
版权声明: 本文为 InfoQ 作者【高端章鱼哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/e13be26fd88967895afc2a656】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论