通过DaoCloud DCE的场景化应用看容器云平台的核心能力(三)

news2024/9/29 21:30:15

以下场景来自DaoCloud官方文档场景化视频,这里以文字形式简单提取下要点,包括操作步骤和一些问题。

一共13个场景,本篇包含5个:9.快速定位异常与排障、10.基于CICD的应用发布、11.基于GitOps持续部署云原生应用、12.使用中间件与pgvector部署ChatGPT、13.Redis跨集群数据同步。

9. 快速定位异常与排障

在这里插入图片描述
介绍云原生可观测性,微服务架构的流行促进了观测性方法的完善,一般来说是三大支柱(日志、追踪、指标)和理解什么是“可观测”,概括一下应该是使用非人工方法缩短从数据获得信息甚至智慧的时间。对于云原生来说,承载微服务应用是其技术特性之一,服务网格和自动化能力能够简化数据收集,尤其对于APM,可以在一些情况下使用非侵入的方式获得数据,同时云原生监控方案也会充分考虑弹性特质。一般的云原生平台至少会集成事件、指标和日志数据,但很难产生洞察,仍然是人工数据查询的方式产出信息,DCE增强了这方面的能力,能够根据规则产生告警信息,功能设计方面似乎仍然保持了简单,主流的监控厂商正在从基础设施、应用、流程等更大范围内集成数据并使用人工智能分析,云原生平台似乎没有动力构建这样庞大的系统,找到云原生监控的场景、关注点甚至适用的氛围是非常重要的,这可能需要深入稳定性保障体系构建的方法论,不做深入。

操作步骤:

  1. 前提条件,为集群安装Insight组件,部署使用OTel(OpenTelemetry,是业界主流的开源遥测框架,它指出了可观测性的三大支柱并提供了架构参考和实现) SDK的演示应用;
  2. 创建告警策略,策略适用于选定集群的指定资源类型(集群、节点、工作负载),策略内添加具体的规则,能够直接输入PromeQL语句,也支持更友好的界面配置方式,可能PromeQL具备更高的灵活性,不宜读也是事实,告警信息可以选定渠道发送,整体上是一些非常基本的功能;
  3. 制造错误率告警,登录DCE在拓扑中找到错误率告警的链路,从此进入可查看黄金指标(错误率、吞吐率、延时)趋势信息,确认告警详情,进入筛选后的链路追踪即可锁定到具体的交易,链路中聚合了进程、日志、事件数据,可以初步定位异常原因,进入日志服务可以根据链路ID还原日志上下文,进行更加深入的分析,整个工作流还是比较流畅的,但各个步骤的信息提取还是非常依赖人工分析,比如要得出告警指标的异常等级变化趋势只能去人工分析折线图,Istio原生的面板对可观测的理解比较深入;

问题:

  1. 从界面看,开始服务监控的步骤从为目标集群安装Insight组件开始,然后使用OTel SDK或者Operator采集链路数据,其中Operator支持部署哪些采集方式呢?
  2. DCE的可观测场景为何种规模、何种文化的团队设计?

更详细的信息参考什么是可观测模块。

10. 基于CICD的应用发布

在这里插入图片描述
由应用工作台模块支持CICD,实际上是简单的Jenkins集成,流行的云原生平台似乎都是这样的集成方式,指标度量方面非常弱,在DevOps的理念中度量是改进的必选项,实际上度量适用于任何改进过程,这种弱度量设计似乎更适合于小规模的自治团队,比如微服务团队,功能设计简单的真实原因是什么呢?

操作步骤:

  1. 前提条件,在集群中部署Jenkins并通过NodePort暴露,进入Jenkins控制台配置Sonarqube,然后依次准备应用代码仓库、部署目标集群、应用Harbor仓库、流水线凭证(用于访问目标集群、Harbor仓库);
  2. 通过Jenkinsfile创建流水线:拉取代码、质量扫描、构建并推送至Harbor、使用Helm部署;

问题:

  1. 视频中使用手动触发流水线,支持Webhook驱动的自动化方式吗?
  2. 关于度量是否存在一些弥补方案?
  3. 部署过程中的其他步骤,例如环境配置、数据库变更、刷新外部缓存等如何自动化呢?似乎还有很长的路要走;

细节可以参考基于流水线和 GitOps 实现 CI/CD。

11. 基于GitOps持续部署云原生应用

在这里插入图片描述
GitOps替换了前面CICD场景中的CD部分,GitOps中两个关键的概念是应用配置和配置同步,这里的配置是指存放于独立仓库的K8s的manifest文件,K8s支撑了底层的自动化,而配置同步的精妙在于避免通过K8s私自修改配置,它能发现仓库中的配置与实际环境中的不同,从而使配置管理不至于沦为口号,例如应用能够基于仓库做可靠的回滚。DCE基于开源项目ArgoCD实现GitOps。了解GitOps可以阅读下面两篇文章:

  • What is GitOps?
  • GitOps

操作步骤:

  1. 前提条件,基本与CICD部分一致,差异在于增加了配置仓库的访问凭证(流水线要访问配置仓库),以及在GitOps模块下增加配置仓库的地址;
  2. 在GitOps模块中创建应用,完成部署位置、配置仓库、同步策略的配置;
  3. 初次部署应用,此时因为还未部署应用,因此配置属于未同步状态,执行同步即可将应用部署到集群中,注意此时配置仓库中是存在可用配置的,即可用的manifest文件,包含可用的镜像;
  4. 更改应用配置,在应用工作台创建Jenkins自定义流水线,分为三个阶段:拉取代码、构建镜像并推送、同步应用配置,最后一步的细节是,首先拉取配置然后使用sed命令替换镜像版本最后push新配置到镜像仓库;
  5. 同步配置,此时GitOps已经检测到仓库中的配置与实际环境存在差异,手动更新即可部署新的版本,值得注意的是配置同步替换了前面使用Helm部署的过程,GitOps通过自动感知变化防止配置漂移;

更多细节参考创建ArgoCD应用。

12. 使用中间件与pgvector部署ChatGPT

在这里插入图片描述
通过FastGPT整合DCE的各类文档,创建智能问答应用,这里需要理解FastGPT的工作流,简单来说它使用了OpenAI的接口,向量化之后的知识库存储于本地PostgreSQL(需要pgvector插件支持),同时使用中间件MongoDB存储历史对话,DCE需要支持这两类有状态应用的部署,这个示例主要展示了适用于AI的数据库的管理能力,另外向我们展示了构建一个AI应用是多么简单。

操作步骤:

  1. 在DCE中间件模块下创建MongoDB实例,然后创建PostgreSQL数据库实例,在pgAdmin控制台中添加vector插件;
  2. 部署FastGPT;
  3. 使用FastGPT;
  4. 通过pgAdmin查看原始的向量数据;

13. Redis跨集群数据同步

在这里插入图片描述
以Redis为例演示了有状态服务的数据实时同步能力,DCE在数据同步和恢复方面是否有定制化的实现需要了解更多细节,表面看仅仅是基于开源方案操作。

操作步骤:

  1. 前提条件,准备两个集群,在中间件模块中为两个集群分别部署Redis实例,采用不同的部署架构,源集群为三副本集群,目标集群为三副本哨兵,注意正确暴露有状态应用;
  2. 在目标集群部署redis-shake,它是阿里开源的redis同步工具,同步时如果源端是集群部署,可以从不同的节点拉取,所以需要先创建对应源集群每个节点的同步配置,然后使用这些配置创建三个redis-shake工作负载,此时已经实现数据从源端到目标端的实时同步,做数据恢复时需要停止原有的redis-shake负载,并在反方向部署;

更多细节参考跨集群数据同步,从文档中可以看到,DCE支持的中间件覆盖关系数据库、非关系数据库、搜索引擎、对象存储、队列这些分布式应用的架构组件,能够支持分布式应用的运行。

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

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

相关文章

5大自动化测试的Python框架 | 实用干货

自从2018年被评选为编程语言以来,Python在各大排行榜上一直都是名列前茅。 目前,它在Tiobe指数中排名第三个,仅次于Java和C。随着该编程语言的广泛使用,基于Python的自动化测试框架也应运而生,且不断发展与丰富。 因…

微信小程序:基于MySQL+Nodejs的汽车品牌管理系统

各位好,接上期,今天分享一个通过本地MySQLNodejs服务器实现CRUD功能的微信小程序,一起来看看吧~ 干货!微信小程序通过NodeJs连接MySQL数据库https://jslhyh32.blog.csdn.net/article/details/137890154?spm1001.2014.3001.5502 …

阶段性学习汇报 4月19日

目录 一、毕业设计和毕业论文 二、学习python和vue 三、阅读知识图谱 四、下周规划 一、毕业设计和毕业论文 毕业设计后端功能基本实现,但是还有些具体的细节需要优化。前端小程序部分只有个前端页面以及部分交互逻辑,还需进一步完善。在疾病预测这里本…

力扣hot100(python解析)

文章目录 13. 合并区间14. 轮转数组 13. 合并区间 合并区间 数组 排序 思路: 代码: class Solution:def merge(self, intervals):result []if len(intervals) 0:return result # 区间集合为空直接返回intervals.sort() # 默认按照区间的左边界进…

个人开发 App 最简单方法:使用现代开发工具和平台

在移动应用市场的蓬勃发展下,个人开发者也有机会将自己的创意转化为实际的应用程序,并通过应用商店实现盈利。然而,对于许多初学者来说,如何开始个人开发一个应用可能会感到困惑。本文将介绍个人开发 App 的最简单方法&#xff0c…

【树莓派学习】系统烧录及VNC连接、文件传输

【树莓派学习】系统烧录及VNC连接、文件传输 Raspberry Pi is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. Since 2013, Raspberry Pi devices have been developed and…

Vitis HLS 学习笔记--优化指令-ARRAY_PARTITION

目录 1. ARRAY_PARTITION 概述 2. 语法解析 2.1 参数解释 2.1.1 variable 2.1.2 type 2.1.3 factor 2.1.4 dim 2.2 典型示例 2.2.1 dim1 2.2.2 dim2 2.2.3 dim0 3. 实例演示 4. 总结 1. ARRAY_PARTITION 概述 ARRAY_PARTITION 指令中非常重要,它用于优…

银河麒麟redis安装

一.编译和安装Redis wget http://download.redis.io/releases/redis-4.0.9.tar.gz 执行如下命令,解压包。 tar -zxvf redis-4.0.9.tar.gz 执行如下命令,进入deps目录 cd redis-4.0.9/deps 执行如下命令,编译Redis依赖库。 make -j4 hiredis l…

民航电子数据库:CAEMigrator迁移工具

目录 一、场景二、迁移步骤 一、场景 1、对接民航电子数据库 2、需要将mysql数据库迁移到民航电子数据库 3、使用CAEMigrator迁移工具 二、迁移步骤

VMware 15 虚拟机网络遇到的问题

剧情提要 通过Cent os7 的镜像文件,创建了一个虚拟机A(后面简称A),事后发现,宿主机无法ping通A 在虚拟机中通过IP a 看到的IP信息也没有只管的ip信息如图 然后执行,宿主机才能访问A。 sudo dhclient ens…

MySQL 基础语法(2)

文章目录 创建表查看表修改表表数据插入 本文为表结构相关的基础语言库相关的基础语句 创建表 CREATE TABLE table_name ( field1 datatype comment xxx, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;CREATE TABLE&#xff1…

白蚁自动化监测系统解放方案

一、系统介绍 白蚁自动化监测系统是基于物联网的各项白蚁监测点数据的采集形成智能控制系统。提供白蚁实时预警及解决方案,真正实现区域内白蚁种群消灭。白蚁入侵,系统第一时间自动报警,显示入侵位置,实现抓获白蚁于现场的关键环…

算法库应用-有序单链表插入节点

学习源头: 模仿贺利坚老师单链表排序文章浏览阅读5.9k次。  本文针对数据结构基础系列网络课程(2):线性表中第11课时单链表应用举例。例:拆分单链表 (linklist.h是单链表“算法库”中的头文件,详情单击链接…)//本程…

JS 分片任务的高阶函数封装

前言 在我们的实际业务开发场景中&#xff0c;有时候我们会遇到渲染大量元素的场景&#xff0c;往往这些操作会使页面卡顿&#xff0c;给用户带来非常不好的体验&#xff0c;这时候我们就需要给任务分片执行。 场景复现 我们看一段代码&#xff1a; <!DOCTYPE html> &l…

P2P面试题

1&#xff09;描述一下你的项目流程以及你在项目中的职责&#xff1f; 一个借款产品的发布&#xff0c;投资人购买&#xff0c;借款人还款的一个业务流程&#xff0c;我主要负责测注册&#xff0c;登录&#xff0c;投资理财这三个模块 2&#xff09;你是怎么测试投资模块的&am…

T1级,生产环境事故—Shell脚本一键备份K8s的YAML文件

大家好&#xff0c;我叫秋意零。 最近对公司进行日常运维工作时&#xff0c;出现了一个 T1 级别事故。导致公司的“酒云网”APP的无法使用。我和我领导一起搞了一个多小时&#xff0c;业务也停了一个多小时。 起因是&#xff1a;我的部门直系领导&#xff0c;叫我**删除一个 …

vcruntime140.dll文件丢失的解决办法,为什么导致vcruntime140.dll文件丢失

废话少说&#xff0c;今天这篇文章直接和大家聊聊vcruntime140.dll文件丢失的解决办法&#xff0c;同时给大家分析vcruntime140.dll文件为什么会导致文件丢失。一起来看看吧。 vcruntime140.dll文件缺失的可能原因 A. 文件损坏或删除&#xff1a;vcruntime140.dll文件可能会…

《人工智能》大作业反馈

0 写在前面 春学期带了一门很有意思的课《人工智能与机器学习》&#xff0c;在学期初就在构思怎么才能把这门课上好&#xff0c;怎么才能让一群土木大类专业的小孩对人工智能这个领域感兴趣&#xff0c;怎么才能让他们将这个专业与自己专业结合起来。我对自己的要求就是希望自…

【C++类和对象】初始化列表与隐式类型转换

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

Canal1--搭建Canal监听数据库变化

1.安装mysql 默认安装了mysql&#xff08;版本8.0.x&#xff09;&#xff1b; 新创建用户 -- 创建用户 用户名&#xff1a;canal 密码&#xff1a;Canal123456 create user canal% identified by Canal123456;授权 grant SELECT, REPLICATION SLAVE, REPLICATION CLIENT on…