文章目录
一、前言
本文主要讲解理论无实战部署监控服务教程,性能监控&专业性能优化由SRE与DBA等多方人员共同协作完成。QA学习了解一下……
性能测试,本质是模拟高并实现压力逐渐递增,性能测试消耗执行测试机的硬件资源。
性能监控,指在执行性能测试过程中对被测服务器的资源消耗利用进行监控,性能监控也存在硬件资源消耗,第三方监控软件。软件性能测试?
性能优化,通过性能测试和性能监控后查看性能测试报告,根据报告反馈的数据范围判断是否需要性能优化,针对问题处理。
《盲人摸象》
二、什么是SRE?
1、SRE 简介
SRE是指Site Reliability Engineer (网站可靠性工程师)。他是软件工程师和系统管理员的结合,一个SRE工程师基本上需要掌握很多知识:算法,数据结构,编程能力,网络编程,分布式系统,可扩展架构,故障排除。
SRE起源于国外大型互联网公司,直接掌管着互联网公司的机器和服务,保证网站不宕机是他们的使命。SRE基本是从软件研发工程师转型,有很强的编程算法能力,同时具备系统管理员的技能,熟悉网络架构等,是一个要求非常高的职业。 [1]
大部分人理解SRE等于传统运维工程师(OP)或者系统管理员(SA),实则不然,这两类角色离一名合格的SRE还有太大的差距,完全无法匹配得上这个称号。
在国内,只有少数几家顶尖互联网公司才会出现真正的SRE。
2、SRE是什么?
SRE不是做底层硬件维护,而是负责各种服务的性能和稳定性。
远离底层硬件,更多靠近软件基础架构层面,帮助企业客户打造强大的软件基础构架。
3、SRE 如何保障稳定性?
线上稳定性问题,人为操作不当导致的比例很高,集中在 发布 和 线上运维 两个环节,均是高频操作。对于复杂系统,这两个环节对专家经验有较强的依赖。
发生的稳定性问题通常具有系统性的特征,即非单个功能组件缺陷导致,而是由一系列因素综合作用导致,如缺少监控告警导致不能及时感知,缺少日志不能有助于快速定位问题,缺少良好的问题排查流程导致依赖个人能力,缺少良好的协调沟通极致导致问题处理时长增加、客户影响程度加剧等。
问题是不可避免的,流量的突增、服务器/网络/存储的损坏、未覆盖的输入等,均会诱发问题的出现。
阿里技术专家对 SRE 和稳定性保障的理解.png
可控性方面,包括如下三个主要维度:
- 发布管理
- 重点解决发布导致的人为稳定性问题。
- 包括发布前重要变更评审和发布中变更动作管理等。
- 操作管理
- 重点解决黑屏操作导致的人为稳定性问题。
- 包括统一集群操作入口、集群操作权限管理、集群操作审计等。
- 设计评审
- 重点解决软件系统设计阶段应用稳定性保障最佳实践。
- 包括集群方案评审和重要功能设计评审等。
可观测方面,包括如下几个重要维度:
- 监控
- 重点解决软件系统运行态的感知能力。
- 包括监控收集/可视化系统的搭建和维护等。
- 日志
- 重点解决软件系统的问题可排查能力。
- 包括日志收集/存储/查询/分析系统的搭建和维护等。
- 巡检
- 重点解决软件系统功能是否正常的主动探测能力。
- 包括巡检服务的搭建、通用巡检逻辑的开发维护等。
- 告警
- 重点解决异常的及时触达需求。
- 包括告警系统的搭建、告警配置管理、告警途径管理、告警分析等。
稳定性保障最佳实践,是从历史问题和业界实践方面抽象出意识、流程、规范、工具,在系统设计之初就融入其中,并在系统整个生命周期中加以使用,如通过模板固化最佳实践:
- 项目质量验收标准
- 项目安全生产标准
- 项目发布前 checklist
- 项目 TechReview 模板
- 项目 Kick-off 模板
- 项目管理规范
- etc.
4、SRE专业解释 参考
这是阿里技术专家对 SRE 和稳定性保障的理解
https://www.kubernetes.org.cn/8850.html
三、什么是DBA?
1、DBA 简介
DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。
数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。
在国外,也有公司把DBA称作数据库工程师(Database Engineer),两者的工作内容基本相同,都是保证数据库服务7*24小时的稳定高效运转,但是需要区分一下DBA和数据库开发工程师
2、DBA 技术分工
产品的整个生命周期里数据库管理员的职责重要而广泛,这催生了各个纵向的运维技术方向,凡是关系到数据库质量、效率、成本、安全等方面的工作,及涉及到的技术、组件,主要包括:
-
数据库监控技术:包括监控平台的研发、应用,服务监控准确性、实时性、全面性的保障。
-
数据库故障管理:包括服务的故障预案设计,预案的自动化执行,故障的总结并反馈到产品/系统的设计层面进行优化以提高产品的稳定性。
-
数据库容量管理:测量服务的容量,规划服务的机房建设,扩容、迁移等工作。
-
数据库性能优化:从各个方向,包括SQL优化、参数优化、应用优化、客户端优化等,提高数据库的性能和响应速度,改善用户体验。
-
数据库安全保障:包括数据库的访问安全、防攻击、权限控制等。
-
数据库自动部署:部署平台/工具的研发,及平台/工具的使用,做到安全、高效的发布服务。
-
数据库集群管理:包括数据库的服务器管理、分布式集群管理等。
-
数据库模型设计:包括数据库逻辑和物理模型的设计,如何实现性能最优,架构可扩展,服务可运维等。
打通MySQL架构和业务的任督二脉,做个DBA高手!
3、DBA 能力范围
数据库管理员以技术为基础,通过技术保障数据库提供更高质量的服务。DBA工作的职责及在业务中的位置决定了DBA需要具备更加广博的知识和深入的技术能力。在数据库环境的管理与维护中,技术任务可归结成许多不同的分类。下面列出了一名DBA应掌握的一些技术(排名不分先后)。
4、DBA 详解
百度百科解释
https://baike.baidu.com/item/数据库管理员/1216449?fromtitle=DBA&fromid=3349&fr=aladdin
打通MySQL架构和业务的任督二脉,做个DBA高手!
https://www.sohu.com/a/218910017_463994
四、结束语
沉默是金……
如果觉得文章写不错,那就点个赞,点个收藏吧。