- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 服务稳定性运维保障体系建设的误区
这是许多运维人员长期陷入的一个误区,认为解决故障的能力是特别重要的,总是把更多的时间放在了如何提高个人技术和应急处理能力上,造成这个的原因是多面的,有运维人自身认识问题,也有KPI制度的不合理问题,老板对运维的认知问题(认为运维和研发是一样的,喜欢见到运维与研发一样忙碌),还有历史留下的繁杂技术包袱问题。而故障告警的作用则是对一些不可知、不可抗力因素和无法自动化的问题的兜底,告警的出现就一定是需要人工立即介入的事件,而人工的介入一定是有时延的,等到人去解决的时候,往往是业务已经受到了影响。
2024-10-24 17:08:07
992
原创 Redis已经有了哨兵模式,为什么还要有集群模式
在数据库领域中,高可用的方案一般是主从(主备)和分布式两种架构,主从架构的代表如MySQL,分布式架构的代表如TiDB,但Redis却是少有的两种架构都兼具的存在,主从架构的哨兵模式和分布式架构的集群模式,那么为什么已经有了哨兵模式的高可用架构,Redis还要有分布式架构的集群模式呢,我们来一一分析。
2024-10-21 23:35:13
366
原创 Redis持久化机制
通过详细介绍RDB、AOF以及混合持久化这三种主流的持久化方法,我们不仅学习了它们各自的工作机制和配置策略,还探讨了它们的优缺点,然后根据自己的实际需求选出合适的持久化方式。RDB:适合数据备份和灾难恢复场景。AOF:适合对数据丢失有严格要求的应用。混合持久化:适合快速的数据恢复和高数据安全性的场景。
2024-10-19 14:52:04
687
原创 苹果重磅发布:300亿参数多模态AI大模型MM1.5
在新版本中,苹果的研发团队对数据混合策略进行了改进,这使得模型在多文本图像理解、视觉引用与定位以及多图像推理方面的能力得到了显著提升。苹果公司最近发布了一款具有里程碑意义的多模态AI大模型MM1.5,这款模型在前代MM1的基础上进行了显著的改进和升级。尽管MM1.5在多项基准测试中取得了优异的表现,但苹果团队仍然计划通过进一步融合文本、图像和用户交互数据,并设计更复杂的架构来提升模型对移动设备UI的理解能力,从而加强“苹果牌”AI的实力。
2024-10-14 19:43:57
323
原创 一个常见问题:TCP和UDP是否可以使用一个端口
TCP(传输控制协议)和UDP(用户数据报协议)做为两种被广泛使用的协议,它们在处理数据时采用不同的机制,那么有一个问题,在同一系统内,TCP和UDP的服务是否可以使用同一个端口呢?首先我们先了解一下TCP/UDP和端口。
2024-10-13 21:51:29
425
原创 快速生成生产级Go应用的利器——Cgapp
比较欠缺的是,目前后端的框架只支持fiber、chi、net/http,其余主流的gin、echo等目前尚不支持,但在已看到gin和echo在筹备中状态,可以持续关注。
2024-10-11 09:31:36
820
原创 运维视角下不同规模的公司
互联网行业内对运维的需求一般遵循1:50的规律,即1个运维支持50人的技术团队,有些公司的比例可能更高,但总体上来说,运维团队的规模往往能够真实的反映出公司的规模和实力。
2024-10-10 14:36:46
681
原创 SRE的完全体:左手效率,右手容灾
共和国的75周岁之际,重温了我心中的经典电视剧《人间正道是沧桑》和小说《远东朝鲜战争》,在看到剧中杨立青在东北战场被任命为“特别部部长”的情节,以及志愿军总后勤部的成立过程及洪学智将军后勤工作的历程时,突然有了同频共鸣——这不就是红色版的“SRE”嘛。
2024-10-10 00:48:33
598
原创 SRE的必修课:学会看账单
做为一个有点经历的SRE工程师,每当入职一家新的公司时,财务账单是必看的资料之一,而日常工作中,每周或者每月,也必然会抽出时间看一下账单报告,为方便获取想要的账单,还曾基于业务架构开发专门的账单生成程序。
2024-09-26 22:45:44
672
原创 Jenkins 2.477版本升级
如果你在升级到2.476或2.477版本后遇到Jenkins无法启动的问题,可能需要升级Tomcat到10版本,或者切换到Jenkins提供的servlet容器,因为Jenkins 2.475及以后的版本包括了对Spring框架、Spring Security和Java EE的升级。Jenkins 2.477版本在2024年9月17日发布,此版本中包含了一些增强功能和错误修复。此外,还有一些针对开发者的增强功能,比如添加了当计算机变为空闲时的新监听器。
2024-09-26 15:43:00
1038
原创 关于 Redis 的过期策略与淘汰策略详解
合理配置Redis的过期策略和淘汰策略,可以有效管理内存,提高Redis的性能和稳定性。根据不同的应用场景和业务需求,选择合适的策略至关重要。
2024-09-26 15:22:44
603
1
原创 Kubernetes v1.31版本新特性
Kubernetes v1.31 版本的新特性为用户提供了更安全、更可靠、更高效的容器编排平台。通过这些特性的实现细节,用户可以更好地理解和应用这些新功能,以满足他们的业务需求。
2024-09-24 18:13:40
790
原创 深入理解Kubernetes:CNI源码解析
CNI(容器网络接口)规范为容器运行时和网络插件之间提供了一个通用的接口,旨在实现容器网络配置的标准化。网络配置的格式:定义了管理员如何定义网络配置。请求协议:描述了容器运行时如何向网络插件发出网络配置或清理请求。插件执行过程:详细阐述了插件如何根据提供的配置执行网络设置或清理。插件委派:允许插件将特定功能委托给其他插件执行。结果返回:定义了插件执行完成后如何向运行时返回结果的数据格式。
2024-06-24 22:27:38
597
原创 体验用AI写代码
近两年,AI确实迎来了大爆发,2023年也成了AI时代的元年,去年下半年的时候,国内月之暗面出品的Kimi成了新的AI热门,也体验用Kimi修改论文,以及用图片生成代码,代码准确度还是蛮高的。Excel文件成功生成,代码运行成功,但生成内容不全,但已经很不错了,只需微调一下nmap命令参数即可,当然也可以聊天的方式让Kimi自己修改,但不管哪种方式,比之前纯手写速度和准确率都大大提升。Kimi的生成速度很快,相应速度在一分钟以内,还是很不错的。
2024-04-30 13:28:12
447
原创 Jenkins集成Terraform实现阿里云CDN自动刷新
在互联网业务中,CDN的应用已经成了普遍,SRE的日常需求中,CDN的刷新在前端需求逐渐中占了很大比例,并且比较琐碎。做为合格的SRE,把一切自动化是终极使命,而今天就分享通过Jenkins+Terraform实现阿里云的CDN自动刷新,给大家提供一个自动化思路。
2024-04-24 13:30:13
820
2
原创 深入理解Kubernetes:kube-scheduler源码解析
Kubernetes的调度器(kube-scheduler)是整个系统中至关重要的组件,它负责将待调度的Pods分配到合适的节点上。本文将深入分析kube-scheduler的源码,揭示其内部工作机制。
2024-04-23 22:10:15
1076
原创 Kubelet源码解析:深入理解Kubernetes节点的运行时
Kubelet作为Kubernetes节点的核心组件,其设计体现了Kubernetes的设计理念:模块化、插件化和可扩展性。通过深入分析Kubelet的源码,我们可以更好地理解Kubernetes节点的运行机制,以及如何定制和扩展Kubelet以满足特定的需求。
2024-04-23 17:59:30
527
原创 多云管理之Terraform
问题2:公有云本质上是商业属性,因各自的产品及机房节点布局差异,单个公有云很难完全满足业务需求,但各个云商的一些壁垒限制,多云资源的管理成本又变的较高,尤其是自动化的开发适配成本。Terraform的出现有效的解决了上述问题,它的理念是基础设施即代码,允许用户通过编写代码的方式构建、变更和版本化云基础资源,下面我们先谈谈Terraform的优势。站在SRE的视角,公有云的兴起及大规模普及应用,解决了过去一直无法根本解决的成本和资源快速扩展问题,但同时又衍生出了新的问题。
2024-04-23 14:32:27
425
原创 Kubernetes v1.30版本相关升级
如果你需要对API请求进行复杂的授权检查,你可以定义一个结构化的授权配置,其中包含多个webhook,并为每个webhook定义特定的验证规则。如果你有一个多容器Pod,其中一个容器特别消耗CPU资源,而另一个容器消耗很少,你可以设置基于该特定容器的资源使用情况来自动伸缩Pod的数量,而不是基于整个Pod的资源使用情况。如果你需要运行一个Pod,并且希望它在Linux用户命名空间中运行,以提高安全性和隔离性,你现在可以在Pod配置中指定用户命名空间,从而确保Pod在一个受限的环境中运行。
2024-04-03 10:21:40
555
原创 Kubernetes应用之PodDisruptionBudget
创建一个YAML文件,定义PDB的规格,包括最小可用Pod数量、最大不可用Pod数量以及选择器。
2024-04-01 12:46:02
699
原创 如何判断虚拟机是否存在超卖
最近有小伙伴反馈部署在公有云上的服务总是会时不时的出现延迟问题,在排除了代码问题后,将怀疑目光朝向了云主机,因为在测试环境相同配置的物理机上进行模拟压测,性能完全可以满足,所以怀疑云主机是不是超卖了,咨询有什么方法可以证明。
2024-03-20 22:14:02
950
原创 Kubernetes管理GPU
历史原因,容器技术设计之初,人工智能还未得到真正的应用,所以容器设计的侧重点主要在于隔离性和可移植性,随着OpenAI的横空出世,机器学习迎来了井喷发展,GPU因其出色的计算能力更是得到了更大规模的应用。而作为目前最主流的云原生平台,如何管理GPU资源,对Kubernetes显得越发重要。
2024-03-18 21:15:14
1027
原创 Kubernetes选举机制剖析
如果其获取资源锁失败,会通过return等待下一次定时获取资源锁。首先,通过le.config.Lock.Get函数获取资源锁,当资源锁不存在时,当前节点创建该key(获取锁)并写入自身节点的信息,创建成功则当前节点成为领导者节点并返回true。2、key(分布式锁)不存在时:多节点中的一个节点成功创建该key(获得锁)并写入自身节点的信息,获得锁的节点被称为领导者节点,领导者节点会定时更新(续约)该key的信息。候选节点获取不资源锁,它不会退出并定时(默认值为2秒)尝试获取资源锁,直到成功为止。
2024-03-13 22:36:32
1160
原创 Rancher错误信息Bug解决
这个问题是Rancher 2.6.12、2.6.13版本出现的日志输出Bug,并不致命,2.7.x系列版本后已经进行了修复,但已经出现的问题却无法通过升级版本解决(即使升级版本后,已出现的错误信息依然存在),那么该如何消除错误报错呢?w()”,找不到问题根源,如下图。找到错误信息的字段位置,将 status: 'False'改成status: 'True',并且将error错误信息删除,执行wq保存,错误信息即消除。
2024-03-12 22:24:14
897
原创 localhost和127.0.0.1的区别
日常开发或者测试中,我们经常会遇到两个特殊的地址:localhost和127.0.0.1,这两个地址都用于指向本地的服务,但它们之间存在一些细微的区别。
2024-03-05 18:48:33
559
原创 RocketMQ消费端报错问题小记
消费端启动报错:broker response code: 22, remarks: Not found, V3_0_6_SNAPSHOT maybe this group consumer boot first。新的消费组加入已有TOPIC,无法获取消费进度导致该报错。
2023-12-01 21:55:01
323
原创 Redis修改密码方法
修改redis.conf文件,注释user defalt字段,然后重启redis集群。1、修改redis.conf和sentinel.conf。6.2.4版本哨兵模式修改密码不生效,并且集群选举失败。4、启动slave节点和哨兵服务。1、修改redis.conf。3、重启master节点。1、关闭slave节点。2、关闭所有哨兵服务。
2023-12-01 21:51:47
5899
原创 Elasticsearch设置密码方法
单点ES的步骤相对与集群更加简单,只需集群步骤的4、5、6步骤即可,其中第四步骤的elasticsearch.yml只需要配置三项即可,如下。集群期间会存在中断不可用,待集群恢复后,再次请求ES地址,会提示需要输入用户名密码,此时再次进入ES主节点,进行密码配置。1、修改elasticsearch.yml,注释xpack.security.enabled: true,保存退出。2、重启elasticsearch,恢复不用密码访问,重启步骤参考上面步骤。3、启动成功后,删除.security-7索引。
2023-12-01 21:50:41
1651
1
原创 Nightingale部署方案
另外ibex的agent也合并至了categraf,categraf也支持远程执行脚本,执行请求路径为n9e --> ibex server --> categraf。监控告警体系一直是运维工作的重中之重,万物无定型,技术的选择也是遵循这个道理,在综合当前公司的实际情况下,国产监控热门只选Nightingale就自然而然的成为了最佳的选择。当前公司服务大部分运行在IDC机房中,并且存在多个机房,也有部分云服务,部署方式既有主机部署的、Docker部署的,也有部署在K8S集群中的,情况复杂多样。
2023-12-01 21:49:20
700
1
原创 SRE实践之SLI/SLO设定
在监控实践中,反映一个问题所需要的指标,往往是不超过三个,我们在针对用户不能下载的表现监控上,经过广泛讨论,分别对相关核心接口进行站点监控,主要监控延迟及5xx错误,对核心中间件消息队列进行监控,主要监控分钟内有多少排队,对服务进行健康监控,是否正常状态。比如在过往真实经历中,因各种原因,同一个服务的多个服务器规格不一,又因每个服务器的数据量存在变数,在对相关硬盘容量进行监控的时候,不管是按照百分比还是其它方式,结果总是要么数据迁移不及时导致数据丢失,要么陷入频繁的无效告警。
2023-08-28 14:27:34
260
1
原创 回顾过往:谈工程效能
工程效能一词最早来源于上个世纪的工业领域,核心要旨是在增加生产效率,不曾想在百年后的今天在互联网领域又被频繁使用,并且成为了SRE工作中极其重要的一项。从软件架构的角度上,回顾过去工作经历,大体经历了三个阶段:单机结构、分布式结构、微服务结构。
2023-04-06 15:05:31
284
原创 Golang之channel讲解
总之,Go语言中的channel是一种用于在goroutine之间进行通信和同步的机制,可以避免共享内存的问题,从而使并发编程更加简单和安全。其中,data_type是channel中传输的数据类型,ch是创建的channel变量。可以将channel作为参数传递给goroutine,它们可以同时读写channel,从而实现数据的交换和同步。Channel可以避免共享内存的问题,从而避免了多线程之间的竞争和死锁等问题,使得并发编程更加简单和安全。其中,ch是channel变量,data是接收到的数据。
2023-03-27 08:28:18
423
原创 监控实践之华为云WAF监控数据接入Prometheus
程序代码import ("os""time"// 配置文件结构体// WAF监控项数值结构体// WAFExporter结构体// 华为云认证/WAF客户端/时间戳变量定义var (ak = sk = Build()Build())// 读取配置文件if err!= nil {panic(err)// 获取WAF监控相关指标数据},},},},} else {} else {} else {// 初始化exporter。
2023-03-25 10:13:26
703
原创 云原生下一个程序的生命周期
由项目人员牵头,业务、产品人员输入产品文档,与研发、测试人员沟通业务需求,确定程序的功能、特点,并由研发人员输出开发文档,测试人员输出测试方案文档。这一切都可以做到自动化完成,即服务上线后,自动接入日志、监控等系统,自动具备故障监测及弹性伸缩能力,但前提是程序遵循相应的技术规范。测试人员依照测试文档对程序进行功能、安全、性能等测试,做好容量规划,待一切验收合格,进行正式上线,必要的服务还要进行灰度测试。根据用户反馈或业务调整,对程序进行维护更新,修复程序Bug,更新程序功能,提升用户体验。
2023-03-24 17:06:22
88
原创 SRE实践之弹性伸缩
做好Pod的容量规划,设置合理的Request和Limit(差值不要大于20%),依据服务特性做好归类,为后续节电池的规划提供依据。对波峰不明显但核心的服务(如网关服务),设置相应的弹性伸缩策略,副本数下限为当前峰值数量,目的应对未知的流量,保障服务高可用。依据Pod的归类,规划出节电池,并通过监控分析选出早晚峰值落差大的典型服务,讨论并测试Pod伸缩指标、阈值、副本数等。规划节点池的伸缩策略,在设计的时候要考虑伸的相应时间是否可以及时,缩的释放是否对服务有影响。下限:2 (保障最小的高可用)
2023-03-20 16:24:21
104
原创 SRE实践之成本优化
通过对账单数据的统计、分析,可以归纳出费用的占比、走势,再结合对业务的洞察能力,可以察觉出异常的费用支出,并有针对性的进行成本优化。而常见的公有云均有完善的账单系统,我们在实际中也可以研发自己的账单系统,方便统计分析。所有服务已经完成容器化改造,纳入Kubernetes管理,并已建设完成一定的自动化体系,但从费用账单上分析,成本虽有降低,但依然有潜力可挖,在此背景下继续对成本进行优化。准确有效的监控数据,可以帮助我们清楚的了解当前资源的使用情况及特点,并有针对性的调整资源配置,提高资源利用率。
2023-03-20 15:36:01
206
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人