云原生入门系列(背景和驱动力)

        做任何一件事,或者学习、应用一个领域的技术,莫过于先要想好阶段的目标和理解、学习它的意义是什么?解决了什么问题? 

        这部分,就尝试来探讨下这个阶段需要理解并达成的目标以及践行云原生的意义在哪里。

1.历程

        任何阶段技术的出现,都会有一个基本背景作为起源,最初是从解决一些关键点的问题出发,逐渐的变成阶段的主流。技术领域沿着这条脉络,去尝试理解会更容易入门一些。

        这里尝试梳理一个非官方权威的演变阶段,来整理下云原生的基本脉络。

应用架构演变

1)商用IOE体系阶段

        这个不用说,在IT领域做的比较久的工程师们能理解,早期的电信、银行等领域的大型系统基本上都是老外企业提供的商用的产品搭建的,我们主要还是以开发业务级别的框架和代码为主。

        这里的IOE是一类昂贵的商用解决方案的代名词,商用的小型机、商用磁盘阵列存储、商用的Unix、商用的中间件、商用的数据库一系列的内容构建的系统。

        在这个阶段构建的系统,成本确实不低,所以这时候的构建的大型系统都是一些较大的行业去践行的事情。基本结构如下:

  • 基础资源构筑,靠的是小型机、商用高端的存储、能力强劲的数据库(这个阶段主要几家美国的企业处于半垄断地位,相互竞争)
  • 系统的分布式能力建设,依靠商用的中间级,那个时期商用的中间件研发投入也相对较大,所以基本上架设系统的核心体系都还是封闭的体系。

关注的问题:

  • 成本高昂,一般中小型企业尤其是类似移动互联网前期的业务企业,都比较难以构建丰富的业务场景的系统,仅限于大企业应用。硬件的成本受限于商用小型机高昂的价格,软件成本受限于商用软件的授权费用,软件方面人员门槛等成本(成本)
  • 基于这套体系构建的软件系统,稳定性相对高些,出问题的概率低,但是这些重要的基础设施其自身的维护相对昂贵、需要高成本的环境要求。稳定性相对高,但是成本也相对高昂,尤其应对更大规模的业务,所以基本聚焦在通信、金融等领域(稳定性)
  • 基于这套体系,在构建的基础设施上,体系搭建的效率相对较低,每次容量的扩充,都对系统有较高要求的迁移或者割接升级,业务开发方面也难以快速的迭代,每次系统的升级都是规模性操作。(效率)

2)服务化单体(去IOE后的X86阶段)

        X86服务器很早也就诞生了,但是出于稳定、安全性等方面考虑没有大规模推广应用起来。根本原因还是网络化的分布式系统会因为网络等因素,导致在“差不多化”的体系中不够健壮、成熟、普及。(商用的产品搭建的分布式大型的系统成本还很高,这个后面也会说到上云考虑的成本、效率等问题)

        在后续的去除IOE的条件慢慢成熟后,最先去的就是小型机这个计算体系。在去小型机的路上,需要实现一套成本和稳定性都可控的分布式软件系统,这个阶段基本上都是要有相当投入,才可以做到,这个阶段自研和部分开源并存。 

  • 这个阶段主要实现的是去除I,大规模启用X86服务器,随之而来的开源的Linux取代了商用Unix操作系统;
  • X86化后,服务器数量增大,随着三层架构前后端解耦,引入负载均衡代理层(商用F5或者Nginx,Haproxy等)替换原先分布式中间件,实现分布式应用能力;
  • 在原先重度依赖数据库的基础上增强了实时性,增加了缓存层,缓存领域也有很多自研和开源的实现出现,分层架构实现更清晰。

关注的问题:

  • X86服务器算力不如小型机,迁移后的服务器数量成倍增加,增加运维的维护成本;另外自研相关分布式软件,拉高了投入门槛,增加了成本(这里机器本身的成本从小型机转变过来的同等的计算量会节省一部分,但是需要结合损耗比来看)。(成本)   
  • X86服务器损坏率较高,因为相对廉价,因此具备冷备、热备等高可用能力要求增加,这部分也是非常考验投入保障稳定性要求的地方。(规模和稳定性)
  • 机器分化成更小的计算单元,机器的规模就会增加很多,就开始需要开始管理这些机器,组合成共享的资源让应用在上面能够很快速的做部署和运行,提升效率。(效率)

3)服务化拆分(开源阶段)

        开源在整个应用架构的演变中让开发分布式应用变得普惠,在计算机语言不断高度抽象的进程中,开源盛行直接拉低了进入和应用分布式架构的门槛,承担着非常重要的角色。

  • 原本存量的商用的中间件,技术框架等因为开源的盛行,尤其在国内的盛行,开始出现规模替代;
  • 随着分布式技术栈从自研到开源的迁移,基本上奠定了大规模开发分布式应用的基础;
  • 分布式应用开发变得简单,开源的生态繁荣,开源组合的系统变得更容易。

关注的问题:

  • 尽管在资源层面从小型机到成本低下的x86架构,甚至虚拟化到容器进一步微化资源单元,但是成本随着应用规模、数据的规模随之提升,如何提升大规模资源共享情况下的利用率是逐渐需要解决的问题。(成本)
  • 随着在线实时服务的不断增长,规模和稳定性的要求越来越高,双活、两地三中心、甚至多活成为线上业务必备能力,这些能力要求的同时都带来了应用和资源的规模增加,稳定性的要求越来越高。另外随着开源分布式技术栈规模运用,各种分布式集群化的要求也不断增长(规模和稳定性)
  • 业务从需求到开发,部署上线的效率一直是企业的IT研发团队追求的主题,这个阶段如何构建一套从开发,应用构建到部署,发布,灰度等业务研发体系变得重要(效率)。

4)云计算的阶段

        从上面的演变过程,过去业务系统的开发和IT技术能力结合紧密,经常按照领域实现垂直建设(业务系统+专有IT技术能力)。随着企业关注的成本、效率、规模和稳定性支撑的深入,越来越需要把基础技术能力沉淀下来,让业务需求的开发和推出聚焦业务领域的软件开发工作。

        尤其在开源被普及化之后,搭建的每个IT能力部分都是服务化、分布式集群化的,更加需要相对统一的管理支撑体系。公有云和私有云就是在这样的背景下面,开始扩张的建设之路(云的概念很早提出,但是在最终被普及化的今天是需要一个漫长的过程)。

        催生了今天很多的云厂商商业模式,不管是企业自建的私有云还是提供专业服务的公有云,对于业务支撑体系来讲,“业务上云“成为核心的趋势和强烈的诉求。

2.意义

        那为什么要云原生呢?相信从上面企业级的业务支撑体系来看,基本上可以总结如下:

  • 对于企业来讲,使用IT技术为业务支撑,赋能是数字化阶段的必然过程;企业在使用IT技术方面的考虑通常是上面尝试总结的那几个点:“成本、规模和稳定性、效率、安全等”
  • 云是IT支撑演变到一定阶段的产物,是把上面演进过程中的通用、可复用的各种能力下沉下来,构筑可复用、按需的基础设施。(”业务上云“的架构其实就是云原生化的本质所在,就是业务应用建设,怎么有一套标准化的云上架构,更好的利用云上的核心能力,服务好业务,让业务开发不需要关注如下的特性,聚焦业务本身。)
    • 所有资源共享,追求极致的成本
    • 所有软件分布式化,追求更大规模,更稳定的环境
    • 所有软件部署、运维等自动化(追求高效率)
  • 云原生是业界对这一切的思考,最终通过类似CNCF等这些组织沉淀和推广应用(代表集体的智慧)
  • 在这个过程中,通过云原生技术使组织能够在“现代动态环境”中构建和运行可扩展的应用程序(这个现代运行环境当下指的是云或者其他不可变基础设施)
  • 那么具体到当下的阶段,就是比如在公共、私有和混合云的环境下,构建容器、服务网格、微服务、不可变基础设施和声明性API就是实现云原生这种方法的例子。

        所以我们当下所谈的云原生的实践和应用,都是结合当前技术演变的基础之上,沉淀的一些最佳实践思路和技术构筑的一套支撑体系。这套技术体系中最核心的部分,就是围绕:容器化基础设施环境、微服务、服务网格等具体的标准化的开源技术栈。

3.目标

        理解了云原生的意义,​就能理解当下云原生架构的思路是建立在当前标准组织或者有影响力的组织(如CNCF)推行的标准化技术栈的体系基础之上的方法论实践。

        在当下的业务支撑体系,按照如下的技术演进思路进行组合。

  • 结合容器和容器编排技术(Docker+k8s)构筑声明式架构的不可变基础设施,基础设施的标准化和灵活、稳定性对架设在异构的云环境中尤为重要;
  • 结合云原生的相关服务网格、微服务相关的技术服务构筑标准化的业务架构,标准统一意味着成本、效率和稳定性的可控;
  • 云原生的体系,随着标准组织在不断的扩充蓝图,覆盖到云上业务支撑的方方面面,同时结合敏捷化的Devops向开发者赋能。

        最终结合云原生的建设评估模型,来检验整个构筑的云原生支撑体系的成熟度。当然,我们IT支撑体系支撑的好不好,最终还是业务发展的情况来决定的,业务是最终企业运营聚焦的关键点。

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

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

相关文章

Windows 7 连接 Windows 10 共享打印机,Windows 无法连接打印机,操作失败,错误为0x0000011b 的终极解决办法

Windows 7 连接 Windows 10 共享打印机出现错误 0x000001b,建议不要通过卸载Windows10系统的KB5005565安全更新来解决该问题(犹如削足适履),正确的处理方法是手工添加一个本地打印机,本方法是安全可靠的。本文详述了该…

OpenHarmony 4.1计划明年Q1发布, 5.0预计Q3发布

据HarmonyOS官方组织透露,OpenHarmony 4.0 版本已于 10 月 26 日正式发布,开发套件同步升级到 API 10。开放原子开源基金会现更新了 OpenHarmony 4.1&5.0 版本路线图。据介绍,OpenHarmony 4.1 Beta 版本预计将于年底完成测试并发布&#…

《向量数据库指南》——向量数据库Milvus Cloud搭建Excel公式编辑器助手

引言 在日常工作中,Excel是我们经常使用的办公工具,而熟练应用Excel公式对于提高工作效率非常重要。然而,有时候我们会遇到一些复杂的需求,需要用到较为专业的Excel公式,而这正是Excel公式编辑器助手的用武之地。本文将介绍如何利用向量数据库Milvus Cloud搭建GPT大模型和…

vue3组件化开发页面之渲染函数实现

文章目录 前言一、渲染机制虚拟 DOM渲染管线 二、渲染函数基本用法声明渲染函数Vnodes 必须唯一 三、页面使用渲染函数及组件配置总结如有启发,可点赞收藏哟~ 前言 组件化开发是目前开发的常态 本文记录页面拆分多个不同组件模块,然后再基于渲染函数实现…

[MICROSAR Adaptive] --- Persistency

1 persistency 概念介绍 percistency持久化,上一集我们介绍过 从一个应用程序的角度来看 它能使用的API可以分为三类,ara::per的API就属于这里的第二类direct API,只需要编译链接相应的库就可以直接使用了。我们先来了解ara::per的主要功能,ara::per提供持久化存储相关的,…

最新AIGC创作系统ChatGPT网站源码,Midjourney绘画系统,支持最新GPT-4-Turbo模型,支持DALL-E3文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

Django自动生成docs接口文档

1.创建Django项目 python manage.py startproject django20252.创建子应用 python manage.py startapp api3.安装依赖包 pip install coreapi4.创建urls.py from django.contrib import admin from django.urls import path, include from rest_framework import routers f…

云南旅游攻略思维导图

马上就要2024年春节了,相信小伙伴们都蠢蠢欲动了,春节去哪里玩?今天小P来给大家分享云南旅游攻略了,希望可以对大家有所帮助。 为什么要来云南呢?因为云南的绝大多数地方,一年四季总是那样温暖;…

渗透测试高级技巧(一):分析验签与前端加密

“开局一个登录框” 在黑盒的安全测试的工作开始的时候,打开网站一般来说可能仅仅是一个登录框;很多时候这种系统往往都是自研或者一些业务公司专门研发。最基础的情况下,我们会尝试使用 SQL 注入绕过或者爆破之类的常规手段,如果…

头插法尾插法建立单链表

头插法建立单链表 #define NULL 0 #include<stdio.h>typedef struct LNode {int data;struct LNode *next; }LNode,*LinkList;//单链表尾插法 LinkList List_TailInsert(LinkList &L){int x;L (LinkList)malloc(sizeof(LNode)); //初始化空表LNode *r L; …

如何在Linux以docker-compose方式快速部署运行StackEdit,并实现公网访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器&#xff0c;在GitHub上拥有20.7k Star&#xff01;&#xff0c;它支持将Markdown笔记保…

52.seata分布式事务

目录 1.事务的四大特性。 2.分布式服务的事务问题。 3.seata。 3.1理论基础。 3.1.1CAP定理。 3.1.2BASE理论。 3.2初识Seata。 3.2.1Seata的架构。 3.2.2部署TC服务。 3.2.3微服务集成Seata。 3.3 seata提供的四种分布式事务解决方案。 3.3.1 XA模式。 3.3.1.1 X…

005 OpenCV直方图

目录 一、环境 二、直方图原理概述 三、代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、直方图原理概述 OpenCV是一个广泛使用的开源计算机视觉库&#xff0c;它提供了许多用于图像处理和分析的函数和算法。其中&#xff…

分享-Spss下载含spss25.spss26.spss27等版本

为了学习spss买的&#xff0c;分享安装程序给大家 SPSS 27是一款用于统计分析和数据挖掘的软件&#xff0c;以下是SPSS 27的功能介绍和配置建议&#xff1a; 功能介绍&#xff1a; 数据管理&#xff1a;SPSS 27可以对数据进行管理和清洗&#xff0c;包括数据输入、缺失值处理…

微软和 OpenAI 的桥段,30 年前的数据库圈也上演过

历史不会重复, 却压着相同的韵脚。 这是一段发生在 30 年前的历史&#xff0c;也是在当时最热的技术领域-数据库&#xff0c;主角之一同样是微软。 论白嫖收购&#xff0c;微软一直是行业内的佼佼者&#xff08;虽然也发生过收购诺基亚这样的翻车事故&#xff09;。这也是它基…

自动化测试 —— 元素定位

1.什么是自动化测试 自动化测试的概念:软件自动化测试就是通过测试工具或者其他手段&#xff0c;按照测试人员的预定计划对软件产品进行自动化测试&#xff0c;他是软件测试的一个重要组成部分&#xff0c;能够完成许多手工测试无法完成或者难以实现的测试工作&#xff0c;正确…

9.2 Windows驱动开发:内核解析PE结构导出表

在笔者的上一篇文章《内核特征码扫描PE代码段》中LyShark带大家通过封装好的LySharkToolsUtilKernelBase函数实现了动态获取内核模块基址&#xff0c;并通过ntimage.h头文件中提供的系列函数解析了指定内核模块的PE节表参数&#xff0c;本章将继续延申这个话题&#xff0c;实现…

如何用CHAT写励志文章?

问CHAT&#xff1a;写一篇以《过了60岁要积极面对身体疾病的坎儿》为题目&#xff0c;写一篇300字励志文章 CHAT回复&#xff1a; 标题&#xff1a;《过了60岁要积极面对身体疾病的坎儿》 人生&#xff0c;有时会像一趟不期而遇的旅程&#xff0c;各自带着乐观或悲观、阳光或…

(论文阅读51-57)图像描述3 53

51.文献阅读笔记&#xff08;KNN&#xff09; 简介 题目 Exploring Nearest Neighbor Approaches for Image Captioning 作者 Jacob Devlin, Saurabh Gupta, Ross Girshick, Margaret Mitchell, C. Lawrence Zitnick, arXiv:1505.04467 原文链接 http://arxiv.org/pdf/1…

如何使用无代码系统搭建软件平台?有哪些开源无代码开发平台?

无代码是什么 无代码开发&#xff0c;也称为零代码&#xff08;Zero Code&#xff09;开发&#xff0c;是一种技术概念。无代码开发无需代码基础&#xff0c;适合业务人员、IT开发及其他各类人员使用。他们通过无代码开发平台快速构建应用&#xff0c;并适应各种需求变化&#…