纯小白也能看懂,十分钟帮你快速了解云原生概念

这篇具有很好参考价值的文章主要介绍了纯小白也能看懂,十分钟帮你快速了解云原生概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

随着云原生相关技术的蓬勃发展,不管你是刚入职的小白,还是多年经验的老手,都在关注这种技术趋势。但相关内容太多,导致一些小白无从入手,也没有一个全局的概念。那就花10分钟看完本文,帮你快速了解云原生的起源和发展,并介绍一些技术现状

📕作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验;爱好广泛,乐于分享,致力于创作更多高质量内容
📗本文收录于 云原生,有需要者,可直接订阅专栏实时获取更新
📘高质量专栏 RabbitMQ、Spring全家桶 等仍在更新,欢迎指导
📙Zookeeper Redis kafka docker netty等诸多框架,以及架构与分布式专题即将上线,敬请期待


一、麻烦的一天

小明是一个小企业的程序猿,他觉得他的工作麻烦又枯燥。每天,他需要处理一大堆服务器和应用程序,手动部署和维护它们。这让他感觉像是在重复地做着无尽的琐碎工作。

每当有新的应用需要部署,或者把同一个应用部署在不同的服务器上时,小明都得花费大量时间来配置服务器、安装依赖和解决各种兼容性问题。今天这台机器mysql端口与众不同要重新配置,明天那台机器环境依赖发生冲突要解决冲突,有时候,一个小小的错误就可能导致整个应用无法正常运行,让他陷入绝望。

而且,每当服务器出现故障时,他必须赶紧跑去现场解决问题,有时候甚至要在深夜起床处理紧急事务。这让他感到心力交瘁,无法得到休息。

另外,应用程序的扩展也是一个头疼的问题。每当用户量激增时,他得手动调整服务器资源,希望能满足需求。但有时候,应用程序还是会因为资源不足而崩溃,让他倍感无奈。
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

二、魔法的种子

1. Docker

假设你是一位热爱烹饪的厨师,有一天你决定去朋友家里做一道特别的美食。然而,你们两个的厨房设备和材料不完全相同,你的厨房里有一些特殊的调味料和器具,而你朋友的厨房里则有一些其他的特色食材。

在传统情况下,为了做这道美食,你需要将所有的调味料和器具都带到朋友家,而且可能还需要重新学习适应朋友的厨房设备。这样做不仅麻烦,还浪费时间和精力。

但是,你可以将所有的调味料、食材和器具都装进一个精美的密封箱子中,在箱子里,你的食材和调味料都是独立的、封闭的,不会与其他东西混合,也不会受到外界的干扰。你可以轻松地将这个箱子带到朋友家,只需要在朋友的厨房里打开箱子,就可以开始烹饪了。

这样一来,你不需要在朋友家里携带大量的物品,也不需要适应不同的环境。你可以专注于烹饪美食,保持高效和一致的操作,而不用担心与朋友的厨房设备产生冲突。

而对于程序猿,不仅仅是小明,实际上小张、小李等无数程序猿也饱受煎熬。大家一致认为,程序猿的天职是写代码实现业务,现在却被繁琐的部署配置,故障解决搞得焦头烂额,真是天理不容。

于是Docker公司于2013年推出了Docker容器,该技术通过将应用程序及其所有依赖项(例如库、配置文件等)打包 在一个独立的运行环境中,形成一个封闭的容器。容器可以在任何支持容器引擎的环境中运行,而不受环境差异的影响,保证了应用程序在不同环境中运行的一致性。

2. Kubernetes

自从有了箱子之后,你感觉轻松了很多,各种不同的环境你都能烹饪出同样的美食。终于成为了酒店大厨,你现在甚至可以弄出一个箱子,然后参照着复制出10个箱子,这样你就可以同时炒10份了。但你很快又发现了问题,尽管开始时10份菜是一样的食材,但在炒菜的过程中,10份菜火候却没法保证完全一致,有的还是生的,有的却还没熟,而且此时如果又来了一批客人,需要你同时炒更多份菜,你还得抽身去复制箱子然后起锅烧油。这让你分身乏术,手忙脚乱。

最后,你选择请了个专业的厨师助手,它会自动根据你的需求,调整每个容器的火力和烹饪时间。当一道菜煮熟了,它会自动关掉相应的火力,而不会让食物过熟。当有更多的客人来访时,助手会自动为帮你复制箱子,并且起锅开始炒。

你不再需要手动管理每个锅,也不用担心忘记照顾其中的一道菜。你可以轻松地同时烹饪多道菜,而且每一道菜都能在适当的时候煮熟,保持美味和口感。你的得力厨师助手,让你的烹饪过程更加高效和愉快

在Docker推出仅仅一年以后,Google的工程师Brendan Burns、Joe Beda和Craig McLuckie 在2014年提出Kubernetes(K8s)这样一个开源容器集群管理系统,其作用是帮助用户管理包括容器的创建、配置和自动化部署等一系列工作,还能够提供高可用性、负载均衡、自动扩容和自动恢复

需要注意的是,Google早在2000年就开始运行自己的容器技术,Kubernetes的出现是为了推广容器技术。Kubernetes本身不依赖于Docker,除了Docker外,Kubernetes还支持其他容器运行时,如rkt、CRI-O和Frakti,Kubernetes的容器运行时接口(CRI)定义了容器运行时与Kubernetes API的交互方式,因此如果有符合CRI规范的容器运行时,就可以在Kubernetes上使用它们来运行容器

这里我们可以说句题外话,K8s目前已经成了事实上的行业标准,而且其可以踢开Docker选用其他容器,尽管由于Docker曾经的垄断地位和巨大名气,现在很多人依旧选择Docker,但其在市场上的占有率却有所下降


三、渐入佳境

1. 技术与术语

随着K8s的推广,一种软件开发和运维的理念,逐渐发展和完善起来。这就是我们所说的云原生:云原生是一种基于云计算的应用程序开发和部署方法,它依托于云计算与云架构;会使用容器化、微服务架构和自动化管理技术来实现高效、弹性、可伸缩和可靠的云部署。当然,这云计算伴随着不少技术和术语,让我为你进行一些常用技术的解释:

容器化技术

容器化技术是将应用程序及其依赖的组件、库等打包到一个可移植的容器中,并提供统一的运行环境,从而实现跨平台和快速部署的技术。目前常用的容器化技术有 Docker、LXC等。
Pod
Pod是Kubernetes中最基本的调度单位。可以类比成进程,一个进程中可以只有一个线程,也能有多个共用资源的线程。一个Pod则代表着集群中运行的一个进程,一个Pod中可以装一个容器(建议),也可以同时封装几个紧密耦合互相协作的容器,它们之间共享资源,相互协作成为一个service单位。

DevOps

包含 developmentoperations,即开发和运维两个单词的组合。是一种将开发和运维融合起来的方法论和实践(最初是这样,但现在这个词的语义越来越大,从需求-设计-开发-测试-上线-运维整条线路,能缩短周期,提高稳定的方法都可以算在里面),目的是提高软件开发和部署的速度、质量和可靠性,其一般手段有:

  • 持续集成和持续交付
    这其实也是个老概念,持续集成和持续交付(CI/CD),代表着一种软件开发流程。在以往,开发人员写完代码需要手动打包编译,然后交给测试团队,测试团队拿到包要先部署,然后开始测试。发现问题后又需要改代码打包编译,如此反复。其实很多内容可以不用人工操作,现在我们可以自动化构建、测试、部署和交付应用程序,只需做好设定,如定时触发,其就会源源不断的执行 扫描检测-编译-打包-部署乃至自动化测试等操作,如果出现故障,会及时进行邮件通知
    纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术
  • 自动化运维
    利用软件技术实现运维工作自动化和标准化。它将重复性、繁琐的运维工作通过自动化程序进行处理,以提高工作效率和服务质量。比如自动化部署、自动化监控、自动化备份等

弹性伸缩

弹性伸缩是指根据应用负载和资源消耗情况,自动调整云原生应用的资源配额和容器数量等资源分配策略,以满足应用的性能需求和业务变化,比如我们可以设置当CPU使用率超过90%时,自动增加一个Pod实例。当CPU使用率低于50%时,自动减少一个Pod实例。
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

Sidecar

Sidecar的字面意思为边车,就像下图这样,摩托车附带个车斗。
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术
在云原生领域,Sidecar是指一种类似的模式,用于将一些辅助服务(例如日志收集、监控和调试)部署在与主要应用程序部署同一容器,或Pod中的辅助容器中,这种设计还是符合Sidecar的形象的。通常,Sidecar容器与主应用程序容器共享相同的网络和存储卷,它们可以通过共享文件系统来进行通信和协作。这种模式可以使应用程序容器保持单一职责(Single Responsibility Principle),便于管理和维护
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

服务网格

服务网格(Service Mesh)是指将网络功能划分为一些小的、独立的组件,以点对点通信和 API 网关等方式实现服务间通信和控制的技术方案。比如有一个电商系统,其中包含了商品服务、订单服务和支付服务三个微服务,这三个服务需要相互通信,以往每个微服务都需要通过自己的代码来实现服务发现、负载均衡、故障处理等功能。现在这些与业务无关的内容都下沉到基础设施层了。

纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

如图,其中绿色方块为应用服务,蓝色方块为 Sidecar Proxy,应用服务之间通过 Sidecar Proxy 进行通信,而服务网格就是由应用程序中的与每个微服务配对的网络代理和一组任务管理流程共同组成

2. 组件与框架

随着云原生的逐渐发展,很多组件和框架也顺势发展起来,我们现在就快速浏览下:

Docker

前面也介绍过,是开源的容器化技术,它可以将应用程序及其依赖项打包成一个独立的、移植性强的容器。我们可以轻松将其镜像推送至库(公共或私有),然后在其他的位置拉取下来,帮助用户加速应用程序的交付和部署过程

纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

Kubernetes

前面已经提过了,Kubernetes是最流行的容器编排管理平台,可用于管理多个容器化的应用程序。主要功能包括
自动化部署、扩展和管理容器化应用程序,还可以实现滚动升级和回滚、负载均衡、服务发现、容器存储等,不难发现其具有 自动化和自我修复能力、可扩展性和高可用性等
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

Helm

Kubernetes的包管理工具,用于部署、升级和管理Kubernetes应用程序,如同Helm可以帮助用户管理应用程序的依赖项、配置和变量,并提供了图表和模板等功能
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

Istio

是一款开源的服务网格,分为控制平面,与数据平面两部分。用于管理服务之间的流量、策略和安全。Istio可以自动化地添加负载均衡、流量控制、故障恢复、度量、监控和日志记录等功能,从而提高应用程序的可靠性和安全性
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

Prometheus

普罗米修斯,开源的应用程序监控和告警系统,可以帮助用户监控应用程序的状态和性能。Prometheus提供了一个灵活的查询语言和可视化界面,可以使用它来监控系统资源的使用情况、诊断应用程序问题、识别瓶颈和优化性能

纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

Jaeger

开源的分布式跟踪系统,最初由Uber公司开发并开源。主要用于分布式系统中的可视化监控、调试和故障排除。其主要包括以下几个结构:

  1. Agent:负责接收来自应用程序的跟踪数据,并发送给Collector
  2. Collector:收集来自Agent的跟踪数据,将其存储到后端存储系统,如Elasticsearch、Cassandra
  3. UI:提供一个易于使用的操作界面,包括搜索、过滤、排序
  4. Query:负责查询存储在后端存储系统中的跟踪数据,并返回一个可视化的跟踪图表
    纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

Envoy

一个开源的高性能、可扩展的边缘和服务代理,用于处理现代的微服务架构,它提供了负载平衡、流量管理、安全性、观察和监控等功能。可以支持各种通信协议和格式,如HTTP、gRPC、TCP
纯小白也能看懂,十分钟帮你快速了解云原生概念,云原生,云原生,devops,服务网格,容器化技术

四、前路漫漫

尽管云原生发展非常蓬勃,但是毫无疑问,其现在也面临着许多挑战。目前来说,可以总结出四大点:文章来源地址https://www.toymoban.com/news/detail-624381.html

  1. 复杂:云原生涉及多个组件和工具,需要深入的技术知识和经验才能正确实现和管理
  2. 安全:相较于传统的架构,由于云原生环境的复杂性和开放性,安全威胁和漏洞可能会增加
  3. 成本:实施和管理云原生环境需要大量的人力、物力和财力。小企业可能只能考虑租用现有云提供商的服务
  4. 标准:云原生是一个相对较新的技术,尚未存在普遍接受的标准,互操作性和可移植性仍存在问题

到了这里,关于纯小白也能看懂,十分钟帮你快速了解云原生概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • STP生成树协议(超详细小白也能看懂)

    STP生成树协议(超详细小白也能看懂)

    目录 一、为什么要用STP 二、STP的作用 三、STP操作 四、STP名词解释: 五、生成树选举办法 六、生成树选举因素 七、根桥选举: 八、根端口的选举 九、端口状态 十、定时器 十一、故障恢复时间         十二、广播风暴 十三、广播风暴危害 十四、BPDU组成 十五、STP的一

    2024年02月09日
    浏览(5)
  • 小白也能看懂的零信任SDP介绍

    小白也能看懂的零信任SDP介绍

    SDP全称是Software Defined Perimeter,即软件定义边界,是由国际云安全联盟CSA于2013年提出的基于零信任(Zero Trust)理念的新一代网络安全技术架构。 一个经典访问关系普遍都可汇总为这样的访问模型:【终端】-【网络】-【业务系统】。访问最初是由终端产生请求,通过网络发送给

    2024年02月08日
    浏览(6)
  • 【小白教程】十分钟搭建Stable Diffusion WebUI,白嫖三个月

    【小白教程】十分钟搭建Stable Diffusion WebUI,白嫖三个月

    Stable Diffusion 是一款功能异常强大的AI图片生成器。它支持文字生成图片,图片转图片,使用各种各样的模型来达到你想要的效果,还能训练你自己的专属模型。 简单来说,即使你没有绘画功底,只要文笔叙说的够详细准确也可以画出自己想要的图片,甚至超乎你的想象。 当

    2024年02月15日
    浏览(32)
  • 三分钟搞懂git patch 补丁的使用,小学生也能看懂

    Git中的Patch(补丁)功能允许用户将不同分支或提交之间的更改保存为一种可重用的文件格式。通过使用Patch,您可以将您的更改发送给其他人进行审核或协作,以及在不同的Git仓库或版本控制系统之间导出或导入更改。 在Git中,使用以下命令来创建和应用Patch: 1、创建Pat

    2024年02月14日
    浏览(4)
  • TCP/IP协议族之TCP、UDP协议详解(小白也能看懂)

    TCP/IP协议族之TCP、UDP协议详解(小白也能看懂)

            在进行网络编程之前,我们必须要对网络通信的基础知识有个大概的框架,TCP/IP协议族涉及到多种网络协议,一般说TCP/IP协议,它不是指某一个具体的网络协议,而是一个协议族。本篇章主要针对IP协议、TCP和UDP协议记录总结。 OSI七层参考模型是国际标准化组织(

    2024年02月02日
    浏览(10)
  • 十分钟快速部署一个自己的AI聊天机器人

    十分钟快速部署一个自己的AI聊天机器人

    个人名片: 🐼 作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️ 个人主页🥇: 落798. 🐼 个人WeChat:见文末 🕊️ 系列专栏:🖼️ 零基础学Java——小白入门必备 重识C语言——复习回顾 计算机网络体系———深度详讲 微信小程序开发——实战开发 🐓 每日一句:🍭

    2024年02月14日
    浏览(35)
  • YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

    YOLOv8预测参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

    YOLOv8现在可以接受输入很多,如下表所示。包括图像、URL、PIL图像、OpenCV、NumPy数组、Torch张量、CSV文件、视频、目录、通配符、YouTube视频和视频流。表格✅指示了每个输入源是否可以在流模式下使用,并给出了每个输入源使用流模式的示例参数 预测参数 Key Value Description s

    2024年02月11日
    浏览(9)
  • 嘉立创专业板stm32拓展板十分钟快速入门

    嘉立创专业板stm32拓展板十分钟快速入门

    本文是为不想深入学PCB但是迫不得已需要用PCB的人或者想要做一个32的拓展版的童鞋们的快速入门并做出板子的博客,因此,本文内容不会深入讨论元件,只会教授基础流程,并且没有画芯片。 本文内容:1.如何弄一个PCB工程 2.如何画原理图 3.如何画PCB 4.如何弄丝印 5.如何下

    2024年02月08日
    浏览(8)
  • 十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

    十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

    有一个使用了 Epoll 的 C 项目,笔者平时用的 Linux 主力开发机不在身边,想在 macOS 上开发调试,但是没有 Linux 虚拟机。恰好,JetBrains CLion 的 Toolchains 配置除了使用本地环境,还支持 SSH、Docker。 笔者使用 CLion + Docker Desktop,不到十分钟就能在 macOS 上搭建一个能够开发使用 L

    2024年02月08日
    浏览(32)
  • 实际开发中常用的设计模式--------策略模式(知识跟业务场景结合)-----小白也能看懂(通俗易懂版本)

    1.策略模式定义: 策略模式是一种行为型设计模式,它允许在运行时动态地改变对象的行为。策略模式将将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换从而使得算法的变化不会影响到客户端 2.简单的策略模式示例代码: 在上述代码中,SortStra

    2024年02月13日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包