2023年12月15日,2023首届服务韧性工程(SRE)论坛在杭州乐成举行,大会约请了来自通信、金融、医疗、制造行业等100余位SRE领域专业人士参加,本次大会特殊设立了主题为“SRE的实践和应用”的分会场,分会场由中国移动通信集团浙江有限公司和SRE专委会团结出品。约请来自通信、云计算、互联网、软件等行业的专家,就SRE实践与应用、智能运维建立、可观测性等热门内容的技能发展及应用实践睁开讨论。金山办公服务可靠性开发总监曾华山带来《云原生时代下金山办公SRE架构演进之路 》的主题演讲。
金山办公服务可靠性开发总监 曾华山
金山办公服务可靠性开发总监曾华山,举行《云原生时代下金山办公SRE架构演进之路 》的演讲,深入探讨了金山办公在云原生时代下的SRE架构演进之路。回顾金山办公云平台的运维汗青,他们SRE在面对挑衅时的变革与创新。同时,为各人详细介绍了金山办公在可靠性管理、一站式研运平台、主动化、监控&可观测性、多云本钱、安全等方面的重大突破。末了,曾华山通过案例分享,深刻剖析了SRE在云原生时代的演进,为与会者提供了实质性的指导和启示。
以下为演讲实录:
一、金山办公SRE发展历程四个阶段
金山办公整个运维SRE建立发展的历程可以分为以下四个时期
(1)初创期(2014-2017)
初创期的业务对技能就一个要求:“快”,但这个时候却又是运维团队最弱小的时期,金山办公在这个时期运维团队就只有一两个技能人员,所以这个时候十八般武艺都需要用上,有开源的就用开源的,没开源就自己写,自己写也不是大而全的写,而是遵照二八原则,有针对性的支持。
这个阶段,金山办公完成了开端的传统运维转型,实现了基本的DevOps变化,并在2016年,跳过了iaas层的建立,开始实现容器化改造,并于2017年,做同城机房容灾改造。
(2)发展期(2018-2019)
2017年,经历金山办公在线办公云文档漫游的全量放量,原本小而快靠人的模式已经满意不了业务的发展,各个业务部门在云计算这条道路上,都面对初创期的各类问题,这个时期,迫切需要一个同一的集中式的内部云平台。金山办公SRE团队也应运而生。已往欠的IaaS及PaaS层建立,也进入了发展期。
这个阶段,金山办公建立了内部的基础办法平台,集中办理网关、应用、缓存、数据库等诸多通用问题,并同一了全公司云服务的相干流程和规范。这个阶段,细分又可以拆分为堆功能期、优化期、架构期。
(3)竞争期(2020-2022)
过了发展期,马上面对的是两大困境,重复造轮子&网状一团乱麻的体系交互&物理机房架构没跟上发展。
于是,平台化,服务化,两地三中央演进,也就成了最迫切的需求。
(4)成熟期(2023-至今)
熬过了日活和月活的爆发式增长,各方面基建都处于有且形成一定规模和制度。技能上实在也基本进入了成熟期,该拆的也拆了,该平台化的也平台化了,技能上能做的大动作实在也不多了,更多的是举行优化。但有时候也会为了满意某个优化,体系做很大的改变以及业务重构面对的问题。
另外疫情3年,带来的居家办公,在线协作,对办公服务的质量要求也日渐增长。行业一五十(一分钟发现、五分钟定界、十分钟恢复)已经开始没法满意用户的需求。需要提供更高的稳固性。
二、云原生时代下SRE的挑衅
(1)复杂性和不确定性:
在云原生时代,应用的架构和部署变得更加复杂。传统的单体应用已经被拆分为多个微服务,并部署在多个不同的容器或虚拟机中,涉及到的组件和服务也更加多样化。同时,在 VUCA时代,SRE团队需要面对更多的变化和不确定性,例如业务需求的变化、技能环境 的变化、安全威胁的变化、天灾人祸的变化等。
(2)新技能&主动化:
在云原生时代,主动化运维已经成为了一个必不可少的部门,由于云原生应用通常涉及到 大量的服务和组件,需要SRE利用主动化工具来淘汰手动操纵和人为错误。SRE需要掌握 主动化工具的利用和开发,如主动化测试、主动化部署、主动化扩展、主动化监控、主动化运维等。
(3)监控和故障排查的精细化要求:
云原生技能和微服务架构的出现,使得应用的可用性和性能变得更加紧张。SRE需要及时 监控和管理应用的服务质量,并对故障举行快速响应和处置惩罚。需要掌握更加精细和全面的 监控和故障排查手段以及应用性能监控、故障诊断、容量规划等相干技能,以确保应用的 高可用性和高性能。
(4)多云管理&本钱管理:
随着多云环境的遍及,SRE需要管理多个云环境和云服务商之间的互操纵性,并确保应用 在不同的云环境下的可用性和性能。需要掌握多云管理的技能和工具,如跨云平台迁徙、 多云监控和管理等。多云环境也带来了新的本钱管理挑衅。SRE团队需要掌握本钱管理的 方法和工具,以便优化应用程序的本钱和服从。
(5)安全隐患和风险:
随着云原生应用的规模和复杂性的不断增长,安全性管理变得越来越紧张。SRE需要对云 原生应用的安全漏洞和攻击举行监控和管理。他们需要掌握安全监控、漏洞扫描、安全审 计等相干技能,以包管应用的安全性。
(6)组织文化转型:
云原生时代下,SRE的脚色已经不再是传统意义上的运维人员,需要与开发人员密切合作, 共同推进应用的交付和持续改进,因此,组织文化的转型也是一个紧张的挑衅。SRE需要 具备良好的沟通能力和团队协作能力,积极与开发团队合作,推进DevOps文化的建立, 以加速应用的交付和改进。
三、金山办公SRE可靠性框架
SRE(Site Reliability Engineering)是Google提出的一种将软件开发的方法应用于运维工作的实践,目的是确保体系高度可靠和高效。金山办公基于Google的方法论,将SRE实践到现实办公领域运维中。
Site(网站):高可用网站架构
①冗余设计:确保体系的各个组件都有备份,以克制单点故障。这通常涉及到跨多个数据中央或云地区的部署。
②负载均衡:通过分配流量来优化资源利用,淘汰响应时间,防止任何单一资源的过载。
③主动伸缩:根据流量主动增长或淘汰资源,确保体系能够处置惩罚峰值负载而无需人工干预。
④故障转移和灾难恢复:设计体系以便在发生故障时能够快速切换到备用组件或站点,并确保数据的安全。
(1)确定的故障率(少出事):
①通过实验严格的质量包管流程、代码审查、主动化测试和混沌工程实践,SRE团队旨在淘汰体系的故障率。
②利用猜测性监控和根本原因分析来识别息争决可能导致故障的潜在问题。
③通过持续集成和持续部署(CI/CD)来确保代码更改不会引入新的错误。
(2)确定的恢复时长(恢复快):
①SRE团队会建立和维护一套全面的文档和流程,以便在发生故障时能够快速响应和恢复服务。
②主动化工具和脚本的广泛利用可以加速恢复过程,淘汰人工干预的需要。
③定期举行灾难恢复演练,确保在真实发生问题时能够敏捷采取行动。
(3)确定的影响面(影响小):
①通过设计高可用性和容错性体系,SRE团队可以限定故障的影响范围。
②实验有效的监控和报警体系,以便在问题出现时立即识别,并采取措施防止问题扩大。
③通过服务等级目的(SLO)和服务等级协议(SLA)来量化服务的可靠性,并与业务目的对齐,确保任何潜在的影响都在可控范围内。
Reliability(可靠性):可靠性管理
①监控和报警:及时监控体系性能和健康状况,一旦检测到异常就发出警报,以便快速响应。
②事故管理:建立明确的事故响应流程,包括事故的记录、分类、响应、事后分析和改进措施。
③容量规划:猜测未来的资源需求,确保有充足的容量来满意用户增长和业务需求。
④混沌工程:通过有控制地引入体系故障来测试体系的韧性和可靠性,确保体系能够从各种故障中恢复。
Engineering(工程):软件工程-运维平台
①主动化和工具开发:开发工具和脚本来主动化一样平常使命,淘汰手动操纵,进步服从和淘汰错误。
②持续集成和持续部署(CI/CD):通过主动化的代码集成和部署流程来加速软件开发和发布。
③服务等级目的(SLO)和服务等级协议(SLA):界说和沟通服务的可靠性目的,并与业务目的对齐。
④性能优化:不断分析和优化体系性能,确保快速响应用户请求,提供良好的用户体验。
SRE可靠性框架的目的是通过这些实践来进步体系的可靠性、性能和安全性,同时平衡可靠性与快速迭代和交付新功能的需求。通过联合软件工程的最佳实践和体系运维的深入知识,SRE帮助组织构建和运行可靠、高效、可扩展的服务。
四、Dev主动化与Ops手工运维的平衡
首先,CMDB是运维主动化的基石,体系化的运维平台,离不开CMDB这块基石的支持。CMDB为运维主动化提供了必要的数据支持和上下文,使得主动化工具和流程能够更加智能和可靠地工作。通过确保设置数据的准确性和及时性,CMDB帮助组织进步运维服从,淘汰手动错误,并终极进步IT服务的质量和可靠性。
SRE方法论在于,采用一套经过深思熟虑的SLO,对可靠性工作的时机本钱作出数据驱动型的决策,将可靠性工程工作安排到一个合理的优先级,从而包管创建充足的可靠性。所以,实验SLO,也就成为了SRE转型的敲门砖。基于SLO决策,平衡Dev和Ops的投入,克制被琐事淹没。
而主动化,可以从如下方面举行:
(1)基础办法即代码(IaC):
可以利用工具如Terraform、Ansible、CloudFormation等来界说和管理基础办法,确保环境的同等性和可重复性。
(2)持续集成/持续部署(CI/CD):
实验CI/CD流程来主动化代码的集成、测试和部署,利用Jenkins、GitLab CI/CD、GitHub Actions等工具。
(3)容器化和编排:
利用Docker和Kubernetes等容器化技能来封装应用,以及举行编排和主动化部署。
(4)主动化测试:
开发和执行主动化测试脚本,包括单元测试、集成测试、性能测试和安全测试,以确保代码质量。
(5)监控和报警主动化:
利用Prometheus、Grafana、ELK Stack(Elasticsearch, Logstash, Kibana)等工具来主动化监控和报警,确保及时发现问题。
(6)主动化故障恢复:
设计主动化故障恢复机制,如主动重启失败的服务、主动回滚失败的部署等。
(7)设置管理:
利用设置管理工具来主动化服务器和应用的设置管理。
(8)日志管理和分析:
主动化日志收集、存储和分析,以便快速诊断问题。
(9)脚本和工具开发:
开发和维护内部脚本和工具来主动化一样平常使命和复杂的运维流程。
(10)自助服务平台:
构建自助服务平台,允许开发人员通过API或Web界面自助地部署资源和管理服务。
(11)混沌工程:
实验混沌工程实践,如利用Gremlin或Chaos Monkey,来测试体系的韧性和主动恢复能力。
(12)AIOps:
探索和应用人工智能和机器学习技能,如利用AI来举行异常检测、猜测性故障分析和主动化决策。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |