容器云平台运维的范围与架构设计新思潮

 容器云平台运维的范围与架构设计

   843b18ebdec58a16bce592b055d638d6.jpeg

【导读】容器云平台有其独特的特点,不同于传统系统的运维。本文分享了作者对容器云平台运维范围和运维架构设计的思考与实践。

一、容器云平台运维范围

(一) 梳理要运维哪些内容

作为运维专家,您的职责至关重要:以最佳实践确保系统稳定运行,从而保障业务顺畅运营。系统故障直接影响业务,可能导致客户流失和损失。因此,运维人员必须透彻理解运维职责。这将指导您设计和实施高效的部署和运维架构。

容器云平台运维涵盖基础设施资源(服务器、存储、网络层、操作系统)以及平台自身(Docker、Kubernetes、镜像仓库)的维护。其还涉及日志、监控、告警、权限认证、配置等。
关键点在于支撑应用运维,包括部署、迁移、状态监控、告警、扩容、伸缩、配置更新、流量管控、负载均衡、访问控制等。

(二) 明确运维的工具和手段

高效运维的关键在于工具和方法,它们能将运维效率提升指数倍。掌握和运用合适的运维工具和方法,让软件运维不再是赤手空拳的挑战。

Google SRE 团队利用自动化运维工具、监控工具和配置管理工具,提高运维效率和系统稳定性。这些工具显著简化了日常运维流程,从而提升系统可靠性。

(三) 选择运维架构

不同的系统运维方法和运维架构也是不一样。容器云平台有其独特的特点,不同于传统系统的运维。对运维人员来说,最大的要求就是确定性。容器的弹性、自恢复、自动迁移等特性在带来便利的同时也带来了不确定性。特别是在庞大的云计算环境。不确定性会对运维人员来说面临着巨大的压力。因此作为运维人员就需要选择合适的架构来规避不确定性和不稳定性。结合容器云平台的特性和 API 网关组成两层服务治理体系,在提高安全性和可靠性的同时也充分利用了容器的轻量弹性特点。

(四) 开发测试和运维工作的差别在哪

运维与开发测试有着截然不同的目标。开发追求敏捷和速度,而运维则优先稳定性和可靠性,以最大程度地降低风险。
然而,完全的稳定是不现实的。为了实现动态稳定,运维需要利用容器的弹性和可移植性,以应对变化并保持系统可用性。

(五) DevOps和SRE的精髓在哪里

DevOps 追求开发运维一体化,但在国内并没有多少人真正思考 DevOps 该如何落地。Google SRE 我觉得是一种非常好的实践,他并没有要求开发人员去做运维,而是很多运维人员去做开发,而开发的主要是运维工具。

所以我们看到国内很多 DevOps 的宣传其实都是很片面的,并不是基于实践的总结,而是概念的炒作。当前云计算环境下的运维已经不同于传统的应用系统运维。当前应用系统逐步的融合、微服务化,以云计算为底座,云就像一个大的容器, docker 是这个大的容器中的小容器,承载微服务应用的敏捷部署和弹性伸缩等能力。

为提升运维效率并保障系统稳定,应侧重于采用或自主开发合适的运维工具。这些工具有助于提高工作效率,同时维护系统的稳定性。

开发人员的运维工作量与开发工作量比例为 1:4。这意味着一名开发人员负责的运维工作量是开发任务的四倍。如果同时承担运维任务,开发人员将陷入繁琐的运维事务中,影响开发效率。

二、 运维架构设计

(一) 镜像仓库的作用

云平台镜像仓库:互联环境,高效协作
镜像仓库可跨集群和平台共享,充当不同环境之间的桥梁。测试和开发、生产和测试环境可使用独立镜像仓库,实现镜像隔离。仓库支持镜像同步和操作,确保环境间数据一致性,提升容器云平台运营效率。

镜像确保不同环境部署一致,标准化应用分发。镜像仓库作为连接点,可隔离开发、测试、生产,提升安全和稳定。它促进了应用分发的标准化,提供了环境一致性,提高了稳定性和安全性。

(二) 实践SRE

SRE 强调运维人员具备开发技能,打造全能型人才。
国内对运维误解颇深,认为不懂开发者才从事运维。
提升运维效率的关键在于采用工具和自动化。
分离资源运维和应用运维,让专业人员专注于专业领域。

(三) 运维分层

运维涵盖范围广泛,从基础设施资源到应用维护。为了提升运维效率,建议将运维内容划分为三个层次:
* 基础设施资源:网络、服务器、存储等物理基础设施的维护。
* 平台:操作系统、中间件等支撑应用运行的环境的维护。
* 应用:业务系统及相关软件的维护。
通过分层管理,运维人员可专注于各自领域,提高运维服务质量。

(四) 接口标准化

高效协同的关键在于标准化接口。如同基础设施团队提供资源服务,需建立云管平台实现标准化的虚拟机接口服务,确保灵活扩展和动态扩容能力。

(五) 流程自动化

提升运维效率,自动化是关键。
自动审批虚拟机申请,消除人为阻碍。
预先定义IP地址段、配置参数等,自动创建虚拟机,满足不同需求。

(六) 将资源运维与应用运维分离

资源运维涵盖服务器、网络、存储和虚拟化等基础设施资源的维护。借助自动化工具,大部分任务可实现标准化。
监控管理系统可满足基本需求。多云资源管理需求兴起,带来一定复杂性。

容器平台资源运维专家负责基础设施资源的维护,涵盖网络、存储和虚拟化等专业领域。他们确保资源稳定运行,为容器云平台和 PaaS 平台提供可靠的基础。

(七) 应用运维是核心

容器云平台的核心在于赋能应用运维,为业务应用提供更便捷、高效的管理。
通过全面的应用管理能力,容器云平台简化了应用运维的工作,从部署、监控到弹性扩缩容、灰度发布等各个环节,为应用提供了全方位的支持。这使业务应用使用团队能够在平台提供的基础上,轻松高效地完成应用运维任务,从而提升应用性能和稳定性。

(八) 平台和组件支撑应用运维

容器云平台的运维重点在于平台和周边组件的持续完善和优化。通过开发和建设运维工具、流程和方法,运维团队可以优化平台运维,更好地支撑应用运营。

(九) 微服务架构微服务治理是难点

应用运维中,微服务架构下,服务治理可能是个难点。微服务架构带来了服务运维的复杂度,服务的部署、迁移、弹性伸缩、流量分发、内外部负载均衡、高可用、稳定性等需求对容器云平台支撑的应用运维能力要求很高。选择了什么样的微服务架构,如何更好的管理治理好微服务, 是容器云平台不得不考虑的一个重要问题。比如微服务中实现了注册发现,比如用 springcloud 的开发框架,已经有了一套自己的服务治理方法,如何跟容器云平台更好的融合?开发的微服务是否需要自己去实现注册发现,流量控制,熔断降级等机制,或是简单可以在容器云平台来实现?

我们有个需求是根据响应时间来弹性扩容。我们没有采用 cpu 内存作为弹性伸缩的指标,因为 cpu 内存是不准确的。Java 内存机制不适合采用内存方式,而 cpu 变化又太快,如果拉长时间则可能导致延误,出现大量超时。所以根据响应时间作为扩容指标则相对更优。那么这就需要在服务网关或容器云平台或者 api 网关来实现了。服务网关的话需要开发人员自己实现,每个团队都需要部署个这么的网关,明显不合适。在容器云平台如果实现这样的能力,则每个服务都可以直接使用。形成了标准化。

(十) 两层治理体系

采用分层服务治理:
- 容器云平台层:利用容器优势,高效管理云原生应用。
- API 网关层:满足传统应用的服务治理需求,无缝对接容器云平台。

5d86f82822b44e12d7bf085a8858e813.jpeg

混合云环境中,API网关可优化微服务治理。
当传统系统不适合或无法完全容器化时,API网关提供两层微服务治理体系,提高管理效率和维护便利性,有效管理非容器化或部分容器化的微服务应用。

容器云平台架构:
分离开发测试运维流程,聚焦应用管理。分析资源、平台和应用运维,实现双重服务治理。利用容器优势,规避弱点,提供高效、稳定的容器化解决方案。


 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

被删除的照片和视频能找回吗?如何恢复手机删除的照片和视频?

手机里的照片和视频是我们记录生活的每一个瞬间,也是工作学习等场合经常用到的东西,一旦不慎丢失,将对我们造成很大损失。那么我们该如何恢复手机删除的照片和视频呢?通过掌握正确的恢复方法,能够最大程度地保护手机中…

【Leetcode笔记】501.二叉搜索树中的众数

文章目录 题目要求ACM 模式代码知识点 题目要求 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数,可以按 …

PDF文件去除文字水印

文章目录 0、背景1、准备工作2、查看是否是文字水印3、批量去除水印 0、背景 本文主题为去除PDF文件中的水印。源文件来自这里。防止丢失,我在这里做个记录,感谢原作者的付出,也欢迎大家关注原作者。 1、准备工作 下载Adobe Acrobat DC软件…

GUI测试首推!TestComplete 帮助有效缩短 40-50% 测试时长!

TestComplete 是一款自动化UI测试工具,这款工具目前在全球范围内被广泛应用于进行桌面、移动和Web应用的自动化测试。 TestComplete 集成了一种精心设计的自动化引擎,可以自动记录和回放用户的操作,方便用户进行UI(用户界面&…

C++ 面向对象-封装

C 是一种多范式编程语言,它支持面向对象编程(OOP)范式。面向对象编程是一种程序设计思想,其中程序由对象组成,每个对象都是一个实例,具有数据和相关操作。在C中,实现面向对象编程主要通过类和对…

Vue3、 Vue2 Diff算法比较

Vue2 Diff算法 源码位置:src/core/vdom/patch.ts 源码所在函数:updateChildren() 源码讲解: 有新旧两个节点数组:oldCh和newCh; 有下面几个变量: oldStartIdx 初始值=0 oldStartVnode 初始值=oldCh[0] oldEndIdx 初始值=oldCh.length - 1 oldEndVnode 初始值=oldCh[ol…

如何在PostgreSQL中设置定期任务(如定时备份、数据分析等),并使用pgAgent或其他方式实现

文章目录 使用pgAgent实现定期任务步骤一:安装pgAgent步骤二:配置pgAgent步骤三:创建和调度任务示例代码: 使用操作系统的任务调度功能实现定期任务步骤一:编写脚本步骤二:设置cron任务示例代码&#xff1a…

ssh日志的独立与ssh远程日志

日志相关介绍: 1.系统日志:是记录了历史事件:包括时间地点人物事件等。日志级别:事件的关键性程度,Loglevel。 级号消息级别说明0EMERG紧急会导致主机系统不可用的的情况1ALERT警告必须马上采取措施解决的问题2CRIT严…

vue3实现全局事件总线

1、vue3中使用全局事件总线是变化最大的。在vue2中,我们在new Vue中在beforeCreate钩子函数中使用vue.prototype.$busthis来创建全局事件总线。vue3中我需要借助第三方库来完成创建全局事件总线。 2、安装依赖 npm i mitt -s3、封装event-bus.js文件 import mitt …

【白菜学习问问问系列】if __name__ == ‘__main__‘:怎么理解

可以让.py文件既可以当成一个模块调用,也可以单独的作为一个函数执行

【基础算法】双指针

1.移动零 移动零 思路: 利用双指针算法 cur:从左往右扫描数组,遍历数组 dest:处理好的区间包括dest dest初始化为-1,因为刚开始dest前应该没有非零元素。 即将非零元素移到dest之前即可 class Solution { public…

2016年新华三杯复赛实验试题

2016年新华三杯复赛实验试题 拓扑图 配置需求 考生根据以下配置需求在 HCL 中的设备上进行相关配置。 以太网接口配置 将 S1、S2 的以太网接口 G1/0/1 至 G1/0/16 的模式用命令 combo enable copper 激活为电口。 虚拟局域网 为了减少广播,需要规划并配置 VLA…

浏览器工作原理与实践--HTTPS:浏览器如何验证数字证书

你好,我是李兵。 在《HTTPS:让数据传输更安全》这篇文章中,我们聊了下面几个问题: HTTPS使用了对称和非对称的混合加密方式,这解决了数据传输安全的问题; HTTPS引入了中间机构CA,CA通过给服务器…

重生奇迹mu卷轴有什么用

问题一:重生奇迹mu里面的国王卷轴有什么用啊?创造宝石怎么用啊?国王卷不晓得~~宝石用来创造果实的。(属性果实) 问题二:请问重生奇迹mu里国王卷轴去哪弄?天空之城有,废墟1和2也有,遗址230也有…

付费SSL证书比免费SSL证书好在哪?

1. 身份证明更权威:付费证书可进行深度身份验证,让访客知道你的网站是真实、合法的公司运营,尤其高级证书能在浏览器地址栏显示公司名,让人一看就放心。 2. 适用范围广:有单域名、多域名、通配符等多种证书类型&#x…

基于SpringBoot的“幼儿园管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“幼儿园管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 个人信息界面图 缴费信息管理界…

重温javascript --(一)值的介绍

值的介绍 一、 值类型: 原始值 stack栈: 遵循后进先出原则,中主要存放一些基本类型的变量和对象的引用。如:Number String Boolean undefined null symbol BigInt 栈内不可修改值,内存满才会实现二次值覆盖 引用值 heap堆&#x…

C盘满了如何清理

1.更改位置 (1)找到要更改的用户 (2)找到要更改的部分,右键点击“属性” (3)选择“位置”——“移动”——选择要移动的盘及地方 点击“确定”——“是”,等待迁移完成

STL_vector源码剖析

STL vector STL2.91源码地址: https://github.com/lewischeng-ms/sgi-stl 侯捷老师用的是 2.91,不同版本的STL差异很大,靠后版本的STL用了太多typedef以及继承关系,导致可读性很差。 本文参考博客: https://blog.csdn.net/weixin_45389639/article/detai…

Docker NetWork (网络)

Docker 为什么需要网络管理 容器的网络默认与宿主机及其他容器都是相互隔离的,但同时我们也要考虑下面的一些问题, 比如 多个容器之间是如何通信的容器和宿主机是如何通信的容器和外界主机是如何通信的容器中要运行一些网络应用(如 nginx、web 应用、数…