转载 | 白鹿第一帅
文章目录
前言
一、企业 IT 数字化转型的历程
1.1、阶段 1:服务器阶段
1.2、阶段 2:云化阶段
1.3、阶段 3:云原生阶段
二、云原生产业的发展趋势
2.1、云原生技术开始进入泛生产环境
2.2、趋势驱动市场需求,云原生人才短缺
三、云原生从业者的职业发展趋势
3.1、一个云原生解决方案架构师,值多少钱?
3.2、云原生开发者人才分布情况
3.3、云原生从业者典型职业发展路径
四、云原生技术分享
4.1、云原生技术核心底座:Docker 容器
4.2、云原生技术核心底座:Kubernetes
五、CCE(半托管式 K8S 集群)
5.1、CCE(半托管式 K8S 集群)技术原理
5.2、CCE 助力企业完美应对流量高峰
六、CCI(托管式 K8S 集群)
6.1、CCI(托管式 K8S 集群)技术原理
6.2、CCE 和 CCI 的对比
七、云原生应用核心技术:微服务
7.1、微服务技术原理
7.2、微服务发展历程
7.3、微服务的优势场景和挑战
7.4、什么时候需要微服务?
八、微服务引擎 CSE 技术原理
九、容器服务网络 ASM
9.1、容器服务网络 ASM 技术原理
9.2、CSE 和 ASM 的对比
十、开源 Devops 生态
总结
前言
在云原生应用中,微服务通常被用于构建应用的基础架构,以实现应用的分布式、模块化和可扩展性。微服务可以独立部署、独立扩展、独立升级,从而提供更好的容错性和可靠性。此外,微服务还可以与其他云原生组件如容器、服务网格等进行配合,构建出更为复杂的、高性能的云原生应用。因此,云原生应用和微服务是相互关联的概念,在设计和开发云原生应用时需要充分考虑微服务的使用和部署。在本文中我们将详细为大家分享云原生产业发展趋势、职业发展路径及关键技术。
一、企业 IT 数字化转型的历程
企业 IT 数字化转型的历程目前会分为三个大的阶段,分别是服务器、云化以及云原生化三个阶段,具体如下图所示:
1.1、阶段 1:服务器阶段
在服务器阶段,企业在构建自己的数字化系统时,需要购买底层硬件资源来构建自己的机房,包括交换机、存储、物理机等等设备,并且需要完成设备的安装调试,才能进行软件的开发以及部署。
那在整个过程中,就会遇到各种各样的问题,具体如下:
维护成本高。设备差异大,不同的硬件设备有不同的原厂商,就具有一定的设备差异性;操作系统复杂,不同的这种硬件设备之间的操作系统也是不一样的,在硬件系统的使用跟学习上也是有一定的成本;问题定位困难。
资源利用率低。在整个的软件开发的周期过程中会涉及到硬件的部署,周期会很长,而且在软件部署的初期,整体的资源利用率上也会比较低,那就会存在很多冗余的资源。
自动化程度低。需要去写比较多的脚本去做这种自动化运维和部署。
业务上线速度慢。毕竟前面有太多的周期去做底层机房的建设。
1.2、阶段 2:云化阶段
在云化阶段的过程中有很多的云厂商基于虚拟化技术,完成资源的统一管理,把对应资源做成松弛的、灵活配置,提供给所需企业,企业直接就可以在云上进行购买,实现资源的总自动化开通。
但是传统的云平台,也会存在一些问题:因为业务代码与基础架构相互割裂的因素,在一个企业中我们通常会将其分为两个部门,例如基础架构部和业务部门,基础架构部会去准备底层的资源,业务部门会去负责代码,以及做后期部署。举一个比较自动化程度不高的这种案例,在基础架构部准备虚拟机之后,将虚拟机会给到业务部门,由业务部门把这个外包上传,安装并重启服务,这个过程中会有非常多的人工操作,也有非常多的开销。
1.3、阶段 3:云原生阶段
当基础架构部跟业务部门如果部门比较多的时候,会出现一个问题——会有非常大的一个集群,服务就可能会达到几十上百上千的情况,那就复杂和繁琐了,这个时候我们就需要考虑到自动化,即上述的高可用的应用及代码部署的自动化平台和工具。这个时候,云原生的提出以及云原生平台的出现完美解决了上述存在的困难,实现应用的自动化部署、自动化扩缩容、自动化的配置以及高可用等。
二、云原生产业的发展趋势
2.1、云原生技术开始进入泛生产环境
当前云原生技术进入了泛生产环境,数据显示:
《“十四五”数字经济发展规划》提出 2025 年工业互联网平台应用普及率达到 45%,强调推动企业上云、推进云网协同与算网融合发展。
Canalys 数据显示,43.9% 的用户已在生产环境中采纳容器技术,超过七成的用户已经或计划使用微服务架构进行业务开发部署。现阶段已有 9% 的用户云原生相关投入已占总 IT 投入的一半以上,技术研发、运维是企业主要支出部分。
据 IDC 预测,到 2024 年,新增的生产级云原生应用在新应用的占比将增加到 60%。
我们统计容器技术采纳情况、微服务采纳情况及 Serverless 采纳情况对应图,具体如下图所示:
2.2、趋势驱动市场需求,云原生人才短缺
“未来的软件一定生长在云上”,云原生概念提出不到十年,但增长迅猛。据 CNCF 官方统计,截至 2020 年,全球云原生开发者累积超过 470 万,占比后端开发 36%。
国内在企业上云大趋势下,云计算相关的工作岗位每年以 26 %的速度增长,人才缺口高达 150 万。
相较学历,企业更看重云原生开发者的实践经验,例如,具有 5-10 年开发经验的架构师,很受市场青睐。
三、云原生从业者的职业发展趋势
3.1、一个云原生解决方案架构师,值多少钱?
一个云原生解决方案架构师,值多少钱?我们根据一个国内招聘网站公开显示数据进行查看,结果还是较为明朗的,具体如下图所示:
3.2、云原生开发者人才分布情况
我们采集来自 CSDN 对于云原生开发者整体人才分布情况统计,具体如下图所示:
根据上图,我们可以得出这样的结论:
云原生人才以华东地区的人才聚集量最为庞大。但其中不乏可变因素,河南、湖北、四川、湖南、陕西等中西部省份具备赶超的人口基数和经济实力。
对于很多非一线城市,普通高等院校及一些高等职业技术学院都有开设相关课程,输送了大量技术应用人才。此外,学习门槛较低、生活成本低廉,让具备一定教育资源和基础设施的二线城市也成为云原生开发者良好的成长沃土。
根据调查数据显示,20-40 岁是云原生开发者较为集中的工作年龄段。当前以 80、90 后为主力军。
3.3、云原生从业者典型职业发展路径
云原生从业者典型职业发展路径,我们将其分为三个阶段:分别是毕业后 1-3 年、毕业后 3-5 年以及 5 年以上,其所对应的岗位与应具备的能力具体如下图所示:
当前云原生人才供给远小于企业需求,尤其是架构师人才更为缺乏。
四、云原生技术分享
4.1、云原生技术核心底座:Docker 容器
云原生技术核心底座:Docker 应用及技术原理,具体如下图所示:
容器是操作系统内核自带能力,容器是在 Linux 内核实现的轻量级高性能资源隔离机制。
Docker 是容器技术之一,核心在于实现应用与运行环境整体打包以及打包格式统一。
虚拟机是操作系统级别的资源隔离,容器本质上是进程级别的资源隔离,所以容器可以秒级启动,比 VM 要轻量很多。
4.2、云原生技术核心底座:Kubernetes
我们在容器运行的时候,对于一些大的业务系统来说,业务和应用众多,运行一个容器肯定是不现实的,系统也比较复杂,我们就可能会用到更多的容器去做部署,那这个时候我们就需要用到一个工具,可以对这个容器做统一的编排调度,那这个时候我们就引入了 Kubernetes,本质用来简化微服务的开发和部署。
Kubernetes 应用及技术原理,具体如下图所示:
Kubernetes 的技术特点:
通过声明式语法直接定义应用的最终状态。
提供开放的插件机制。
灵活的资源权限隔离机制。
Kubernetes 的技术优势:
由定义的应用状态,自动地部署、重启、迁移、伸缩。
插件机制使 K8S 兼容各类基础设施(公有云、私有云)。
灵活的隔离机制能够快速为不同团队构建运行环境。
Kubernetes 包含这种调度发布、配置管理、日志监控、弹性弹性扩容等,这些能力大大简化了为服务应用的开发跟部署的流程,提高了我们的开发效率。
五、CCE(半托管式 K8S 集群)
5.1、CCE(半托管式 K8S 集群)技术原理
云原生技术核心底座在华为云中的配套服务 CCE(半托管式 K8S 集群)应用及技术原理,具体如下图所示:
云原生技术核心底座在华为云中的配套服务 CCE(半托管式 K8S 集群)所具备的技术优势,我们将其归纳为以下几点。
开源、开放、全面生态。
原生支持 Kubernetes 与 docker 生态。
提供 K8S 插件管理,提供多样化的插件扩展能力。
提供 K8S 生态工具:ISTIO、Helm、KubeFlow。
提供原生 API,支持原生命令行工具。
提供图形化控制台,端到端完整用户体验。
增强的商业化特性。
通过自动化配置、构建、部署提升业务上线效率。
支持 AI 类等高性能计算业务,提供 GPU 的统一调度管理,支持 GPU 共享,InfiniBand 100G RDMA 高速训练网络。
通过跨可用区高可用和控制面 HA 提升业务可靠性。
高性能、异构基础设施。
异构机型:虚拟机、物理机、ARM/GPU 服务器。
容器存储:云硬盘、对象存储、文件存储,时延降低 50%。
容器网络:VPC 私网、EIP 公网、L4/L7 ELB、NAT 网关,性能提升 40%。
5.2、CCE 助力企业完美应对流量高峰
背景:某企业,业务日均覆盖用户 7000万,日均发布 220 万条,日均阅览总量 30 亿次,我们对其业务层和数据层业务逻辑进行拆分,具体如下图所示:
挑战:
原有业务部署在 VM,扩容速度影响业务增加。
服务数量多,版本上线工作量大,运维涉及大量脚本,难度大。
方案:
对服务进行全容器化改造,并提供基于资源使用率的实时伸缩功能,提升扩容的实时性和速度。
提供容器化交付流水线,实现微服务在不同环境的协同发布能力。
价值:
完美应对突发性大流量冲击,抗压性能提升 10 倍。
确保开发、测试、生产环境的版本一致性,降低日常上线过程中版本管理的难度。
六、CCI(托管式 K8S 集群)
6.1、CCI(托管式 K8S 集群)技术原理
CCI(托管式 K8S 集群)基于 K8s 的 serverless 服务,提供极致容器体验,让用户专注于应用和业务,无需感知集群和服务器,其技术原理具体如下图所示:
CCI(托管式 K8S 集群)具备的优势有:
免运维:用户无需感知集群和服务器,直接部署容器应用,大幅提升容器易用性。
高安全:同时具备容器级别的启动速度和虚拟机级别的安全隔离能力,提供更好的容器体验。
极致性能:支持异构计算加速、高性能网络和存储、优化的调度,满足高性能计算诉求。
开放生态:原生支持 K8S、KATA 和 Docker 接口,兼容开源社区生态,方便企业探索属于自己的云原生模式。
极速弹性:提供秒极弹性伸缩能力,轻松应对业务快速变化,稳健保障用户业务 SLA。
成本节省:根据实际使用的资源数,按需按秒计费,避免业务不活跃时的费用开销,降低用户成本。
6.2、CCE 和 CCI 的对比
我们将 CCE 和 CCI 进行对比,具体如下表所示:
七、云原生应用核心技术:微服务
7.1、微服务技术原理
2014 年,由 James Lewis 和 Martin Fowler 共同提出了微服务的概念:
“The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.These services are built around business capabilities and independently deployable by fully automated deployment machinery.”
微服务架构是一种架构模式,将单体应用划分成一组小的服务,通过服务之间互相协作,共同实现系统功能。
每个服务运行在其独立的进程中,服务间采用轻量级的通信机制协作(通常是基于 Restful API)。
每个服务都围绕着具体业务进行构建,由独立的小团队负责设计、开发、测试,并可以独立部署到生产环境。
7.2、微服务发展历程
我们对微服务发展历程进行归类总结,具体如下图所示:
服务治理与业务逻辑解耦服务治理能力下沉到基础设施层。
服务网格以基础设施的方式提供无侵入的连接控制、安全可监测性、灰度发布等治理能力。
7.3、微服务的优势场景和挑战
微服务的优势场景主要体现在以下几个方面:
服务模块的边界更清晰:微服务强调模块化结构(REST 接口调用),这对大型团队非常重要。
支持独立部署:简单服务更易部署,由于服务是自治的出现问题之后不会引起系统崩溃。
允许技术多样性:有了微服务,你可以混合使用多种编程语言、开发框架和数据存储技术。
微服务面临的挑战表现在以下几个方面:
微服务架构复杂、依赖关系多:开发的服务数量增加,远程调用更慢且总存在失败风险。
需处理分布式系统的一致性:各微服务都管理自己的数据,数据不再集中,保持一致性非常困难,意味着大家都要处理最终致性。
增加运维复杂性:无状态、调用链长需要个成熟的运维团队(机制)来管理大量需要频繁部署的服务。
7.4、什么时候需要微服务?
我们将微服务的应用场景进行划分,具体如下图所示:
那我们什么时候需要微服务呢?
需要快速响应变化,快速发布版本时。
需要增强版本稳定性,减小模块耦合度时。
需要降低服务复杂度,提升服务维护性时。
需要提升软件生产效率和质量,持续构建、持续交付时等等场景。
八、微服务引擎 CSE 技术原理
云原生应用核心微服务在华为云中的配套服务:微服务引擎 CSE 技术原理,具体如下图所示:
在平台管理层面,提供注册中心、配置中心、治理中心、服务监控、安全管控以及事务管理的能力。
九、容器服务网络 ASM
9.1、容器服务网络 ASM 技术原理
云原生应用核心微服务在华为云中的配套服务:容器服务网络 ASM 技术原理,具体如下图所示:
核心技术 1:服务治理
支持 VirtualService 复杂服务流量规则。
支持熔断、限流、负载分发等治理能力。
核心技术 2:灰度发布
内置多种灰度发布流程,金丝雀/蓝绿/ABtest,支持流量比例、请求内容(Cookie、OS 等)、源 IP 等灰度规则。
核心技术 3:流量监控
提供端到端智能全局的监控、日志、拓扑、调用链。
核心技术 4:控制面增强
性能优化:上万实例场景下,性能提升 60%,同时资源占用下降 50% 。
修复大规模(5 万服务实例)场景下的 OOM 问题。
多云、多集群、多区域场景全局统一服务治理。
核心技术 5:协议扩展
支持 gRPC、REST。
扩展对 Dubbo 协议的服务治理能力。
提供和 SpringCloud 等微服务 SDK 的结合方案。
9.2、CSE 和 ASM 的对比
华为云两种微服务的技术栈及对比,具体如下表所示:
十、业界开源 Devops 生态
开源 DevOps 生态指的是一系列开源工具、平台和框架,用于支持 DevOps 文化和实践的推广和应用。这些工具可以帮助不同团队之间的协作和集成,实现自动化和持续交付。这些工具和平台相互集成和协作,可以快速、高效地实现 DevOps 流程中的自动化和持续交付。业界开源 Devops 生态,具体如下图所示:
开源 DevOps 生态的愈加繁荣,也使得开发人员、运维人员和测试人员能够更好地合作,实现更高效的软件开发流程。
作为开源技术的拥护者与重要贡献者,智领云一直践行开源开放理念,积极拥抱开源。在大数据平台技术架构的云原生化方向做出许多开创性的工作,通过自主研发和对开源系统的扩展实现了云原生大数据平台相关产品化。
旗下产品KDP(Kubernetes Data Platform),作为智领云自主研发的,市场上首个可完全在Kubernetes上部署的容器化云原生大数据平台,同样需要借助全部开发者的力量,让KDP的迭代走上快车道。因此,智领云CEO彭锋曾表示将来会将KDP平台开源并组建相关社区,以此群策群力,加速KDP应用的落地与新功能的开发,更好地服务于最终客户。
总结
云原生是一种新兴的软件开发和部署模式,其目标是以更快的速度和更高的效率构建和部署应用程序。云原生采用容器化、微服务架构和自动化管理等技术,将应用程序和基础设施紧密耦合,提高了应用程序的可移植性、可扩展性和可靠性。在云原生应用中,微服务通常被用于构建应用的基础架构,以实现应用的分布式、模块化和可扩展性。微服务可以独立部署、独立扩展、独立升级,从而提供更好的容错性和可靠性。此外,微服务还可以与其他云原生组件如容器、服务网格等进行配合,构建出更为复杂的、高性能的云原生应用。因此,云原生应用和微服务是相互关联的概念,在设计和开发云原生应用时需要充分考虑微服务的使用和部署。云原生技术对于企业的发展非常重要,可以提高企业的敏捷性、可靠性和可扩展性,降低 IT 成本,改善开发人员体验,从而帮助企业更好地应对市场竞争和业务挑战。
- FIN -
更多精彩推荐