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

一、概述

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

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

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

图片

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

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

图片

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

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

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

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

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

资产运营

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

安全生产

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

20240124-我的第一个知识星球

2024年01月25日22:50:04 家中 我在知识星球上创建了我第一个知识星球。事情是这样的: 去年搞完WHV之后,其实还是很受打击的,毕竟付出的辛苦没有得到相应的成绩,还是很失落的。但是那个时候失落没多久,想到要去小红书发帖子,把程序分享出去,我的程序不能白开发,我想让…

照片上的杂物怎么清除?这两个方法很好用

随着智能手机的普及和拍照技术的发展,我们经常会在社交媒体上分享自己的照片。然而,有时候拍摄的照片中会包含一些不必要的杂物,如电线、垃圾、阴影等,这些杂物会影响照片的美观度和视觉效果。这时候我们就需要借助工具来帮我们清…

DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior

DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior Abstract1. Introduction2. Relate work3. Methodology3.1 退化去除预训练3.2 利用生成先验进行图像重建3.3 保真度-真实性权衡的潜在图像引导 4. Experiments4.1 数据集、实现、度量4.2 与最先进方…

接口性能优化常见12式

目录 1.批处理 2.异步处理 3.空间换时间 4.预处理 5.池化思想 6.串行改并行 7.索引 8.避免大事务 9.优化程序结构 10.深分页问题 11.SQL优化 12.锁粒度避免过粗 1.批处理 批量思想:批量操作数据库,这个很好理解,我们在循环插入场…

github上传代码

github上传代码 分为三步: 1.在自己的github上找个放代码地方,比如创建一个仓库 2. 在该仓库中点击上传代码 3. 然后直接把代码拖拽过来或者点击choose your files,上传后点击一下commit即可 最后代码就可以上传上来啦 ,如果想在该…

C++——函数

1,概述 函数的作用:将一段经常使用的代码封装起来,减少重复代码 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。 2,函数的定义 函数的定义一般主要有五个步骤: 1&#xff…

爬虫(一)

1. HTTP协议与WEB开发 1. 什么是请求头请求体,响应头响应体 2. URL地址包括什么 3. get请求和post请求到底是什么 4. Content-Type是什么1.1 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(…

金融OCR领域实习日志(一)——OCR技术从0到1全面调研

一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…

SRPC 框架服务端源码解析

0. RPC Context 保存某些必要的上下文信息; 某端独有功能:Client 获取请求成功或失败 1. RPCBuffer const 和 constexpr 变量的主要区别是:const 变量的初始化可以被推迟到运行期,constexpr 必须在编译期初始化;所…

OpenHarmony开发——GN快速上手

背景 最近在研究鸿蒙操作系统的开源项目OpenHarmony,该项目使用了GNNinja工具链进行配置,编译,于是开始研究GN如何使用。 本文的所有信息均来自GN官网和本人个人体会。 GN快速入门 使用GN GN的主要功能是根据配置文件(.gn, BU…

Android开发--状态栏布局隐藏的方法

1.问题如下,安卓布局很不协调 2.先将ActionBar设置为NoActionBar 先打开styles.xml 3.使用工具类 package com.afison.newfault.utils;import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graph…

字符串匹配(BF KMP)详解 + 刷题

目录 🌼前言 BF 算法 KMP 算法 (1)前缀函数 -- O(n^3) (2)前缀函数 -- O(n^2) (3)前缀函数 -- O(n) (4)辅助理解 🐋P1308 -- 统计单词数 …

【深度学习】线性回归模型与梯度下降法

线性回归模型与梯度下降法 线性回归模型与枚举法 线性回归模型定义: w:权重b:偏置#mermaid-svg-ZAxF27Mw5dXNQgw2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ZAxF27Mw5dXNQgw2 .error-icon{fill:#552222;}…

pyecharts模块的下载方法以及介绍,折线图的创立

目录 1.pyecharts是什么 2.pyecharts下载方法 1.在屏幕左下角搜索这里输入cmd,找到命令提示符并且打开 2.输入pip install pyecharts 然后回车进行下载 3.检查是否下载完成 4.另一个方法 3.pyecharts入门 4.pyecharts的配置选项 set_global_opts全局配置选…

[docker] Docker资源管理

一、docker资源控制 Docker通过Cgroup 来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。Caroup 是ControlGroups的缩写,是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如…

OpenKruise :Kubernetes背后的托底

一、 诞生背景 Kubernetes 自身提供的应用部署管理功能,无法满足大规模应用场景的需求,例如应用发布时的原地升级策略,流式扩容,缩容顺序控制等等。所以OpenKruise的出现弥补了 Kubernetes 在应用部署、升级、防护、运维等领域的不…

剪映声音克隆;多位滴滴前中高层加入小红书提速商业化;中国和新加坡互免签证

今日精选 • 剪映推出 AI 音色克隆功能,录制 5 秒声音即可完成克隆• 商业化全面提速,多位滴滴前中高层加入小红书• 2 月 9 日起,中国和新加坡互免签证 科技动态 • 夸克上线大模型新产品“AI PPT”,可一键生成提纲、创作 PPT…

Unity - gamma space下还原linear space效果

文章目录 环境目的环境问题实践结果处理要点处理细节【OnPostProcessTexture 实现 sRGB 2 Linear 编码】 - 预处理【封装个简单的 *.cginc】 - shader runtime【shader需要gamma space下还原记得 #define _RECOVERY_LINEAR_IN_GAMMA】【颜色参数应用前 和 颜色贴图采样后】【灯…

接口自动化测试实践

众所周知,接口自动化测试有着如下特点: 低投入,高产出。 比较容易实现自动化。 和UI自动化测试相比更加稳定。 如何做好一个接口自动化测试项目呢? 我认为,一个“好的”自动化测试项目,需要从“时间”…

【算法练习Day51】柱状图中最大的矩形

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 柱状图中最大的矩形思路动态…