【cfeng work】什么是云原生 Cloud Native

news2024/12/29 10:40:56

WorkProj

内容管理

    • 云原生
    • 云原生应用
      • 十二要素应用
      • cfeng的work理解


本文introduce 云原生 Cloud Native相关内容


随着技术的迭代,从最初的物理机—> 虚拟机,从单机 —> 分布式微服务, 现在的热门概念就是云☁(cloud), 云原生,云计算,云服务,云主机,云…, cfeng在work接触的全部就是云☁,所以借此分享一下个人对于云原生的理解

Cloud Native,服务围绕Cloud, 而程序设计之初就Native是考虑云, 充分发挥云平台的弹性和分布式优势

以前企业的服务基本都是直接部署在公司的物理机上面,单机架构,所以性能不好,一个应用可能就一台服务器, 随着云计算的普及, 应用一般都会上云,慢慢就出现了云原生

在这里插入图片描述

云原生

云原生最早由Pivotal的Matt Stine提出,值得一提的是,云原生与微服务类似,不是特指某种技术,而是一种思想

云原生技术有利于各组织在公有云、私有云和混合云等新型环境中构建和弹性扩展应用, 代表技术包括容器、服务网格、微服务、不可变基础设施、声明式API

生于云,长于云

云原生应用 通常采用了DevOps、CICD、微服务和容器技术

img

云原生应用

采用云原生思想构建的应用,云原生应用能够部署在不同的环境中(环境无关),具有一定的可扩展性、容错性和可观察性(云操作)、应为松耦合的分布式系统(微服务)、大量技术支撑云原生应用。(常见docker、k8s、jenkins + git仓库…)

云原生应用运行的云环境可以构建在主流的PaaS和IaaS, 与k8s等容器技术结合【并不是发明新技术】

主流观点认为,云原生的四要素为

  • 微服务: 云原生定义包括微服务,组织架构决定产品形态【服务编写语言可不同】 比如一个用python、另外一个用go、java都可以
  • 容器化: 主要就是为了让应用部署在不同的环境,常见docker (容器)+ k8s(容器编排系统)
  • DevOps: Dev & Ops 开发运维一体化,这个dev应为开发 + 测试(maybe), 尽可能降低应用开发完成 ----> 部署成功之间的流程, 所以应当使用相关的流水线技术实现【一键部署】
  • 持续交付 : 一种开发思想,区别于传统的瀑布开发模型,不误时开发,小步快跑,【开发版本和稳定版本并存】 — 这个只要长期维护一般都是,支持频繁更新

云原生不只是简单的服务上云,而是Native就考虑云,更好利用云

云原生对基础设施要求较高,不只是云平台,周边生态亦是,java中Spring Cloud可以让基于Spring 开发的应用快速满足弹性、可伸缩、高可用等多项要求

对于非spring cloud、java应用,对应的概念就是将应用SDK剥离到独立的side Car(系统独立运行进程)中, 比如Envoy, 最流程的服务网格的试下Istio就依赖Envoy

ODCA发表的云上应用成熟度模型:

  • 虚拟化: 应用可以运行在不同的环境 【通过镜像实现】
  • 松耦合: 应用和底层设施分离,比如【应用程序和数据库分离,应用程序和文件存储分离】
  • 抽象化: 运行环境抽象、相关流程也需要抽象 【部署、弹性扩容】 — 服务无状态且容灾
  • 适应性: 自动适应各种环境变化、自动弹性伸缩…

十二要素应用

十二要素应用指的是云上运行应用遵守的12条最佳实践

  • 基准代码: 一份基准代码,多份部署 【就是代码的版本管理做好】, 因为实际开发对应多中环境,像dev、sit、uat、灰度、生产,可能应用的版本号不同的
  • 依赖 : 显式声明依赖关系, 比如java中使用maven, 环境依赖放在dokcerFile
  • 配置 : 在环境中存储配置; 对于java来说,项目yaml中配置项做成变量的形式,之后在环境中配置这些变量,不在代码中控制【当然可以利用Spring Cloud的Nacos云配置】, 比如可以配置在Potainer或者k8s中
  • 后端服务: 后端服务当作附加资源,这个后端服务指的是服务依赖的服务,比如数据库、消息队列等,最好能够做到松耦合,比如改一个配置,就启用了不同的组件, work中出现的信创生态的国产化组件替换就体现了该思想
  • 构建、发布、运行: 严格分离构建和运行, 就是说流程应当严格遵守,不能说打包之后在包里面修改
  • 进程: 以一个或者多个无状态进程运行应用 【主要就是无状态,不同进程内存由不同内容不符合要求,最好就是分布式的缓存】
  • 端口绑定: 通过端口绑定提供服务 ; 比如docker构建,通过端口就能访问服务
  • 并发: 通过进程模型进行扩展; 比如部署集群多节点方式进行水平扩展【无论是同一台机器启动更多进程,还是Kubernetes集群启动更多Pod】— 依赖于无状态
  • 易处理: 快速启动、终止的最大化健壮性 【物理宕机等通过各种手段降低故障】
  • 开发环境与线上环境等价: 尽可能保持开发环境与线上环境等价 【==cfeng咋work时就有由于不等价造成的问题】, 最常见的就是线上集群部署,而开发是单节点的
  • 日志: 把日志当作事件流 ; 不建议通过应用管理日志,而是输出到STDOUT,比如统一的日志管理,cfeng在work时就利用ELK进行日志收集管理
  • 管理进程: 后台管理任务当作一次性进程运行

cfeng的work理解

cfeng做的就是云原生应用【基于云原生架构】, 满足了容器化、微服务、Devops和持续交付

在work中的体现:

  • 不需要停机更新,由于部署在☁上,直接更新版本号即可,同时更新较为频繁,uat/di环境的部署可能半天就从160版本迭代到170版本,每次都是直接换一个镜像版本号即可

  • 不依赖网络资源,比如ip和端口都是无限制的

  • 应用自动化部署和运维,运维全自动,流水线部署

  • 使用docker+ k8s镜像技术, 有很好的移植性

  • 应用微服务,松耦合,各种微服务 + 底层基础设施分开部署

云原生架构也就好理解了,就是Native Cloud的架构设计,整个应用设计之时就考虑到Cloud,整体架构上满足云原生思想,最终构建出云原生应用,分布式微服务、容器化加容器编排、自动化流水线

cfeng目前了解的云原生的相关技术: docker + k8s(容器化 + 容器管理), jekins + github(流水线构建 + 代码托管)【potainer和k8s的环境变量配置】其它的常见的分布式微服务的概念技术就不赘述了…

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

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

相关文章

Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2023 年 5 月更新)

Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2023 年 5 月更新) 在虚拟机、Mac 电脑和 TPM 不符合要求的旧电脑上安装 Windows 11 的通用方法总结 请访问原文链接:https://sysin.org/blog/windows-11-no-tpm/,查看最新版。原创作品…

Tomcat安全配置

1.删除webapps里面自带文件(关闭manage页面等) 删除webapps目录中的docs、examples、host-manager、manager等正式环境用不着的目录,这一步就可以解决大部分漏洞。有的网站没删除manager页面,并且管理员弱口令,导致直…

PCL点云处理之三维凸包点提取与凸包模型生成,分别保存到PCD与PLY文件(一百七十一)

PCL点云处理之三维凸包点提取与凸包模型生成,分别保存到PCD与PLY文件(一百七十一) 一、算法介绍二、算法实现1.代码2.结果总结一、算法介绍 现给定一块点云,需要实现下面两个功能开发 (1)获取点云的三维凸包点,保存至PCD格式的文件中 (2)获取点云的三维凸包模型,保存…

华为OD机试真题B卷 Java 实现【报数游戏】,附详细解题思路

一、题目描述 100个人围成一圈,每个人有一个编码,编号从1开始到100。他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少&#xff…

Netty核心源码剖析(一)

准备工作 将Netty的源码包netty-all-4.1.20.Final-sources.jar添加到项目中; 在io.netty.example包下,有很多Netty源码案例,可以用来分析! 1.Netty启动过程源码剖析 1>.将io.netty.exampler.echo包下的文件复制到当前项目的其他目录中; 2>.EchoServer.java /*** Ec…

建立第一个react页面

<body><!-- 准备一个容器 --><div id"test"></div><!-- 必须在周边库之前引入核心库 --><script type"text/javascript"src"./js/react.development.js"></script><!-- 引入周边库 --><scr…

实战项目!上位机与PLC通讯

大家好&#xff0c;我是华山自控编程朱老师&#xff0c;今天给大家介绍下我之前设计的入门项目——工件正反面识别及角度测试系统 系统功能 首先&#xff0c;系统的功能包括识别工件正反面&#xff0c;测试工件旋转角度。这些任务是由PLC来控制工件传送、启动拍照以及上位机。…

张小飞的Java之路——第四十三章——字符流

写在前面&#xff1a; 视频是什么东西&#xff0c;有看文档精彩吗&#xff1f; 视频是什么东西&#xff0c;有看文档速度快吗&#xff1f; 视频是什么东西&#xff0c;有看文档效率高吗&#xff1f; 诸小亮&#xff1a;接下来我们学习——字符流 张小飞&#xff1a;刚才的…

第二十三篇、基于Arduino uno,控制RGB灯亮灭——结果导向

0、结果 说明&#xff1a;RGB灯亮红色&#xff0c;一秒钟闪烁一次&#xff0c;可以很方便的更改灯的颜色&#xff0c;如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;RGB灯有共阴极的&#xff0c;也有共阳极的&#xff0c;从外观上是看不出来的&#…

C++ 学习 ::【基础篇:12】:C++ 类的基本成员函数:构造函数基本的定义与调用 |(无参构造与有参构造及缺省参数式构造)

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…

MySQL - 读写分离、一主一从、双主双从

文章目录 读写分离一、介绍二、一主一从2.1 原理2.2 服务器准备2.3 一主一从读写分离2.3.1 MyCat 配置2.3.1.1 schema.xml2.3.1.2 server.xml配置 三、双主双从3.1 双主双从介绍3.2 服务器准备3.3 双主双从读写分离3.3.1 主库配置3.3.1.1 211主库配置3.3.1.2 213主库配置 3.3.2…

rknn ffmpeg硬解码环境配置以及调用代码

查看rk3588系统信息 cat /proc/version 本编译在 Debain/ubuntu20.04 这两家板子上编译成功。 安装依赖 sudo apt-get install libx264-dev sudo apt-get install libfaac-dev sudo apt-get install libmp3lame-dev sudo apt-get install libtheora-dev sud…

综合能效管理:全面助力企业节能降耗 86型双联明装墙插面板智选套装上市

能源的综合利用效率主要体现在安全性、节能性及经济性方面。随着物联网智能技术的发展&#xff0c;能源监测与安全监控管理不仅面向能源生产、存储、传输、配送、运用环节&#xff0c;还需要更广泛地、深入地涵盖到分布式能源节点的能源使用消耗的全过程&#xff0c;基于对用户…

官宣代言人王一博,老板电器为打开厨电增量市场提供新思路

文丨智能相对论 作者丨佘凯文 最近两年&#xff0c;全球都处于一个经济结构调整的时期&#xff0c;许多行业深受影响。像国内厨电行业&#xff0c;在诸多因素影响下&#xff0c;就迈向了稳定发展的新常态。 与此同时&#xff0c;行业内部竞争也开始发生改变&#xff0c;从过…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第一章 网络协议基础 )

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而且…

5月面试碰壁15次,我哭了....

3年测试经验原来什么都不是&#xff0c;只是给你的简历上画了一笔&#xff0c;一直觉得经验多&#xff0c;无论在哪都能找到满意的工作&#xff0c;但是现实却是给我打了一个大巴掌&#xff01;事后也不会给糖的那种... 先说一下自己的个人情况&#xff0c;普通二本计算机专业…

FastChat(小羊驼模型)部署体验

简介 前段时间&#xff0c;斯坦福发布了Alpaca&#xff0c;是由Meta的LLaMA 7B微调而来&#xff0c;仅用了52k数据&#xff0c;性能可以与GPT-3.5匹敌。 FastChat集成了Vicuna、Koala、alpaca、llama等开源模型&#xff0c;其中Vicuna号称能够达到gpt-4的90%的质量&#xff0…

Java基础(项目1)——项目设计分层 dao + service + test +ui + exception + log + util

目录 引出DAO层---和数据库交互1.通过IO流存储到dat文件2.通过JDBC存储到数据库【测试】用junit进行测试&#xff1a;Test注解 Service层---处理业务1.项目设计分层初步2.service处理业务相关3.和UI层以及dao层进行交互 UI层界面---控制台&#xff0c;单例模式1.创建单例的方法…

牛客-【237题】算法基础精选题单

2023年06月02日更新 NOIP2007 字符串的展开NOIP2009 多项式输出NOIP2010 机器翻译 NOIP2007 字符串的展开 第一道题目花费的时间是最多的&#xff0c;还wa了几次 需要特别注意的一个特殊情况时 1-a 这个时候a的ASCII是大于1的&#xff0c;需要满足的一个条件是’-前后的符号属…

Bugku 本地管理员

打开链接 F12查看源码&#xff0c;发现了一个base64字符串 解码得到test123&#xff0c;猜测是密码 输入用户admin&#xff0c;密码test123 尝试登录&#xff0c;发现不行 要求似乎只允许本地访问&#xff0c;于是使用bp抓包改包后重发 在请求头加上 x-forwarded-for: 127.0…