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

一、概述

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

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

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

图片

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

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

图片

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

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

企业数字化转型已经逐渐进入深水区,降本增效、安全可控成为新的转型目标。企业为了更好的提升利润,主要有两个方向,对外增加营收,对内节省开支。对内节省开支落实到 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) 更改高度…

day02 有序数组平方、长度最小的子数组、螺旋矩阵II

题目链接:leetcode977-有序数组平方,leetcode209-长度最小的子数组, leetcode59-螺旋矩阵II 有序数组平方 解题思路:双指针法,left, right 1)创建一个等长的新数组 2)left从左到右扫描数组,ri…

【卡梅德生物】稳定细胞系构建|构建流程

在生物技术领域,稳定细胞系的构建是研究、药物开发和生产过程中关键的一环。稳定细胞系不仅为基因表达提供了可靠的平台,还在生物制药、基因治疗等领域发挥着重要作用。本文将介绍稳定细胞系构建的背景、主要类型、构建流程、技术优势,并强调…

考研机试 手机键盘

考研机试手机键盘 用到map工具 具体键入规则和花费时间如下描述: 对于同一键上的字符,例如 a,b,c都在 “1” 键上,输入 a 只需要按一次,输入 c需要连续按三次。 如果连续两个字符不在同一个按键上,则可直接按&#…

数据校验和错误检测

在数据通信和存储的过程中,保证数据的完整性和准确性至关重要。为此,采用了各种校验和错误检测方法,以提高数据传输的可靠性。本文将介绍校验位、循环冗余检查(CRC)和前向纠错(FEC)这三种常用的…

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 按…

全球软件供应链安全指南和法规

软件供应商和用户,都需要对有效抵御软件供应链攻击的要求和法规越来越熟悉。 供应链安全继续在网络安全领域受到重点关注,这是有充分理由的:SolarWinds、Log4j、Microsoft和Okta软件供应链攻击等事件,持续影响着头部软件供应商以…

基于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所涉及的关键技术和流程。 一、背景介绍 企业培训是组织内部不可或缺的一环,而在线教育系统通过数字化手段,使培训更加灵活、个性化。…

深度学习与图像描述生成——看图说话(3)

目录 一、整体架构 二、学习策略 2.1 监督学习 2.2 无监督学习 2.3 强化学习 三、特征映射 3.1 定义 3.2 原理 3.3 关键技术 3.4 重要案例 3.5 特别注意下特征空间这一概念 四、语言模型 4.1 定义与原理 4.2 关键技术 4.3 重要性与作用 4.4 案例与应用 五、注…

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

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

SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查)

SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查) 文章目录 SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查)@[TOC]前言一、Milvus数据库的新增1.新增数据二、Milvus删除数据1.删除数据三、Milvus更新数据1.更新数据四、Milvus查询数据1.查询数据总结章节 第一…

704.二分查找(力扣LeetCode)

704.二分查找(力扣LeetCode) 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums…

【Mysql】数据库如何查询按 list 集合顺序的记录

场景 现在要在数据库中查询id在 list<String> 集合中记录&#xff0c;结果并按 list<String> 集合中顺序进行排序。 解决方案&#xff1a; field()函数 field() 函数的返回值是value在值列表中的索引位置。此函数执行不区分大小写的搜索。如果在值列表中找不到v…

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

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

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

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

cmd_to_robot 讨论及 G29 控制优化

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