当前位置: 首页 > article >正文

一个运维的AI转型实录:从手动部署到云原生,踩了这些坑

去年这个时候我还是一个每天手动部署服务的运维。SSH登录服务器git pullnpm buildpm2 restart一套流程走下来20分钟。如果同时要部署3个服务就是1个小时。现在一条命令3个服务同时部署完成包括健康检查和回滚。不是我变快了是我换了套工具。这篇文章不是教你AI多厉害而是分享我从传统运维转型到云计算/AI运维的实际经历包括踩过的坑、考过的证、以及我觉得值得学的技术栈。踩坑一以为Docker就是容器化的全部2024年初我开始学Docker。觉得学会了Docker就算云原生了。写了一堆Dockerfile把服务全容器化了觉得自己很牛。然后遇到了第一个坑服务之间怎么通信Docker默认的bridge网络容器之间只能用IP通信。IP会变一重启就挂。我花了两天时间搞明白要用docker-compose又花了一天搞明白要用自定义网络。分享一个我实际在用的docker-compose配置三个服务自定义网络健康检查version: 3.8 services: app: build: ./app ports: - 3000:3000 networks: - backend healthcheck: test: [CMD, curl, -f, http://localhost:3000/health] interval: 30s timeout: 10s retries: 3 restart: unless-stopped ​ worker: build: ./worker networks: - backend depends_on: redis: condition: service_healthy environment: - REDIS_URLredis://redis:6379 ​ redis: image: redis:7-alpine networks: - backend healthcheck: test: [CMD, redis-cli, ping] interval: 10s ​ networks: backend: driver: bridge这个配置踩过两个坑。第一个是depends_on的condition: service_healthyDocker Compose v3默认不支持这个语法我第一次跑的时候直接报错。后来查了半天文档发现需要升级到v3.8才行。第二个是健康检查。我一开始没配healthcheck结果worker启动的时候redis还没ready连接直接被拒。加了healthcheck之后才解决。后来才发现Docker只是入门。真正的云原生是Kubernetes。但K8s的学习曲线太陡了我学了两个月才勉强能在生产环境用。给大家看一个我实际部署到K8s的Deployment配置apiVersion: apps/v1 kind: Deployment metadata: name: ai-service labels: app: ai-service spec: replicas: 3 selector: matchLabels: app: ai-service template: metadata: labels: app: ai-service spec: containers: - name: ai-service image: registry.cn-hangzhou.aliyuncs.com/myteam/ai-service:v2.1 ports: - containerPort: 8080 resources: requests: memory: 512Mi cpu: 500m limits: memory: 2Gi cpu: 2000m livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5这个配置也踩过坑。initialDelaySeconds我一开始设成了5秒结果应用启动比较慢要加载模型健康检查连续失败导致Pod被反复重启。改成30秒之后才正常。这种坑文档里不会写只有实际部署过才会知道。经验别把Docker当终点它只是起点。但也别一上来就学K8s先搞懂Dockerdocker-compose能解决80%的问题。踩坑二自建CI/CD vs 云服务选错了方向2024年中我想搞自动化部署。当时有两个选择自建一套JenkinsGitLab Runner或者用阿里云的云效/DevOps平台。我选了自建。原因很简单——免费。然后我花了两周时间搭建Jenkins配插件写pipeline脚本。搞完之后发现维护Jenkins本身就要花不少精力。插件升级冲突、磁盘满了、Java版本不兼容……各种问题。更离谱的是有一次Jenkins挂了导致整个部署流程中断了3个小时。我凌晨2点被电话叫起来修。后来还是迁移到了阿里云云效。迁移只花了半天而且再也不用操心基础设施了。给大家看一段我之前写的Jenkinsfile自建时代的产物和现在云效的配置对比一下// 以前的Jenkinsfile又长又脆弱 pipeline { agent any stages { stage(Build) { steps { sh npm install sh npm run build } } stage(Test) { steps { sh npm test } } stage(Deploy) { steps { sh docker build -t myapp:${BUILD_NUMBER} . sh docker stop myapp || true sh docker rm myapp || true sh docker run -d --name myapp -p 3000:3000 myapp:${BUILD_NUMBER} } } } post { failure { mail to: teamexample.com, subject: Build Failed: ${env.JOB_NAME} #${env.BUILD_NUMBER}, body: Check console output at ${env.BUILD_URL} } } }这段脚本看着简单实际维护起来很痛苦。有一次npm registry挂了所有构建全部失败我手动改了三台Jenkins agent的npm config才修好。还有一次磁盘满了Jenkins直接罢工凌晨2点被电话叫起来清理日志。现在用云效之后同样的流程配置大概是这样简化版# .flow.yml阿里云云效 stages: - name: 构建 jobs: - job: build_node steps: - step: npminstall - step: npmbuild - name: 测试 jobs: - job: test steps: - step: npmbuild commands: - npm test - name: 部署 jobs: - job: deploy_aliyun steps: - step: deploy with: region: cn-hangzhou service: myapp image: registry.cn-hangzhou.aliyuncs.com/myteam/myapp不用管服务器不用管磁盘不用凌晨起来修Jenkins。构建日志、测试报告、部署状态全在云效控制台看。唯一的缺点是要花钱——但我们算了一下每月的费用大概200块比我凌晨2点加班的时薪便宜多了。经验除非你有专门的DevOps团队否则别自建CI/CD。云服务的成本比你想象中低省下来的时间比你省下来的钱值钱得多。踩坑三考ACP认证第三章差点放弃2024年底我决定考阿里云ACP云计算认证。原因很简单——跳槽的时候发现有ACP的候选人面试通过率高很多。备考过程踩了几个坑分享给大家。坑1官方文档太厚了。阿里云ACP的官方教材有500多页我看了两周才看了三分之一。后来发现了一个更高效的方法——先刷题把错题对应的知识点去官方文档里找。这样效率高了至少3倍。坑2云安全那章卡了我三天。ACP考试里云安全占的比重不小但我之前对安全完全没概念。KMS、RAM、安全组规则这些东西看文档看得头晕。后来在B站找了个系列视频跟着实操了一遍才搞明白。坑3模拟题和真题难度不一样。官方模拟题比较简单我第一次做能拿80分。但实际考试的时候有几道题考得很细比如某个产品的某个参数默认值是多少这种。这种题只能靠多刷题积累。最后考了86分过的。不算高但够用了。经验别只看文档一定要刷题实操。官方文档是知道有什么刷题是知道考什么实操是知道怎么用。三者缺一不可。踩坑四AIops不是运维AI这么简单今年初我开始接触AIops。一开始以为就是用AI工具辅助运维比如用ChatGPT写shell脚本之类的。后来发现完全不是这么回事。真正的AIops是让AI自主完成运维任务。比如异常检测、自动扩缩容、故障自愈。这需要你懂PrometheusGrafana的监控体系懂K8s的HPA/VPA懂时序数据的异常检测算法。分享一个我最近写的Prometheus告警规则用来自动检测API响应时间异常# prometheus-alerts.yml groups: - name: ai_service_alerts rules: # API响应时间P99超过2秒触发告警 - alert: HighLatency expr: histogram_quantile(0.99, rate(http_request_duration_seconds_bucket{jobai-service}[5m])) 2 for: 5m labels: severity: warning annotations: summary: AI服务响应时间过高 (P99: {{ $value }}s) description: {{$labels.instance}} 的P99延迟已超过2秒持续5分钟 ​ # GPU显存使用率超过90%触发告警 - alert: GPUHighMemory expr: nvidia_gpu_memory_used_bytes / nvidia_gpu_memory_total_bytes 0.9 for: 3m labels: severity: critical annotations: summary: GPU显存使用率超过90% description: {{$labels.instance}} GPU {{$labels.gpu}} 显存使用率: {{ $value | humanizePercentage }}写这个规则的时候踩了个坑for: 5m这个参数我一开始设成了for: 1m结果只要有一次请求慢了就告警一天能收到几十条告警邮件后来全团队都把告警群屏蔽了。改成5分钟之后只对持续性的问题告警误报率大幅下降。还有一个坑是GPU监控指标。Prometheus默认不采集nvidia_gpu_*指标需要额外装nvidia_gpu_exporter。我第一次部署的时候忘了装告警规则写了但永远不触发排查了半天才发现问题出在这里。我目前还在学。但有一个感触很深传统运维正在被替代但能设计和维护AI运维系统的人极度稀缺。IDC预测到2030年45%的日常IT运维任务将由AI智能体处理。如果你现在还在做手动部署、手动巡检这类工作真的要开始转型了。我现在的技术栈和学习路径分享一下我目前的技能栈给想转型的朋友参考已掌握Linux系统管理、Docker、Kubernetes基础、阿里云ACP、CI/CD云效、Shell/Python脚本、PrometheusGrafana监控正在学AIops异常检测、自动扩缩容、大模型应用开发LangChain、云原生安全下一步计划考ACE架构师认证把云计算的技能体系再往上拉一层关于考认证是不是智商税这个问题在CSDN评论区经常看到。说点我自己的看法。认证本身不值钱值钱的是备考过程中你学到的知识体系。我考ACP之前对云计算的理解是碎片化的——知道一些产品但不知道它们之间的关系。考完之后脑子里有了一张完整的云架构图。脉脉春招数据持证云计算工程师比无证的月薪高5000-8000元。这个溢价不是因为你有一张纸是因为你真的比别人多知道一些东西。但如果你只是背题库过了考试没有实际操作经验那确实没什么用。面试官问两个实操问题就露馅了。我的建议考认证做项目两条腿走路。踩坑总结写到最后总结几条我转型过程中最大的教训别在免费上浪费时间。自建Jenkins省了几百块但浪费了两周凌晨2点的加班。云服务该花就花。别把Docker当终点。Docker→K8s→Service Mesh云原生是一条很长的路但每一步都有明确的回报。别只背题不实操。ACP考试83分过了但如果不会在控制台实际操作面试一样过不了。别等准备好了再转型。我2024年初开始学Docker的时候也没觉得自己准备好了。就是硬着头皮学的。有在转型路上的朋友评论区聊聊你们卡在哪一步了或者已经转型成功的分享一下你们的经验。云计算从业者ACP云计算持证计划开始开始ACP大模型认证以上纯属个人经验欢迎交流。

相关文章:

一个运维的AI转型实录:从手动部署到云原生,踩了这些坑

去年这个时候,我还是一个每天手动部署服务的运维。SSH登录服务器,git pull,npm build,pm2 restart,一套流程走下来20分钟。如果同时要部署3个服务,就是1个小时。现在?一条命令,3个服…...

从信息收集到Root权限:一次完整的Lampiao靶机渗透实战解析

1. 环境准备与信息收集 第一次接触Lampiao靶机时,我习惯性地先搭建了一个隔离的测试环境。建议使用VirtualBox或VMware创建一个独立的NAT网络,把Kali攻击机和Lampiao靶机放在同一个网段。这里有个小技巧:在VirtualBox的全局设置里创建专用NAT…...

实测飞算JavaAI vs Copilot:效率提升不是一点点,完整项目生成才是关键差距

实测飞算JavaAI vs Copilot:效率提升不是一点点,完整项目生成才是关键差距## 开篇:一个Java开发者的日常困境干了三年Java,你大概已经习惯了这样的节奏:早上产品经理丢过来一个需求——"做个用户权限管理模块&…...

深度解析MelonLoader:Unity游戏模组加载器的架构设计与系统优化

深度解析MelonLoader:Unity游戏模组加载器的架构设计与系统优化 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader Mel…...

5分钟极速部署:开源在线PPT编辑器的完整配置指南

5分钟极速部署:开源在线PPT编辑器的完整配置指南 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for the…...

原神祈愿记录导出工具:3分钟掌握你的抽卡命运

原神祈愿记录导出工具:3分钟掌握你的抽卡命运 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 核心关键词:原神抽卡记录导出、祈愿…...

<数据集>yolo 瓶盖识别<目标检测>

点击下载数据集https://download.csdn.net/download/qq_53332949/92799678数据集格式:VOCYOLO格式 图片数量:2840张 标注数量(xml文件个数):2840 标注数量(txt文件个数):2840 标注类别数:1 标注类别名称&#xff…...

从‘Hello World’到驱动编译:树莓派4B交叉编译工具链实战应用全解析

从‘Hello World’到驱动编译:树莓派4B交叉编译工具链实战应用全解析 树莓派4B作为一款强大的单板计算机,其应用场景早已超越了简单的教学和原型开发。对于开发者而言,掌握交叉编译工具链的使用,能够显著提升开发效率,…...

告别v8!在IMX6ULL上为LVGL v9配置触摸屏和FrameBuffer的完整流程(韦东山/正点原子板通用)

在IMX6ULL开发板上实现LVGL v9的触摸与显示驱动全解析 LVGL(Light and Versatile Graphics Library)作为嵌入式领域最受欢迎的图形库之一,其v9版本带来了架构级的革新。对于使用IMX6ULL处理器的开发者而言,如何充分利用这些新特性…...

论文AIGC率太高?降痕技巧+平台避坑指南来了

各位同学最近是不是被论文的AIGC率搞得焦头烂额?好不容易整理完资料写完内容,提交检测却被判疑似AI生成,返工改到凌晨还是卡在线上?这真不是你写得不好,只是不同检测平台的判定逻辑差异太大,稍不注意就踩了…...

告别嗡嗡声:用双三相电机+DTC,手把手教你打造静音高效的工业风扇控制系统

工业风扇静音革命:双三相电机DTC实战指南 站在工厂车间里,耳边持续不断的嗡嗡声早已成为许多工程师的"背景音乐"。工业风扇、泵机等设备的噪音不仅影响工作环境,更是设备效率低下和潜在故障的信号。作为一名经历过数十个工厂改造项…...

电脑禁用U口、禁用USB端口、屏蔽移动存储设备使用的方法

以下从系统层、硬件层、物理层提供可直接落地的禁用方案,覆盖不同 Windows 版本与安全强度需求,优先选用不影响键鼠的精准管控方式。当然,最简单的方法还是部署专门的电脑U口禁用软件、屏蔽USB接口的软件。例如“大势至电脑文件防泄密系统”&…...

Adobe-GenP 3.0:解锁Adobe创意套件的终极完整指南

Adobe-GenP 3.0:解锁Adobe创意套件的终极完整指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的订阅费用头疼吗&#xf…...

Arcgis自定义脚本工具开发:从参数配置到交互优化

1. 认识ArcGIS自定义脚本工具 如果你经常使用ArcGIS处理空间数据,一定会遇到内置工具无法满足需求的情况。这时候自定义脚本工具就能派上用场了——它允许你把Python脚本封装成可视化工具,像使用系统工具一样通过对话框操作,还能分享给其他同…...

网站国产化改造,如何做到软件成本几乎为零?

国产化改造不必然意味着高投入。核心思路是“选对技术组合、用好免费开源资源”——华为欧拉(openEuler)操作系统与openGauss数据库均为开源免费产品,加上PageAdmin CMS的官方适配支持,可以做到“软件零采购成本”完成网站系统的国…...

SARScape实战:高效DEM数据获取与预处理全攻略

1. 为什么需要手动获取DEM数据? 很多刚接触SARScape的朋友可能会疑惑:软件明明自带DEM下载功能,为什么还要费劲手动下载?这个问题我刚开始也纠结过,直到在实际项目中踩过几次坑才明白其中缘由。 SARScape内置的DEM下载…...

不止于下载:Dreem睡眠数据集DOD-O/DOD-H到手后,如何快速验证与使用?

不止于下载:Dreem睡眠数据集DOD-O/DOD-H到手后,如何快速验证与使用? 当你终于成功下载了Dreem睡眠数据集DOD-O和DOD-H,兴奋之余可能会陷入新的困惑:这些数据文件该如何验证完整性?数据结构是怎样的&#xf…...

单细胞数据合并后,你的聚类图为啥不好看?可能是批次效应在捣鬼

单细胞数据合并后,你的聚类图为啥不好看?可能是批次效应在捣鬼 当你兴奋地将多个单细胞RNA测序样本合并,准备大展拳脚进行聚类分析时,却发现t-SNE或UMAP图上细胞群杂乱无章,本该清晰的细胞类型边界变得模糊不清——这很…...

告别pip install失败:用Conda-forge通道一键安装Pycwr及气象雷达数据处理全家桶

科学计算环境革命:用Conda-forge高效部署气象雷达分析工具链 在气象数据分析领域,Python生态提供了丰富的工具选择,但复杂的依赖关系常常成为入门者的噩梦。特别是处理雷达数据时,Pycwr、Py-ART这类专业库往往需要编译大量C/C扩展…...

从协同过滤到深度学习:Spark机器学习实战全解析

1. Spark机器学习实战入门指南 第一次接触Spark机器学习时,我被它强大的分布式计算能力震撼到了。记得当时用单机跑一个推荐算法,500万数据量就要处理半小时,换成Spark集群后同样的任务只要2分钟。这种性能飞跃让我决定深入探索Spark MLlib和…...

健康160自动挂号工具终极指南:5分钟掌握全自动抢号技巧

健康160自动挂号工具终极指南:5分钟掌握全自动抢号技巧 【免费下载链接】91160-cli 健康160全自动挂号脚本,捡漏神器 项目地址: https://gitcode.com/gh_mirrors/91/91160-cli 还在为健康160平台抢号难而烦恼吗?热门医生的号源总是秒光…...

3分钟掌握Windows风扇智能控制:告别噪音烦恼的终极指南

3分钟掌握Windows风扇智能控制:告别噪音烦恼的终极指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...

Java2Flowchart:一款把 Java 方法一键转换成 Mermaid 流程图的 IntelliJ 插件

author ChangJin Wei (魏昌进)Java2Flowchart:一款把 Java 方法一键转换成 Mermaid 流程图的 IntelliJ 插件 在阅读复杂 Java 代码时,最耗费时间的往往不是语法,而是理解控制流: 这个方法到底先走哪条分支?循环是怎么退…...

绝地求生压枪难题破解:罗技鼠标宏配置终极指南

绝地求生压枪难题破解:罗技鼠标宏配置终极指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中枪械后坐力控制而…...

OpenClaw 太难装了?试试 LangTARS:一行命令部署 + WebUI 管理面板,还能接入 Dify/Coze/nn??坠

1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

Xv6 Lab3: Optimizing Page Tables for Direct User-Kernel Memory Access

1. Xv6页表机制概述 Xv6采用三级页表结构实现虚拟地址到物理地址的转换。每个进程拥有独立的用户页表,而内核则使用全局的内核页表。这种设计带来一个关键限制:当内核需要访问用户空间数据时(如系统调用参数),必须通过…...

5大特性解析:Fast-GitHub浏览器扩展如何实现GitHub访问速度飞跃

5大特性解析:Fast-GitHub浏览器扩展如何实现GitHub访问速度飞跃 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 国内开…...

5步终极指南:用ObjToSchematic将任何3D模型变成Minecraft建筑

5步终极指南:用ObjToSchematic将任何3D模型变成Minecraft建筑 【免费下载链接】ObjToSchematic A tool to convert 3D models into Minecraft formats such as .schematic, .litematic, .schem and .nbt 项目地址: https://gitcode.com/gh_mirrors/ob/ObjToSchema…...

3步掌握飞书文档转换:Cloud Document Converter零基础上手指南

3步掌握飞书文档转换:Cloud Document Converter零基础上手指南 【免费下载链接】cloud-document-converter Convert Lark Doc to Markdown 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-document-converter Cloud Document Converter是一款专为飞书用…...

三步构建你的专属知识星球离线图书馆

三步构建你的专属知识星球离线图书馆 【免费下载链接】zsxq-spider 爬取知识星球内容,并制作 PDF 电子书。 项目地址: https://gitcode.com/gh_mirrors/zs/zsxq-spider 你是否曾经在知识星球上发现一篇深度好文,想要反复研读却只能在手机上翻看&a…...