快速了解云计算与云原生

快速了解云计算与云原生

  • 云计算
  • 云原生
  • DevOps
  • 容器
  • 持续交付
  • 微服务

云计算

在讲云原生之前,先来讲讲云计算

其中云原生属于技术架构理念,而云计算提供应用所需的基础资源,云计算是云原生的基础,两者是相辅相成的

云计算简单来说,就是一种随时随地给大家提供解决网络资源的一种计算服务和应用

关于云计算的三种服务模式

  1. Saas(软件即服务):运用到我们的生活中,就是各种云存储云文档等等,完全不用自己去开发,直接拿来用就可以
  2. Paas(平台即服务):服务商提供给你一个框架,还有各种基础功能,你可以在这个平台上,开发不同的软件
  3. Laas(基础设施即服务):服务商只出租硬件设施,比如服务器硬盘或者网络等,给需要这些基础设施资源的人

三种模式也可以这样理解:
假如你有一个业务是需要用 Word写东西,做记录
最基础版本就是laas是服务商租你一台没有系统的电脑
中间版本paas是服务商租你一个带win10的电脑
最高版本就是saas就是服务商租你一台带win10还预装了word的电脑

专业图理解:
在这里插入图片描述

云原生

云原生(Cloud Native)是一种构建和运行充分利用云计算模型优势的应用程序的方法

云原生概括为4个要点:DevOps+持续交付+微服务+容器
在这里插入图片描述
符合云原生架构的应用程序:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率

DevOps

DevOps中的Dev指的是Development(开发),Ops指的是Operations(运维),用一句话来说,DevOps就是打通开发运维的壁垒,实现开发运维一体化

在这里插入图片描述

DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系,实际上DevOps应该还包括测试

关于软件行业的研发模式,大致有三个阶段:瀑布式开发、敏捷开发、DevOps

瀑布式开发:传统的软件开发流程,软件开发人员花费数周和数月编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。所有的这三个阶段,即开发,测试,布署

也叫瀑布(Waterfall)模型,就是等一个阶段所有工作完成之后,再进入下一个阶段

敏捷开发:是一种能应对快速变化需求的软件开发能力。就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态

敏捷开发优势在于把一艘大船变成许多条小船,每条小船各司其职,分配小目标,所有的小目标合起来就能完成大目标。效率高,每个人职责分明

不足之处在于小团队做不到拥有开阔的视野,看不到所有团队都在一起做什么事情,大家只知道埋头苦干做好自己的部分就可以,但看不到全局,不知道全局发生了什么事情。对于一些不可分割的大需求,需要一次性派很多人手同时做的需求,敏捷开发就不再合适

虽然敏捷开发大幅提升了软件开发的效率和版本更新的速度,但是它的效果仅限于开发环节,对于运维人员来说,就是不要出问题,但是发生改变的时候最容易出问题。因此运维非常排斥“改变”。

因此才出现了DevOps,从目标来看,DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠

DevOps生态圈中的工具

容器

在软件开发过程中,通常会涉及以下几种环境:

  • 开发环境:用于开发人员编写、调试和测试软件的环境,包括开发工具、集成开发环境(IDE)、调试器、编译器等软件工具,以及开发人员个人的计算机或开发服务器。

  • 测试环境:用于软件测试的环境,包括测试服务器、测试数据库、测试数据等,用于进行单元测试、集成测试、系统测试、性能测试等各种测试活动。

  • 集成环境:用于集成开发人员编写的各个模块或组件的环境,以验证它们在一起工作的正确性和稳定性。

  • 部署环境:用于将开发完成的软件部署到生产环境中的环境,包括部署服务器、部署工具、配置管理工具等,用于将软件部署到生成环境中进行实际运行和使用。

  • 生产环境:软件部署和运行的环境,包括服务器、数据库、网络设备、负载均衡器等硬件设备,以及用于部署和管理软件的相关软件工具,用于提供稳定、可靠的环境,使软件能够正常运行并满足用户需求。

对于容器技术来说,对软件开发环境带来了许多好处,主要包括以下几点:

  • 环境一致性: 容器技术可以确保开发、测试和生产环境之间的一致性。开发人员可以在他们的开发机器上构建容器,然后将这些容器部署到测试环境和生产环境中,从而避免了“在我的机器上可以工作”的问题。

  • 快速部署: 容器可以快速部署,因为它们包含了应用程序及其所有依赖关系。这意味着开发团队可以更快地构建、测试和部署应用程序,从而加快软件开发和交付速度。

  • 资源利用率: 容器可以更有效地利用计算资源,因为它们可以在单个物理服务器上运行多个容器实例,而无需为每个应用程序实例分配独立的虚拟机或物理服务器。

  • 隔离性: 容器提供了应用程序之间的隔离,这意味着即使在同一台物理服务器上运行多个容器实例,它们之间也是相互隔离的。这有助于减少因应用程序之间的冲突而导致的问题。

  • 可移植性: 容器可以在各种不同的环境中运行,包括开发人员的个人计算机、本地数据中心、云基础设施等。这种可移植性使得开发团队能够更轻松地在不同的环境中部署和运行应用程序。

  • 微服务架构支持: 容器技术与微服务架构天然契合。通过容器化应用程序,可以更轻松地将应用程序拆分成小型服务,并通过容器编排工具(如Kubernetes)来管理这些服务的部署和伸缩

目前最常用的容器是docker,使用go语言编写
在这里插入图片描述

持续交付

CI/CD是持续集成(Continuous Integration)和持续交付/持续部署(Continuous Delivery/Continuous Deployment)的缩写。它是一种软件开发实践,旨在通过自动化的流程和工具来加速软件的开发、测试和部署

持续集成(Continuous integration,简称 CI)

持续集成指的是,频繁地(一天多次)将代码集成到主干。它的好处主要有两个:

快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起

持续交付

持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段

持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的

持续交付地将经过测试的代码部署到生产环境中,以便随时进行发布。持续交付旨在确保软件在任何时候都是可发布的状态,从而降低发布新功能或修复bug的成本

持续部署

持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境,它通过自动化的流程将经过测试的代码自动部署到生产环境中,从而实现快速、频繁地发布软件

持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段

持续部署的前提是能自动化完成测试、构建、部署等步骤

CI/CD的实施需要借助各种工具和技术,例如版本控制系统(如Git)、自动化构建工具(如Jenkins、Travis CI)、自动化测试工具、部署工具(如Docker、Kubernetes)等。通过CI/CD实践,开发团队可以加快软件的交付速度,提高软件质量,降低风险,并提高团队的生产力。这种实践在现代软件开发中被广泛采用,并成为提高软件开发效率和质量的重要手段

微服务

讲到微服务架构,是以单体架构为基础的,就像springcloud是以springboot为基础

通过微服务,可将大型应用分解成多个独立的组件,其中每个组件都有各自的责任领域。在处理一个用户请求时,基于微服务的应用可能会调用许多内部微服务来共同生成其响应

  • 多个独立的组件,指的就是微服务
  • 独立服务一般有明确定义的API,用于通信
  • 独立服务通常由一个小型团队负责
  • 针对每个独立服务的开发,部署,运营维护,扩展等都不应该影响其他服务
  • 每个服务应该针对一组功能进行设计,专注于解决特定的问题
  • 每个服务不强调使用同一语言,这种称之为技术自由

容器是微服务架构的绝佳示例,现代云原生应用使用容器来构建微服务

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

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

相关文章

嵌入式(四)定时器 | 定时器功能 分类 定时器工作模式 寄存器全介绍

文章目录 1 定时器工作原理2 定时器功能3 定时器分类3.1 定时器13.2 定时器23.3 定时器3和定时器43.4 睡眠定时器3.5 看门狗定时器 4 定时器工作模式4.1 自由运行模式4.2 模模式4.3 正计数/倒计数模式 5 定时器1寄存器5.1 计数寄存器5.2 计数控制寄存器 6 定时器的两种使用方式…

网络报文分析程序的设计与实现(2024)

1.题目描述 在上一题的基础上,参照教材中各层报文的头部结构,结合使用 wireshark 软件(下载地址 https://www.wireshark.org/download.html#releases)观察网络各层报文捕获,解析和分析的过程(如下 图所示&a…

【Linux基础】Linux主要指令的详解(指令补充)

1.cp指令(重要) 语法: cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指…

pytorch集智-2单车预测器

完整代码在个人主页简介链接pytorch路径下可找到 1 单车预测器1.0 1.1 人工神经元 对于sigmoid函数来说,w控制函数曲线的方向,b控制曲线水平方向位移,w控制曲线在y方向的幅度 1.2 多个人工神经元 模型如下 数学上可证,有限神经…

Linux查找命令@which、find

目录 which概念语法作用 find概念语法按文件名查找按文件大小查找 作用演示一演示二演示三 通配符 which 概念 which 是一个常用的 Linux/Unix 命令,用于查找并显示指定命令的绝对路径。 语法 which 要查找的命令 》无参数。 》 which后面,跟要查找绝对…

【CentOS 7.9】死机卡住如何处理

一、解决办法 1.打开tty2 按下组合键:ctrl alt F2 进入 tty2 2.进入 root 权限 su root3.杀死该用户的所有进程(相当于 windows 里面的注销用户) 请注意,用户名应该全部使用小写字母,如我的用户名叫 Ragdoll&am…

摄像头视频录制程序使用教程(Win10)

摄像头视频录制程序-Win10 🥗介绍🍛使用说明🚩config.json 说明🚩启动🚩关闭🚩什么时候开始录制?🚩什么时候触发录制?🚩调参 🥗介绍 检测画面变化…

Javaweb之Mybatis的基础操作之查询操作的详细解析

1.6 查询 1.6.1 根据ID查询 在员工管理的页面中,当我们进行更新数据时,会点击 “编辑” 按钮,然后此时会发送一个请求到服务端,会根据Id查询该员工信息,并将员工数据回显在页面上。 SQL语句: select id,…

大型语言模型的幻觉问题

1.什么是大模型幻觉? 在语言模型的背景下,幻觉指的是一本正经的胡说八道:看似流畅自然的表述,实则不符合事实或者是错误的。 幻觉现象的存在严重影响LLM应用的可靠性,本文将探讨大型语言模型(LLMs)的幻觉问题&#x…

求两个数之间的最小公约数

目录 前言 方法:求两个数之间的最小公约数 1.欧几里得算法 2.枚举法 3.公共因子积 4.更相减损术 5.Stein算法 解题:在链表中插入最大公约数 总结 前言 今天刷每日一题:2807. 在链表中插入最大公约数 - 力扣(LeetCode)…

基于X86的助力智慧船载监控系统

船载综合监控系统结合雷达、AIS、CCTV、GPS等探测技术,以及高度融合的实时态势与认知技术,实现对本船以及范围内船舶的有效监控,延伸岸基监控中心监管范围,保障行船安全,为船舶安全管理部门实现岸基可控的数据通信和动…

第 121 场 LeetCode 双周赛题解

A 大于等于顺序前缀和的最小缺失整数 模拟&#xff1a;先求最长顺序前缀的和 s s s &#xff0c;然后从 s s s 开始找没有出现在 n u m s nums nums 中的最小整数 class Solution { public:int missingInteger(vector<int> &nums) {unordered_set<int> vis(…

如何批量自定义视频画面尺寸

在视频制作和编辑过程中&#xff0c;对于视频画面尺寸的调整是一项常见的需求。有时候&#xff0c;为了适应不同的播放平台或满足特定的展示需求&#xff0c;我们需要对视频尺寸进行批量调整。那么&#xff0c;如何实现批量自定义视频画面尺寸呢&#xff1f;本文将为您揭示这一…

LLM之RAG实战(十三)| 利用MongoDB矢量搜索实现RAG高级检索

想象一下&#xff0c;你是一名侦探&#xff0c;身处庞大的信息世界&#xff0c;试图在堆积如山的数据中找到隐藏的一条重要线索&#xff0c;这就是检索增强生成&#xff08;RAG&#xff09;发挥作用的地方&#xff0c;它就像你在人工智能和语言模型世界中的可靠助手。但即使是最…

小心JDK20 ZipOutputStream

Oracle 團隊竟然這麽粗心&#xff0c;編譯JDK 20 時ZipOutputStream沒有編譯成功就發佈了。 所以這個20版本不可以使用ZipOutputStream。 GZIPInputStream 只能做最後的壓縮&#xff0c;不能添加多個附件ZipEntry。 下一個版本21不存在這個問題。 try(var zipOut new ZipOu…

数据分析——火车信息

任务目标 任务 1、整理火车发车信息数据&#xff0c;结果的表格形式为&#xff1a; 2、并输出最终的发车信息表 难点 1、多文件 一个文件夹&#xff0c;多个月的发车信息&#xff0c;一个excel&#xff0c;放一天的发车情况 2、数据表的格式特殊 如何分析表是一个难点 数…

案例102:基于微信小程序的旅游社交管理系统设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

解决VMware 虚拟机 ubuntu 20.04 异常关闭导致虚拟网卡 ens33 无法工作问题

问题描述 由于经常使用 SSH 远程链接 VMware 中的虚拟机 ubuntu&#xff0c;每次关闭都是挂起&#xff0c;时间久了&#xff0c;虚拟机运行有些卡顿了&#xff0c;此时可以通过 Linux 命令重启或者关闭 ubuntu&#xff0c;也可以之间使用 VMWare 中的【虚拟机】-- 【电源】-&g…

SiC电机控制器(逆变器)发展概况及技术方向

SiC电机控制器&#xff08;逆变器&#xff09;发展概况及技术方向 1.概述2.电动汽车动力系统设计趋势3.栅极驱动器和驱动电源配置4.结论 tips&#xff1a;资料来自网上搜集&#xff0c;仅供学习使用。 1.概述 2022年到2023年&#xff0c;第三代半导体碳化硅被推上了新的热潮。…

前端uniapp的tab选项卡for循环切换、开通VIP实战案例【带源码/最新】

目录 效果图图1图2 源码最后 这个案例是uniapp&#xff0c;同样也适用Vue项目&#xff0c;语法一样for循环&#xff0c;点击切换 效果图 图1 图2 源码 直接代码复制查看效果 <template><view class"my-helper-service-pass"><view class"tab…