基于云原生技术栈构建企业统一基础技术平台(总纲)

一、概述

本文主要介绍基于云原生技术栈建设企业技术平台的总纲,该技术平台对业务应用全生命周期进行管理和支撑,提供从需求交付、生产运行、稳定保障、资产运营,以及安全生产的体系化解决方案,为企业自建或采购技术平台提供参考。

本文陈述逻辑是以业务应用是一种社会生产力为观点,阐述应用(软件)的社会价值,并提供新时代以云原生技术为先进技术及理念支撑业务应用的技术平台建设方案。

二、数字技术提升社会生产力

图片

数字化与数字化转型核心的目标就是以数字技术代替传统以人力为主的生产经营活动,将生产经营的业务逻辑以软件应用的方式进行承载,结合通信技术屏蔽了地理位置带来的信息交换延迟,用以提升社会生产力和生产效率,推动社会文明的快速发展。

三、“应用”承载业务逻辑,业务为企业创造价值

图片

随着生产力的发展、社会的进步,企业的生产经营方式也发生着变化,特别是在几次工业革命的推动下,企业已经从最初的工厂手工生产转换到基于数字技术的自动化生产。数字化承载业务可以分为很多场景,如自动化控制,机器人,以及软件业务应用等等;云原生可以为其他数字化场景提供支撑,而本系列文章主要是构建企业云原生技术平支撑“业务应用”场景进行展开。

四、云原生是下一代云计算基础

企业数字化转型已经逐渐进入深水区,降本增效、安全可控成为新的转型目标。企业为了更好的提升利润,主要有两个方向,对外增加营收,对内节省开支。对内节省开支落实到 IT 部门后,降本增效就是核心 OKR/KPI 目标,而 IT 部门降本增效最合理的措施就是管理好现有的 IT 资产,云原生技术为企业降本增效提供了一整套的产品和解决方案。

据 Gartner 预测,部署在云原生平台上的数字工作负载将由 2021 年的 30% 增长至 2025 年的 95%,以容器、微服务、DevOps 为代表的云原生技术已在金融、电信、互联网 等多个行业得到实践和验证,正在为企业提供具有弹性、韧性及拓展性的用户体验。

五、云原生技术支撑应用全生命周期

图片

软件生命周期大致可以分为“需求交付”、“生产运行”、“稳定连续”、“资产运营”,以及“安全生产”这五大类别。

5.1 需求交付

需求交付阶段主要是将业务逻辑或者产品需求转化成代码和程序的过程。该阶段按照软件生产模式差异也可以分为高效生产和快速创新两种类型。

高效生产是目前主流的软件生产模式,常以DevOps为最佳实践,它以敏捷研发的理念对软件版本进行快速迭代和交付。在这个阶段中需要关注相关软件各种架构的设计、需求的管理、研发过程、测试过程、打包发布过程、过程资产、相关的数据度量、规范标准,以及相关安全等动作。

快速创新是另外一种软件生产模式,它依赖企业已有的基础平台和沉淀的资产,快速复用已有的业务能力进行新业务的二次创新。如基于低代码的模式前端UI拖拉拽模式,依赖的数据和能力引用各种服务的 API 接口进行快速开发;基于编排组装的模式进行模块化服务编排组合开发等。

5.2 生产运行

运行环境是基础应用程序运行的基础平台和基础依赖。传统的应用是以系统进程服务的方式运行,而云原生场景下应用是以容器化进行封装运行在 Kuberentes 环境中,如果基础设施比较完善,还可以基于 Serverless 的方式进行业务程序的开发和运行。

运行依赖是应用程序在设计开发时将部分能力剥离主程序之外,由外部的服务组件通过网络等方式提供该部分能力,这里的外部服务就成了该程序的依赖服务。应用运行依赖大致可以分为存储、中间件和微服务支撑三类。

分布式存储

业务应用运行时产生的部分文件和数据会通过保存到存储的方式进行持久化管理,分布式场景下的存储一般是通过网络的方式远程集中提供。

存储类型一般分为文件存储、块存储和对象存储三类,文件存储是以远程目录的的方式挂载到操作系统的文件系统中使用,如 NFS。块存储提供的是基础的块设备,需要格式化后才能挂载到文件系统使用,如 CEPH-RBD。对象存储是以对象的方式对文件进行管理,通过网络 HTTP 提供文件的读写访问,没有目录层级的概念,如 S3(minio)。

PAAS 中间件

PAAS 中间件不同场景理解的概念不完全一样,本文对PAAS中间的归纳是所有有状态服务,如数据库(MySQ等),缓存(Redis等),消息(Kafka等),搜索(ElasticSearch等)等

微服务支撑

微服务体系是在业务以微服务方式进行设计开发时,以分布式场景进行业务运行时的支撑服务。如服务的注册发展,配置中心,路由分流,流量治理,应用诊断,分布式链路追踪、分布式事务,分布式调度,以及API网关等等。

5.3 稳定保障

运行观测

运行观测是对业务应用的状态观测,主流的可观测维度是日志,指标和链路,也可以扩展包含事件,告警等数据。

业务运行状态通过信息采集、存储、分析、监控以进行展示和告警是基础的运用场景,在结合一定的自动化策略能够为企业提供 AIOPS 的能力。

稳定保障

高可用

业务运行的 SLA 保障,提供高可用、两地三中心等不同级别的高可用能力,保障业务系统对异常故障的容错能力。

在高可用场景一般会以 SLA 来定义,以 RTO/RPO/MTTR 等指标进行量化。即便是理论情况,也没有绝对 100% 的SLA保障,即不能绝对保证业务系统不异常,只能尽量保证减小故障时间和影响,如 99% 、99.9%、99.99%就是三个常用 SLA 指标。

99% 故障时间不超过432分钟/月,7.2小时/月;99.9% 故障时间不超过43.2分钟/月;99.99% 故障时间不超过4.32分钟/月。

不能达到100%是因为考虑实际资源成本以及技术能力,只能保障一定范围的容错,如一个高可用系统在建设时需要考虑服务自身高可用、机器节点的高可用、机柜的高可用、机房设施高可用(交换机、路由器、网络接入、电源等)、多个机房的高可用(同城)、多个地域(异地)甚至多个国家数据中心的高可用等等。

容错场景越全面带来资源投入冗余也就越大,当投入成本与该系统能创造的价值不匹配时,理性的策略是不进行更高层级容灾建设,可以允许一定的故障时长,这就是为啥没有绝对的 100% 稳定的业务系统在资源成本侧的原因。另外一个原因是即使有足够的成本资源投入,也需要有对应的技术、人才、政策等支撑。

高并发

高并发是保证业务系统支持大规模的业务请求而不中断或异常,提供持续稳定的业务支持。满足高并发能力需要业务系统生命周期的多个阶段进行设计,特别是在设计时就需要考虑高并发场景,如

  • 业务设计时高内聚低耦合的微服务拆分

  • 高并发的服务要进行无状态的设计

  • 服务间通信基于消息队列 MQ 进行异步处理

  • 系统服务动静分离,静态页面基于对象存储+CDN加速

  • 选择适合后端高并发的开发语言,如 Golang

  • 基于 Linux 服务器进行应用开发,使用 epoll 的IO多路复用

  • 建设分布式锁解决争抢问题高频访问数据保存在缓存系统中,如 Redis

  • 对流量进行治理控制,如限流、容错、熔断降级、路由分流服务运行要多副本高可用的,

  • 以负载均衡的方式对外提供服务

  • 自动化的基础设施提供弹性的动态扩缩容能力,如 Kuberentes 或 公有云客户端本地排队等等

在实际业务场景下需要考虑投入产出比的问题,有时可能不需要在前期就过度设计解决所有这些问题,需要在实际上线过程中逐渐找到高并发的性能瓶颈和不稳定因素,在下次高并发到来之前解决掉问题即可。

混沌工程与全链路压测

混沌工程也是保障业务稳定的重要手段,可以把混沌工作看作是为了揭示生成环境中系统的未知弱点和脆弱环节而进行的试验,通过一系列试验帮助我们发现系统中潜在的、可导致灾难、或造成重大业务损失的脆弱环节,推动我们主动解决这些环节,提升系统的弹性和韧性。

类似的还有全链路压测,都是对线上生产环境进行可控的测试验证,发现并解决一些在开发测试环境无法发现的不稳定因素。

5.4 资产沉淀与运营

企业数字资产的沉淀与运营是解决中长期的企业发展过程中的软件、技术等数字资产沉淀与共享复用问题,充分发挥已有的资产价值,降低企业经营成本。

数字资产沉淀是将软件应用、UI组件库、API、算法、模型、模板、制品等统一管理起来,像有形资产一样可以持续的沉淀。

数字资产运营是将沉淀的资源进行产品化封装、共享给其他业务场景使用,如基于公共业务能力构建业务中台、基于公共技术能力构建技术中台、基于公共数据服务构建数据中台、基于API进行快速业务开发等等。

5.5 安全生产

安全生产大于一切。人与人之间基于信任建立的规则不是绝对的安全,软件行为由人控制的同时也会有不可控的bug,为了保障业务系统的安全,零信任是基本原则。

软件生命周期的各个阶段中不严谨的逻辑都会带来一定的安全隐患。如,产品设计问题,编码逻辑问题,依赖服务问题,运行环境问题,开放策略问题,以及使用方式等都可能会导致安全事件的发生。

识别安全可能会产生的环节,提前发现并解决安全隐患是安全生产的保障。

六、基于云原生构建企业技术平台

这里的技术平台用词也可以是技术中台或者私有云,本质就是对业务依赖的基础设施和服务进行统一有机的整合和管理,形成平台化的数字生产力工具集。基于软件的生命周期与云原生技术的体系融合,按照高内聚场景化的方式可以分为以下几个核心主题,由此组成本系列内容。

图片

按照场景分别构建不同解决方案创建,拟定输出以下系列解决方案:

高效生产

  • 基于资产的快速二次创新

  • 基于云原生建设企业敏捷研发效能平台

生产运行

  • 云原生最佳七步实践-容器云

  • 云原生分布式存储系统建设

  • 云原生有状态服务平台建设

  • 基于云原生构建微服务支撑体系

稳定连续

  • 云原生最佳七步实践2-可观测性与AIOPS

  • 云原生高可用系统保障业务容灾

  • 云原生高并发系统保障业务稳定

资产运营

  • 企业数字资产沉淀与运营

安全生产

  • 软件与数据的生命周期安全保障

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

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

相关文章

【嵌入式学习】C++QT-Day2-C++基础

笔记 见我的博客:https://lingjun.life/wiki/EmbeddedNote/19Cpp 作业 自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height), 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度…

C++ 数论相关题目(欧拉函数、筛法求欧拉函数)

1、欧拉函数 给定 n 个正整数 ai ,请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N) 。 若在算数基本定理中,Npa11pa22…pamm ,则: ϕ(N) Np1−1p1p2−1p2…pm−1p…

Salesforce Lightning 的 Close Case 按钮无法批量关闭 Case 的原因和解决方法

为 Lightning 页面添加了自定义的 Close Case 按钮(方法可参考:https://www.simplysfdc.com/2021/01/salesforce-mass-close-case.html)后,可能会出现无法批量关闭 Case 的情况。 选中多个 Case,再点击 Close Case 按…

基于Springboot的影城管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的影城管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

JAVA笔记16--线程

进程 进程是处于运行过程中的程序,具有独立的功能,是系统进行资源分配和调度的独立单位。 独立性 进程是系统重独立存在的实体,它拥有自己独立的资源,每个进程都拥有自己私有的地址空间,在没有经过进程本身允许的情…

leetcode1237. 找出给定方程的正整数解

1237. 找出给定方程的正整数解https://leetcode.cn/problems/find-positive-integer-solution-for-a-given-equation/ 难度中等 101 给你一个函数 f(x, y) 和一个目标结果 z,函数公式未知,请你计算方程 f(x,y) z 所有可能的正整数 数对 x 和 y。满…

在线教育系统源码深度剖析:从零开始开发一款企业培训APP

下文,笔者将与大家一起深入研究在线教育系统源码,同时探究从零开始开发一款面向企业培训的APP所涉及的关键技术和流程。 一、背景介绍 企业培训是组织内部不可或缺的一环,而在线教育系统通过数字化手段,使培训更加灵活、个性化。…

访问网站时IP被阻止?5个解决方法

相信很多人遇到过IP禁令:比如你在访问社交媒体、搜索引擎或电子商务网站时会被限制访问,又或者你的的账号莫名被封,这些由于网络上的种种限制我们经常会遭遇IP被封的情况,导致无法使用继续进行网络行动。在本文中,我们…

红帽认证有啥用?初级红帽认证证书值得考吗?

大家好,这里是G-LAB IT实验室。 今天我们来了解一下Linux红帽认证。 红帽认证已成为企业和个人竞相追逐的热门资质。 红帽认证认可度究竟如何?红帽RHCSA认证含金量又有多高? 下面G-LAB将为你一一解答。 1 、红帽认证认可度怎么样? 事实上&#xff0…

钉钉互动卡片对接-普通互动卡片接入流程

这里写目录标题 一、创建内部应用二、搭建普通卡片模板三、调用互动卡片服务端接口接口报文一、发送卡片二、更新卡片三、获取token 一、创建内部应用 登录开发者后台,创建内部应用。 例如 百度-内部测试获取AppKey和AppSecret, 获取应用访问凭证获取企…

cmd_to_robot 讨论及 G29 控制优化

cmd_to_robot 讨论及 G29 控制优化 cmd_to_robot 讨论 转向电机控制代码中,补偿信息在循环中发布,转向完成信息在回调函数中发布 转动电机控制代码中,对转动电机的控制在转向完成的回调函数中实现 这就意味着如果一直没有 /cmd_vel 消息发…

蓝桥杯备赛 week 1 —— DP 背包问题

目录 🌈前言🌈: 📁 01背包问题 分析: dp数组求解: 优化:滚动数组: 📁 完全背包问题 📁 总结 🌈前言🌈: 这篇文章主…

第10次修改了可删除可持久保存的前端html备忘录

第10次修改了可删除可持久保存的前端html备忘录 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

ASTM F2057-23衣物收纳商品安全标准

美国每年均有大量因衣物存放装置翻倒而造成人员伤害甚至死亡的报道。 因此&#xff0c;美国消费品安全委员会CPSC于2023年4月19日发布决定&#xff0c;将ASTM F2057-23作为美国消费品安全委员会的强制性安全标准&#xff0c;替代16 CFR 1261&#xff0c;以此更好保护消费者免受…

关于Linux系统的目录结构介绍常用命令介绍

目录 一. Linux系统目录结构介绍 二. 一些常用命令的介绍 1、# 与 $的区别 2、ifconfig 3、su 4、cd 5、目录查看 6、查看文件内容 7、创建目录及文件 8、复制和移动 9、其他 10、tar 11、which 12、whereis 13、find 14、chmod 三. vim的基本使用 四. SSH密…

QT+C++桌面程序窗体框架模板-中英文切换-文件打开历史记录-工具选项设置

程序示例精选 QTC桌面程序窗体框架模板-中英文切换-文件打开历史记录-工具选项设置 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《QTC桌面程序窗体框架模板-中英文切换-文件打开历史记录-…

认识数学建模

文章目录 1 什么是数学建模2 数学建模的比赛形式3 参加数学建模的好处4 数学建模的流程5 数学建模成员分工6 数学建模常用软件7 数学建模竞赛7.1 美国大学生数学建模竞赛7.2 MathorCup高校数学建模挑战赛7.3 华中杯大学生数学建模挑战赛7.4 认证杯数学建模网络挑战赛7.5 华东杯…

Web08--JavaScript高级

1、BOM对象 BOM&#xff1a;browser object model 浏览器对象模型 BOM对象包括window对象、screen对象、history对象、location对象、navigator对象。 1.1 window对象 所有的浏览器都支持window对象。它表示的浏览器窗口 window对象是js中的顶层对象&#xff0c;所有的j…

HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

HAL STM32EC11编码器实现增减调节及单击、双击、长按功能 &#x1f4fa;实现效果演示&#xff1a; &#x1f4d8;内容提要 &#x1f4dd;本文主要实现&#xff0c;通过STM32 HAL库开发&#xff0c;实现的EC11编码器功能&#xff0c;按键结合状态机思想实现的拓展单击、双击、…

Web--HTML基础

文章目录 安装环境HTMLhtml框架html基础标签语义标签html特殊符号 安装环境 安装vscode后 安装插件 可以先不写后台直接将前度界面展示出来 自动补全tag&#xff0c;同时修改tag时自动改另一半 在设置里将保存自动格式化的选项勾上 创建一个index.htm文件&#xff0c;这个…