从虚拟化到云原生,企业和工程师应该怎么做?---思考分享

一、背景

        1.从物理机到虚拟化再到现在的云原生。推动基础架构革新的主要源头就是业务应用。

        2.为了解决业务系统的弹性扩容、业务连续性、高可用性加速催生了云时代的快速迭代。

        3.虚拟化时代业务系统无非从物理机迁移到虚拟化环境进行部署,享受到了基础架构迭代到云环境的红利、但业务系统本身可能还是以前的单体大应用或者部分业务系统使用了微服务架构,从一台虚拟机到几台虚拟机搭建一个业务系统的群集。

        4.到了2021年开始,特别是互联网公司(阿里、京东等)和金融业(银行)以及头部制造业(新能源汽车、高新技术的等)等对于业务系统有弹性扩容、业务连续性、高可用性基础需求的前提下,对于业务系统的敏捷开发、快速迭代、快速部署、边缘计算场景,希望在对业务系统不管是边缘服务(如产品详情)或者核心服务(支付系统)、进行开发和迭代时保证业务系统的健壮性。

        5.促使基础架构的迭代以及业务系统进行微服务化改造,才能满足需求。

        6.当业务系统进行微服务化之后,问题来了。理想中的微服务一个业务系统几个或者十个微服务,但实际上是成千上万个,非常具体。那么此时基础架构为虚拟化是满足不了需求的,因为虚拟化后的OS的开销以及性能的开销是没办法避免的,同时代码基础设施的一致性,业务系统版本迭代和回滚等业务场景,能满足需求的基础架构目前只有容器底座,也就是云原生的标准-k8s.

        7.当基础架构迭代到k8s后,微服务化后的容器业务系统可以避免OS的开销以及性能的开销,同时保障代码基础设施的一致性,此时还需要解决一系列问题:

                1.业务系统的CI/CD流水线---解决需求快速迭代和快速部署。

                2.业务系统的服务治理以及可视化。---解决需求上千上万个服务运维和管理。

                3.微服务化后的业务系统的服务网格改造。----解决需求业务系统使用代码的微服务框架等(如java的Spring Cloud)网络基础设施代码冗余等问题。

                4.在开源当代的时代下,如何选择有技术支持的商业云原生产品,来提供可靠和优秀的技术支持完成上面的任务。

二、从人的层面

        1、工程师在虚拟化时代,具备数据中心的(物理、虚拟化产品)网络、计算、存储等知识和技术储备。

        2、在云原生时代这些iaas层面的知识储备显然是不足够的。

        3、那么从人的层面需要储备什么技能呢?
                1、熟悉容器技术栈----基础架构底层这是必须的,详细点讲就是从docekrfile编写到如何设计编排一个业务系统到k8s上进行部署,都需要了解这是基础。

                2、对于中间件的了解---因为k8s是一个Pass平台,作为基础架构的人员必须要了解你业务系统涉及到的中间件、如nginx、redis、Mysql等基础中间件---这是基础。

                3、CI/CD流水线工具----使用了k8s,那么CI/CD是必备的技能,你可以选择GitOps技术栈,也可以选择其他基于Jenkins技术栈,但一定要会写 流水线。

                4、代码层面-----如果你是一名优秀的顶级云原生架构师,那么对于你业务系统的开发语言框架,java-Spring Cloud,Go等涉及到的微服务框架是需要掌握的,不然你没办法对于开发人员再进行服务网格改造时提供强力而有建设性的支持。

                5、那么上面4点总结起来,新时代的云原生工程师其实就是技术全栈工程师,从上层业务代码到底层基础架构,都需要有涉猎,孰轻孰重是看工程师自身的技能敏感度,基础k8s人员熟练1、2点,优秀的1、2、3点,顶级的1、2、3、4点。

三、对于商业产品的选择层面

        1、首先选择的产品一定是在国内有技术支持的。

                1、基础架构-国外Rancher、红帽、国内DaoCloud、QinCloud等。

                2、CI---Gitlab-仅此一家

                3、CD-----各有所长,可以选择开源的Jenkins或者Fleet.(Fleet由中国Rancher提供技术支持)。

                4、对于业务系统改造---不管是容器化最佳实践改造、微服务改造、服务网格改造,目前最厉害的是红帽。

        2、上面这些产品如何选择优劣?

                1、在虚拟化时代,虚拟化产品的厂商如Vsphere、华为的Fusion Vsphere、H3C的Cas等套件,都是硬件厂商和虚拟化产品厂商进行适配,虚拟化时代这里关注的是物理主机和虚拟化产品的兼容和适配性,此时国外的服务器产品如dell等和国外的Vmware系列产品的兼容和适配度是最高的,国内的是华为自家的虚拟化和自家的服务器适配是最好的其他同理,此时产品选择选型还是用物理服务器为基线。

                2、在云原生时代、因为容器通过NameSpace隔离技术,所有容器共享一个操作系统内核、并且所有网络功能都基于iptables或者ipvs等技术栈来实现、在产品选择上,一定是自家是做操作系统的\那么他的容器底座是最强的且安全的。

                        1.如Rancher被 SUSE收购,------SUSE Linux

                        2.RedHat 的Open Shift.        ------Red Hat Linux

                        3.国内的Open Oula                ------ 目前没有看到他的k8s发行版。

                3.在云原生时代可以这么说,谁家有Linux发行版,谁的k8s发行版就是牛逼的。

四、总结

        1.在企业选择是否要下注迭代基础架构时,请重点关注自身业务系统是否为自研开发,还是采购商业产品。

        2.如果是自研开发,可以让开发人员尝试使用的容器进行开发,享受容器的红利,他会爱上这个开发模式。如果本身就是容器化开发的自研产品,那么此时可以按照1、微服务改造 2、服务网格改造的顺序充分利用好云原生红利,享受云原生动力带来的加速--企业数字化转型。

        3.如果是采购商业产品,那么采购的商业产品是否已经是容器化后的产物,如果是容器化后的产品、让你提供虚拟化来进行部署。此时大量的容器化后的产品在你的虚拟化平台上,你的业务系统的性能天生就损失一个OS和虚拟化层的开销浪费资源、同时极其可能出现一个虚拟化平台,多个k8s集群的情况,此时是很危险的,因为k8s本身是有状态的,关闭和启动都存在顺序,如果顺序不对,k8s的etcd数据库无法完成同步,则k8s集群的pod声明式yml一定有问题。此时传统云平台的运维人员将无法下手,因为他对虚拟机的生命周期管理已经从简单的虚拟机层面被迫放大到了对于业务系统基础架构生命周期的操作。

        4.如果采购商业产品,是容器化后的产品,那么建议尝试采购7台服务器,搭建一个3Master-4-Worker节点,Ingress console 部署在worker nodes上的k8s集群.业务系统生命周期一般为3年,在3年的这个节点上将业务系统新版本直接部署在容器集群上,并且要求之后采购的产品如果是容器化,必须交付到k8s集群上,此时在逐步交付到过程中,让业务逐步迁移到新建设的容器集群上.

        5.以上3、4点需要利用好商业的云原生公司的技术能力,根据自家企业的业务系统和规模建立云原生产品交付流程和标准,最终呈现云原生的产品长在云原生平台上,单体应用部署在虚拟化环境上,不可迁移到云的有状态服务(数据库)部署在物理机上,大家利用好各自平台的红利,为企业提供最可靠和优质的服务。

        5.以上是我的一些思考和分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣】92. 反转链表 II <链表指针>

【力扣】92. 反转链表 II 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回反转后的链表。 示例 1 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff…

Eclipse进行debug

目录 基本步骤三种执行方式 -- 键盘快捷键variables面板移除debug过的项目通过eclipse调用具有软件界面的项目进行debug各个variable颜色具有的意义 基本步骤 点击eclipse右上角debug按钮 调出debug面板 点击小蜘蛛图标&#xff08;不是点绿色三角的Run&#xff09; 此时会进…

第一个 vue-cli 项目

一、什么是 vue-cli vue-cli 官方提供的一个脚手架&#xff0c;用于快速生成一个 vue 的项目模板&#xff1b;预先定义好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目&#xff0c;这个骨架项目就是脚手架&#xff0c;我们的开发更加…

CUDA版本自由切换

首先查看当前cuda版本 ls /usr/local/我们可以看到 bin cuda-11.0 cuda-11.8 cuda-12.0 etc games include lib man sbin share src然后编辑环境变量 vim ~/.bashrc最下面加入11.8的环境变量 ## cuda path# cuda 11.8 export PATH/usr/local/cuda-11.8/bin:$PAT…

Maven【入门笔记】

Maven 解决版本依赖的问题 https://www.liaoxuefeng.com/wiki/1252599548343744/1309301146648610 如果没有项目管理工具&#xff0c;在开发项目的时候&#xff0c;我们需要手动管理依赖包&#xff0c;需要管理依赖包的版本、去找到并下载依赖包、还有依赖包所依赖的包 等等。…

百度与AI:历史、投资和监管

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 百度的人工智能在中国具有先发优势 随着ChatGPT的爆火&#xff0c;人工智能重新引起了投资者的注意&#xff0c;然而人工智能并不是突然爆火的&#xff0c;而是全球众多公司在人工智能技术上进行数十年如一日的研发和积累&a…

解决新版 Idea 中 SpringBoot 热部署不生效

标题 依赖中添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <opt…

项目管理中的需求分析:实施策略与最佳实践

引言 在项目管理的过程中&#xff0c;需求分析起着至关重要的作用。理解和定义项目需求是项目成功的关键一步&#xff0c;它可以帮助我们确定项目的目标和范围&#xff0c;以及如何有效地达到这些目标。在本文中&#xff0c;我们将深入探讨需求分析的重要性&#xff0c;讨论如…

rar压缩包怎么改成zip格式

不知道大家有没有遇到需要转换压缩包格式的问题&#xff0c;今天想和大家分享rar压缩包改成zip格式的方法。 方法一&#xff1a; 直接修改rar压缩包的后缀名变为zip&#xff0c;就可以修改压缩包文件格式了 方法二&#xff1a; 先将rar压缩包解压出来&#xff0c;然后再将解…

【Spring】bean的生命周期

1.具体的生命周期过程 bean对象创建&#xff08;调用无参构造器&#xff09; 给bean对象设置属性 bean对象初始化之前操作&#xff08;由bean的后置处理器负责&#xff09; bean对象初始化&#xff08;需在配置bean时指定初始化方法&#xff09; bean对象初始化之后操作&am…

数字IC验证高频面试问题整理附答案(二)

近日后台有同学私信还想要验证的面试题目&#xff0c;这不就来了~ Q16.权重约束中”:”和”: /”的区别 : 操作符表示值范围内的每一个值的权重是相同的,比如[1:3]:40,表示1&#xff0c;2&#xff0c;3取到的概率为40/120&#xff1b; :&#xff0f;操作符表示权重要平均分到…

电子词典项目(有借鉴)

服务器 #include<myy.h> #include<sqlite3.h>#define err(msg) do{printf("__%d__",__LINE__);perror(msg);return -1;}while(0) #define PORT 8888 #define IP "192.168.125.51" typedef void (*sighandler_t)(int); typedef struct {char f…

MySQL实践——参数SQL_SLAVE_SKIP_COUNTER的奥秘

每次数据库复制冲突之后&#xff0c;经常使用的一个命令如下。 SET GLOBAL SQL_SLAVE_SKIP_COUNTER 1;一般会认为&#xff0c;现在出现冲突错误&#xff0c;那就将上面参数值设置为1&#xff0c;跳过出错的这个event就可以解决了。重新启动复制&#xff0c;发现问题果然解决&…

点击编辑变完成

<template><div><button click"dialogshowtrue">添加部门</button><div>部门列表</div><el-table ref"multipleTable" :data"form" tooltip-effect"dark" style"width: 100%">&l…

无人机管控平台,推动电力巡检管理水平提升

各地区无人机作业水平和管理水平存在参差不齐&#xff0c;电力巡检管理要求与业务发展水平不匹配的问题。同时&#xff0c;巡检数据的存储和管理分散&#xff0c;缺乏有效的整合与共享手段&#xff0c;使得内外业脱节&#xff0c;没有形成统一应用和闭环管理。这就导致巡检数据…

springBoot多数据源使用tdengine(3.0.7.1)+MySQL+mybatisPlus+druid连接池

一、安装部署 1、我这里使用的 3.0.7.1版本&#xff0c;因为我看3.x版本已经发布了一年了&#xff0c;增加了很多新的功能&#xff0c;而且3.x官方推荐&#xff0c;对于2.x的版本&#xff0c;官网都已经推荐进行升级到3.x&#xff0c;所以考虑到项目以后的发展&#xff0c;决定…

K8s影响Pod调度和Deployment

5.应用升级回滚和弹性伸缩

数学学习——最优化问题引入、凸集、凸函数、凸优化、梯度、Jacobi矩阵、Hessian矩阵

文章目录 最优化问题引入凸集凸函数凸优化梯度Jacobi矩阵Hessian矩阵 最优化问题引入 例如&#xff1a;有一根绳子&#xff0c;长度一定的情况下&#xff0c;需要如何围成一个面积最大的图像&#xff1f;这就是一个最优化的问题。就是我们高中数学中最常见的最值问题。 最优化…

【深度学习】Transformer,Self-Attention,Multi-Head Attention

必读文章&#xff1a; https://blog.csdn.net/qq_37541097/article/details/117691873 论文名&#xff1a;Attention Is All You Need 文章目录 1、Self-Attention 自注意力机制2、Multi-Head Attention 1、Self-Attention 自注意力机制 Query&#xff08;Q&#xff09;表示当…

企业服务器中了Locked勒索病毒后怎么办,如何解决问题并提高防范意识

科学技术的发展给我们的生活带来了极大便利&#xff0c;但也为企业带来了安全威胁。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器中了locked后缀勒索病毒&#xff0c;计算机上的所有文件都被加密&#xff0c;无法被正常调取&#xff0c;严重影响了企业的正…