基于大规模分布式系统的云原生运维实践

news2024/11/14 21:33:50

在云计算、大数据、人工智能等新兴技术的推动下,众多行业都在经历一场轰轰烈烈的数字化转型大潮。随着容器技术和编排系统的发展、基础设施不断云化、分布式微服务架构不断演进和敏捷、DevOps等开发理念的带动,应用云化已经是不可逆转的趋势,云原生也成为企业应用现代化数字转型不可不追随的潮流。

随着企业应用逐步向云原生应用进行演进和迁移,具备了更快的迭代速度、更低的开发复杂性和更好的可扩展性,但同时,部署和运维的复杂性和工作量却大大增加。相较于面向操作规则的传统运维,云原生架构下的运维转变为面向可观测数据的自动化、数据化和智能化运维,强调以应用为中心、业务指标可视化和应用全链路分析,面临着新的挑战,如图1所示。

图片

 图1 云原生架构下的运维面临的挑战

针对以上的挑战,建议的整体方案如图2所示:参考ITSM、ITIL、DevOps、敏捷、精益等先进方法论作为规划指引,实施云原生相关技术和工具作为支撑,建设突出快的敏态运维转型、突出精的技术运营、突出稳的系统稳定性保障和突出智的DataOps、AIops四大运维能力域作为目标,进而形成包括引入DevOps、基础设施即代码、Docker和K8S、Service mesh、可观测性、DevSecOps和FinOps等关键技术实践。本文主要结合这些关键技术实践如何在云原生运维下更好的落地进行探讨。

图片

图2 云原生运维整体方案

引入DevOps实现持续交付流水线、助力开发运维一体化

DevOps依靠工作流程、人员组织的整合,以协作、自动化、精益、度量、共享、文化为指引,建立一种可以快速交付价值,并且具有持续反馈和改进能力的现代化IT组织。

为了实现稳定、可靠和高效的运维体系,需要有相应的持续集成与交付方式进行配套支撑,在云原生体系下,作为运维团队,通过结合DevOps的方法论、流程、技术和工具,构建一个跨部门协作、质量内建的、持续反馈改进的一体化自动化持续交付流水线很有必要,同时形成标准化的流程和规范,推进应用部署的容器化、K8S化,实现多态研发模式、多分支持续集成、多版本、多环境、多制品库形态、多场景多策略渐进式的自动化发布部署和交付,实现效能提升。

在工具落地上,构建基于Kubernetes/Docker技术和开源工具链的CI/CD流水线,并通过不断的优化和改进,来改善开发人员的体验,使开发人员可以通过自服务的方式更容易的做正确的事情,从而实现服务的快速构建、高效集成和部署交付,同时提升运维团队的敏捷性和效率,加快产品团队的交付速度。

通过基础设施即代码实现多云管理

传统的云平台相关资源和基础设施管理,更多的是偏向运维人员以手动的方式结合云平台的portal和命令行等来进行,会出现重复度高、差异化大、成本高、人为错误等问题。

基础设施即代码,是通过代码而非手动定义的基础设施的供应和管理过程。用代码来描述基础设施的创建、变更、销毁;代码编写好,验证也是正确的,之后每次执行任务都不会出错;非常快速,高效;代码代替文档,有历史记录,可回滚,不用担心文档更新不及时或人员流动带来的“黑盒”问题;不用通过访问生产环境,就能知道生产环境上的配置情况。

作为云原生运维,面临各种不同的公有云/私有云环境和各种跨云/跨平台的操作,迫切需要具备相关工具和开发技能,工具包括Terraform和Packer,其中Terraform是一种开源工具,用可以安全高效地预览、配置和管理云基础架构和资源,Packer是通过模板来定义一些内容然后创建镜像的方式来实现。

在具体实践上,如果是云架构或云资源可以直接通过Terraform结合对应的provider进行操作,并可以根据资源分类创建不同的代码仓库和module;如果是需要定制化的基础组件,可以结合Terraform和Packer实现不可变基础设施,利用Packer去生成定制化的镜像,利用Terraform引用对应的镜像去创建资源,这种方案的好处是一次制作、重复利用,免去每次创建机器、安装服务的重复过程。

Docker和kubernetes解决容器标准化和编排

Docker容器技术的特性使其天然地适用于微服务的落地实现,一个容器实现一个微服务;无论是前端还是后端服务,均建议采用容器化的方式进行编译构建。作为云原生运维,需要结合部署和运行的要求制定dockerfile的规范,并预置统一受管控的支持多种开发语言多版本的基本镜像以备开发使用。

云原生运维更多的是围绕kubernetes的生态,目前很多云平台都具备托管的kubernetes服务,它们具有强化的安全性和快速交付功能,可以通过它们轻松的部署和管理容器化应用程序;对于这种托管的kubernetes服务的运维和保障工作也较为简单,可以结合以上的基础设施即代码进行代码化的管理,同时更多的是持续保障运行在kubernetes里服务的正常、扩容缩容和高可用,并结合业务场景持续提升集群的稳定性和SLA。

对于运维团队而言,Kubernetes这个容器编排的实施标准是成为实现云原生理念的最佳平台,同时可以结合GitOps模型,通过Git服务器和一种特定的工作流模型,为Kubernetes应用提供灵活的自动化部署管理,以实现容器应用的持续交付,以帮助实现容器应用的高可用性、可扩展性和快速响应变更的能力。

基于Service mesh轻量级的微服务治理

微服务模式下,企业内部服务少则几个到几十个,多则上百个,每个服务一般都以集群方式部署,针对服务发现和负载均衡的三种模式:集中式代理、客户端嵌入式代理和折中的主机独立进程代理都分别存在着配置麻烦、治理松散、运维部署复杂等情况。更需要一种轻量化的模式,即Service mesh。

Service mesh是一个基础设施层,是一个服务治理平台,用于处理服务间通讯。云原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中实现请求的可靠传递。在实践中,服务网格通常实现为一组轻量级网络代理,它们与应用程序部署在一起,而对应用程序透明。在微服务体系里面,除了服务本身之外,其它的服务相关的可管理可治理的部分都可以理解为是Service mesh的范畴。

而云原生化,则可以将Service mesh本身的运维与业务容器解耦开来,实现中间件运维能力的下沉,在具体实现上,可根据实际的需求采取不同的技术,比如:基于Consul+Openresty的基础方案方式;或者Istio的方式,Istio是当前最主流的Service mesh开源项目。

对于云原生运维人员,依托于Service mesh打通的服务和基础设施边界,以及对服务的统一抽象,能够更好的从全局视角进行服务质量、依赖管理、容量规划、端到端监控等来保障产品稳定性。

基于云原生的全方位可观测性实现

不同于传统的监控告警机制,在云原生下,可观测性是必备的能力,运维团队需要更全面的考虑基于云原生的可观测性。

云原生可观测性是从传统软件监控及数据分析可视化工具中,总结出在云原生领域中,从底层容器基础设施、通用技术组件到业务应用系统全链路监控运维、运营治理等产品化体系化的能力诉求,确切的体现了云原生的核心理念,它更多的是面向业务,强调将业务全过程透明化的理念。

在具体实现方面,可观测性技术实施具有技术栈多样,场景复杂,数据规模大等特点,作为运维团队,需要通过建立多层次、多维度的可观测特征数据来构建全方位云原生可观测性,并以高度集成的方式反馈这些可观测特征,以创建决策周期,从而提高组织决策的有效性。具体落地方案包括:

① 提供研发使用的基于open tracing 协议的通用统一的日志格式

② 在应用程序级别、基础架构级别和组件级别建立完善的基本监控指标,以及复杂的可靠性和可用性显示

③ 根据实际应用场景,适当的结合云平台提供的相关解决方案

④ 使用商业或开源APM工具实现应用程序的全链路跟踪、故障预警、性能定位、根因分析和优化

⑤ 使用Elasticsearch、Kibana、Grafana、Prometheus、Loki、Thanos和其他工具,将不同来源的数据以单一和连贯的方式进行呈现

持续优化DevSecOps和FinOps

云原生安全作为一种新兴的安全理念,不仅解决云计算普及带来的安全问题,更强调以原生的思维构建云上安全建设、部署与应用,推动安全与云计算深度融合。

作为运维团队,对安全需要特别重视,需要规划安全架构、评估风险态势、建设安全开发体系、防护加固体系和运维应急体系。在具体实践方面,可以基于风险评估模型建立环境和数据安全以及合规管理,比如每年合作并支持信息安全级别保护和各种安全行动,以实现系统级安全;支持和配合相关部门要求的其他防护活动,并参与攻防演练;加强安全管理机制,丰富安全审计战略;防火墙加固、策略调整和优化、实时防御安全攻击;定期修补、漏洞扫描和组件更新。

在云成本优化方面,参考FinOps能力模型,通过多种措施持续优化云成本,以降低使用云平台的费用。比如:持续分析账单以实现成本控制;通过对公有云产品特性的认知和理解,不断调整和优化;为不同环境设定产品标准,以实现精细化管理;跟踪资源的生命周期,尽可能减少浪费。

结束语

除上述外,还有运行时管理、混沌工程等技术实践,同时还需要有运维团队日常管理、和外部协作沟通模式、变更审批、可视化、汇报机制、知识库、培训体系、7*24 on call等文化、组织、流程和管理等方面的全方位支持。

云原生下,运维团队的挑战较大,任重而道远,需要尽快实现标准化、自动化和数智化,其中标准化可以促进开发和运维的沟通和协同、有助于生态分工、推动更多工具链的高度集成;自动化可以支撑更大规模业务的挑战、能够持续支撑业务的快速迭代与稳定性;数智化可以通过对监控、配置、性能、日志等运行数据进行加工计算、构建可量化可对比的技术运营指标数字化评价体系并逐步形成结合业务场景的可落地的AIOps能力。

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

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

相关文章

uni-app:实现简易自定义下拉列表

效果 代码 <template><view><view class"dropdown-trigger" tap"showDropdown">{{ selectedItem }}</view><view class"dropdown-list" v-if"showList"><view class"dropdown-item" v-f…

【面试题精讲】finally 中的代码一定会执行吗?

文章目录 finally 块的作用finally 中的代码一定会执行吗&#xff1f;1. System.exit() 导致 JVM 终止2. 无限循环或死锁3. 程序被强制终止 示例代码演示示例 1&#xff1a;正常情况下执行 finally 块示例 2&#xff1a;发生异常时执行 finally 块示例 3&#xff1a;System.exi…

ACL访问控制列表的解析和配置

ACL的解析 个人简介 ACL - Access Control List 访问控制列表 策略 ------行为 允许/拒绝 ACL --包含两种 标准ACL 扩展ACL 标准ACL&#xff1a;只能针对源IP地址做限制 针对路由条目的限制 -路由策略 思科编号&#xff1a;1-99之间或1300-1999 扩展ACL&#xff1a;针对…

SLAM从入门到精通(3d 点云数据访问)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 3d 点云设备现在汽车上用的很多。之前3d lidar这种高端传感器&#xff0c;只能被少部分智能汽车使用。后来很多国产厂家也开始研发3d lidar之后&am…

从0开始微信小程序开发

项目构成 小程序页面组成部分 WXML模板 WXML和HTML的区别 分别对应的是布局&#xff0c;文本&#xff0c;图像&#xff0c;导航跳转 WXSS 用来美化页面结构 view默认占满一行

数据治理的核心是什么?_光点科技

数据治理是当今数字化时代中企业管理的关键组成部分。在信息爆炸的时代&#xff0c;企业积累了大量的数据&#xff0c;这些数据不仅是企业宝贵的资产&#xff0c;也是推动业务决策和创新的重要驱动力。数据治理的核心在于建立有效的框架和流程&#xff0c;以确保数据的质量、安…

计算机竞赛 题目:基于深度学习的图像风格迁移 - [ 卷积神经网络 机器视觉 ]

文章目录 0 简介1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习卷积神经网络的花卉识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c…

基于ChatGPT+词向量/词嵌入实现相似商品推荐

最近一个项目有个业务场景是相似商品推荐&#xff0c;给一个商品描述(比如 WIENER A/B 7IN 5/LB FZN )&#xff0c;系统给出商品库中最相似的TOP 5种商品&#xff0c;这种单纯的推荐系统用词向量就可以实现&#xff0c;不过&#xff0c;这个项目特点是商品库巨大&#xff0c;有…

Docker与Serverless计算的集成: Docker容器如何与Serverless计算结合。

文章目录 1. Docker容器的可移植性2. Serverless计算的自动伸缩性3. 使用Serverless与Docker容器a. 自托管Serverless平台b. 使用容器服务 4. 使用案例&#xff1a;图像处理服务5. 结论 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;…

MPP 架构在 OLAP 数据库的运用

MPP 架构&#xff1a; MPP 架构的产品&#xff1a; Impala ClickHouse Druid Doris 很多 OLAP 引擎都采用了 MPP 架构 批处理系统 - 使用场景分钟级、小时级以上的任务&#xff0c;目前很多大型互联网公司都大规模运行这样的系统&#xff0c;稳定可靠&#xff0c;低成本。…

IntelliJ IDEA 2023.1 版本可以安装了

Maven 的导入时间更加快了。 收到的有邮件提醒安装。 安装后的版本&#xff0c;其实就是升级下&#xff0c;并没有什么主要改变。 IntelliJ IDEA 2023.1 版本可以安装了 - 软件技术 - OSSEZMaven 的导入时间更加快了。 收到的有邮件提醒安装。 安装后的版本&#xff0c;其实就是…

电脑屏幕怎么录制?5 个最佳免费录屏软件

您是否想使用网络摄像头录制优酷视频、抖音直播或在线课程等项目&#xff0c;但完全不知道如何开始&#xff1f; 不用担心。有很多软件选项可以帮助您。虽然每一款都有不同的功能&#xff0c;但它们都能够录制网络摄像头并输出精美的高质量视频。 以下是我们精选的最佳作品。…

京东获取推荐商品列表 API

item_recommend-获取推荐商品列表 请求参数 请求参数&#xff1a;type 参数说明&#xff1a;type:推荐类型 进入API测试页 响应参数 Version: Date: 名称类型必须示例值描述 items items[]0获取推荐商品列表 num_iid Bigint010021415166448宝贝ID detail_url String0http…

【广州华锐互动】灭火器使用VR教学系统应用于高校消防演练有什么好处?

在科技发展的大潮中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术以其独特的沉浸式体验赢得了各个领域的青睐&#xff0c;其中包括教育和培训。在高校消防演练中&#xff0c;VR也成为了一种新的消防教育方式。 由广州华锐互动开发的VR消防演练系统&#xff0c;就包含了校…

kali安装dvwa

引言 因为工作原因&#xff0c;正在参加安全众测&#xff0c;我又是初学者&#xff0c;自然就绕不开dvwa。我就想在kali上面配置dvwa&#xff0c;不想再windows里面配&#xff0c;毕竟这样显得自己更专业。 dvwa是什么&#xff1f;DVWA全称为Damn Vulnerable Web Application…

五分钟掌握NineData:新手任务速成指南

NineData 以其强大的功能和简易的操作&#xff0c;成为众多企业以及个人用户的首选。然而如果您首次使用 NineData 控制台&#xff0c;可能会遇到一些挑战&#xff1a; 不知道从何下手 &#xff1a;新用户可能会迷失在界面和操作中&#xff0c;不清楚从哪里开始、如何添加数据…

华为云Stack的学习(九)

十、华为云Stack灾备服务介绍 1.云硬盘备份VBS 云硬盘备份服务&#xff08;VBS&#xff0c;Volume Backup Service&#xff09;可为云硬盘&#xff08;EVS&#xff0c;Elastic Volume Service&#xff09;创建备份&#xff0c;利用备份数据恢复云硬盘&#xff0c;最大限度保障…

Rule-Engine-Starter V1.0.0

一个轻量级的规则引擎、搜索引擎&#xff0c;让条件匹配简单、优雅。 GIT地址 https://gitcode.cosmoplat.com/15011240224/rule-engine-starter 介绍 Rule-Engine-Starter 是一个轻量级规则引擎&#xff0c;V1.0.0主要解决条件匹配问题。比如飞书文档&#xff0c;每个文档都…

API接口安全运营研究(内附官方开发平台api接口接入方式)

摘 要 根据当前API技术发展的趋势&#xff0c;从实际应用中发生的安全事件出发&#xff0c;分析并讨论相关API安全运营问题。从风险角度阐述了API接口安全存在的问题&#xff0c;探讨了API检测技术在安全运营中起到的作用&#xff0c;同时针对API安全运营实践&#xff0c;提出…

C++语言实现网络爬虫详细代码

当然&#xff01;下面是一个用C语言实现的基本网络爬虫的详细代码示例&#xff1a; #include <iostream> #include <string> #include <curl/curl.h> size_t writeCallback(void* contents, size_t size, size_t nmemb, std::string* output) {size_t totalS…