MoreRSS

site iconAnZhihe | 安志合修改

国学和传统文化爱好者,IT行业从业者,运维和SRE。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

AnZhihe | 安志合的 RSS 预览

AI技术赋能自动化运维的核心价值与功能开发路径

2025-09-15 14:17:53

以大模型为代表的AI技术正在重塑自动化运维(AIOps)的范式,通过预测、自动化、优化、安全四大核心能力,解决传统运维中响应滞后、效率低下、成本高昂等痛点。以下是具体分析:


一、AI为自动化运维带来的核心价值

  1. 故障预测与自愈

  • 预测性分析

    基于历史日志、指标数据训练模型,提前识别硬件故障(如磁盘损坏)、网络拥堵、服务崩溃等风险。例如,通过LSTM模型分析服务器CPU使用率趋势,预测72小时内可能发生的性能瓶颈。
  • 自动化修复

    结合Ansible/SaltStack等工具,AI可自动执行修复脚本(如重启服务、扩容资源),减少人工干预。例如,当检测到数据库连接池耗尽时,AI触发自动重启数据库进程并调整连接池参数。
  • 智能告警与根因分析

    • 告警降噪

      通过NLP技术对告警信息进行语义分析,合并重复告警并标注优先级。例如,将“磁盘空间不足”的100条告警聚类为1条核心告警,并关联历史处理方案。
    • 根因定位

      利用图神经网络(GNN)构建服务依赖拓扑,快速定位故障根源。例如,当Web服务不可用时,AI通过拓扑分析发现是数据库连接超时导致,而非网络问题。
  • 资源优化与成本节约

    • 动态资源调度

      基于强化学习(RL)模型,根据业务负载自动调整资源分配。例如,在电商大促期间,AI预测流量峰值并提前扩容云服务器,活动结束后自动释放资源,降低30%以上成本。
    • 能耗优化

      通过AI算法分析数据中心PUE(电源使用效率),动态调整制冷系统参数,减少能源浪费。
  • 安全运维增强

    • 异常检测

      利用无监督学习(如Isolation Forest)识别异常登录行为、API调用模式,实时阻断DDoS攻击或数据泄露风险。
    • 漏洞预测

      基于代码静态分析(SAST)和动态分析(DAST)结果,AI预测潜在安全漏洞,并生成修复建议。

    二、AI功能开发的关键路径

    1. 技术选型与架构设计

    • 后端AI服务层

      • 使用Django + REST framework构建AI API,集成PyTorch/TensorFlow模型推理。
      • 部署Celery异步任务队列,处理高并发AI请求(如批量日志分析)。
      • 数据存储:MySQL存结构化数据(如告警历史),MongoDB存非结构化数据(如日志文本),Redis缓存模型推理结果。
    • 前端交互层

      • Vue 3 + Ant Design Vue

        实现可视化看板,展示AI分析结果(如故障预测趋势图)。
      • 集成Monaco Editor支持用户编写自定义AI规则(如正则表达式匹配异常日志)。

    2. 核心AI功能实现

    • 智能日志分析

      • 步骤1

        通过Fluentd采集日志,使用FastText模型进行文本分类(如“错误”“警告”“信息”)。
      • 步骤2

        基于BERT模型提取日志中的关键实体(如IP地址、错误代码)。
      • 步骤3

        结合时序数据库(如Prometheus)关联指标数据,生成故障报告。
    • 自动化测试用例生成

      • 使用GPT-4解析需求文档(如“用户登录功能”),自动生成Python测试代码:
    import pytest
    from selenium import webdriver
    
    deftest_login_success():
        driver = webdriver.Chrome()
        driver.get("https://example.com/login")
        driver.find_element_by_id("username").send_keys("admin")
        driver.find_element_by_id("password").send_keys("123456")
        driver.find_element_by_id("submit").click()
        assert "Dashboard" in driver.title
  • AI辅助代码审查

    • 集成SonarQubeDeepCode,通过静态分析检测代码缺陷(如SQL注入风险),并生成修复建议。

    3. 与现有DevOps流程集成

    • CI/CD管道增强

      • 在Jenkins流水线中插入AI质量门禁,只有通过代码审查和安全扫描的代码才能合并到主分支。
      • 示例配置(Jenkinsfile片段):
    pipeline {
        agent any
        stages {
            stage('AI Code Review') {
                steps {
                    sh 'python ai_review.py --repo $GIT_URL --branch $BRANCH_NAME'
                }
            }
            stage('Security Scan') {
                steps {
                    sh 'sonar-scanner -Dsonar.projectKey=my_project'
                }
            }
        }   
    }
  • 自动化运维任务编排

    • 使用Django + Ansible实现批量主机管理,AI根据主机标签(如“Web服务器”“数据库”)动态生成Playbook。

    三、实际案例与效果对比

    功能模块 传统方案 AI增强方案 效率提升
    故障定位
    人工排查日志和指标(2小时)
    AI根因分析(5分钟)
    96%
    测试用例编写
    手动编写100条用例(1天)
    AI生成80%用例(2小时)
    80%
    资源扩容
    手动调整云服务器配置(30分钟)
    AI自动扩容(1分钟)
    97%
    安全漏洞修复
    定期扫描+人工修复(1周)
    AI实时检测+自动修复(1小时)
    98%

    四、开发建议与工具推荐

    1.低代码AI开发

      • 使用Cursor AIGitHub Copilot辅助编写AI逻辑代码,减少重复劳动。
      • 示例提示词:
        "用Django REST framework写一个API,接收日志文本并返回分类结果(错误/警告/信息),使用FastText模型。"

      2.开源生态整合

        • 监控

          Prometheus + Grafana(可视化)
        • 日志

          ELK Stack(Elasticsearch + Logstash + Kibana)
        • CI/CD

          Jenkins + ArgoCD(GitOps)

        3.安全与合规

          • 对AI模型输入数据脱敏,避免泄露敏感信息(如密码、API密钥)。
          • 遵循等保2.0规范,记录所有AI操作日志以供审计。

          五、总结

          AI技术通过预测、自动化、优化、安全四大维度,显著提升了自动化运维的效率和可靠性。开发者可基于Django + Vue架构,结合PyTorch/TensorFlow、Ansible、Jenkins等工具,快速构建AI增强的DevOps平台。实际案例表明,AI可将故障定位时间缩短至5分钟以内,资源扩容效率提升97%,是未来运维领域的核心竞争力。


          节选自:https://mp.weixin.qq.com/s?__biz=Mzk0MjU3ODc5OQ==&mid=2247492682&idx=1&sn=0f4ceeb7eaa5f65cf8fba2e1a1fdbcc5

          天涯莲蓬鬼话小说精选

          2025-09-05 20:26:50

          天涯莲蓬鬼话小说精选,《鬼吹灯》《盗墓笔记》这些就不用说了,友情提醒:胆小者、唯物主义者慎看哦

          《我當道士那些年》

          作者:仐三

          1.jpg

          符籙、虎爪、靈玉、鎖魂結、引魂燈、聚陰地、修仙、崑崙……道家源流傳承千年,未必一切只是傳說!

          因為踩著正午十二點出生擁有天生的童子命,讓嬰兒時期的我被百鬼纏身,父母尋訪了村子裡的高人,我的師父── 一個高深莫測的真正道士,註定了我這輩子要做道士。跟著師傅修練闖蕩,遇見冤魂、厲鬼、蛇靈、餓鬼墓……此乃區區小事,苗疆蠱術、神秘的川地南部養屍地、人人聞之色變的滅村傳說……原來平常保衛國家的,除了軍人之外,還有道術的山、醫、命、卜這些派系傳人,玄學世界的神秘面紗即將被揭開……


          《我在泰国卖佛牌的那几年》

          作者:鬼店主

          2.jpg

          鬼这东西,很多人信,也有很多人不信,世界上有太多事情根本无法用科学方式来解释和回答。我本是个无神论者,可一次无意间到泰国的旅游经历,却完全改变了我的命运。我不但信了鬼,而且还在泰国开店卖鬼。你没看错,别人都是捉鬼,而我是卖鬼。


          《苗疆蛊事》

          作者:南无袈裟理科佛

          3.jpg

          巫蛊之祸,自西汉起延续几千年,屡禁不止,直至如今,在大中国,唯有乡野之民谈及。而巫蛊降头茅山之术,偏偏在东南亚各地盛行,连香港、台湾之地,也繁荣昌盛,流派纷起。诸位好友,真的认为华夏大地无奇人焉?否!否!否!我会告诉你我就是一个来自苗疆的养蛊人么?

          《苗疆蛊事Ⅱ》又名《苗疆蛊事之世界尽头》

          4.jpg

          苗疆青年陆言,回乡途中,误被人害,下了恐怖之蛊毒,在生死求存之中,却发现自家亲戚之中,居然有一位更加恐怖的苗疆养蛊人,而倒霉的是,求医问药的他陷入了一场关于某位大人失踪的悬疑奇案之中,挣脱不得……

          天山之后,并非末法,旧人落,新人出,黑恶势力卷土重来,曾经的朋友却化身做了敌人,危机重重,幕后黑手呼之欲出,又有域外势力逐鹿中原,上演八国联军之态势,华夏黯淡,谁能扛起新时代的旗帜,走出一条不属于别人的道路?化外之地,又有谁能与三十四层剑主一决雌雄?

          《苗疆道事》

          5.jpg

          百年前的今天大拿尽出,群星闪耀,一时间风起云涌; 百年后的当下天地大劫,众神陨落,叹天下几人能活? 一百年前是李道子、屈阳和洛十八的时代,一百年后,左道一出,天下谁能与之争锋?而在这百年之间,却是翻天覆地的年代,这里面有着什么人,在演绎着何等的慷慨悲歌呢? 我书写的不是陈二蛋的个人传记,而是一个时代,以及身处于这个大时代之中,那些一代宗师的故事。

          苗疆巫蛊、九尾白狐、走阴遁体、转世重修、转战万里、黄山龙蟒、百鬼夜行……黑手双城和他的七个小伙伴,将为你娓娓叙述,陈老魔到底是怎么炼成的!


          《末代捉鬼人》

          作者:途中的旅人

          1-230209105613931.jpg

          本书里的故事,是我家祖上和我的真实经历。我们家祖传驱邪捉鬼的手艺,不过要讲,得先从我高祖父那一代开始讲起。至于,为啥要取“末代捉鬼人”这个书名,我觉得吧,我可能是我们家最后一代了……

          《末代2道长往事》

          4782f6d0514b5f4ae1f0a18c2ea5833a.jpg

          我随陈道长流浪的那四年经历。

          《末代3太爷传奇》

          1756917244925353.jpg

          我太爷驱邪盗墓的传奇一生。事先声明一下,我太爷的经历残缺不全,本书的真实度,也只有百分之五十左右……

          末代2/3在线看:


          《六相全功》

          作者:御风楼主人

          6.jpg

          孕妇跳水自杀,上游却漂下一具男尸,诡异相合,更在清明之夜产下一个婴儿,婴儿生来邪性,被称作鬼婴,先有怨母鸟来抢,后有尸祖出棺来夺,又有红背蛛母暗中窥伺……玄门术界相术第一流派麻衣陈家传人陈弘道,机缘巧合,卷入其中,为追回鬼婴,前往太湖搜寻,却遇上凿船尸爷,更遭逢淫邪水獭蛊惑……陈弘道一路凶险,历经种种匪夷所思之事,凭借一身六相本领,他是否能化险为夷?

          《麻衣神相》又名《麻衣世家》

          7.jpg

          吉凶休咎,俗称相术,学究天人,招神鬼之忌。在众多的相术大师派系中,有一派特别神秘,也最为高明,他们号称麻衣道派。一千多年前,麻衣道派的始祖麻衣道者写下一本奇书《麻衣相法》,其弟子陈抟老祖受此书而扬名天下,陈抟老祖的弟子陈义山则在集天下所有术数、堪舆、医卜、奇门、星象门派之大成后,写成了一部奇书《义山公录》,但是这本书却遗失了半部,只留下另外半部。而传说,只有通读全本的人才能成为麻衣派的领袖,即麻衣神相。一千年后,《义山公录》重现天日,又一代麻衣神相即将重出江湖,各路凶灵、九幽冥鬼、茅山道士、终南真人齐齐出动,一时间,风云突变!麻衣道派后人陈元方陷入其中,经历了种种奇闻怪事……

          《麻衣相士》

          8.jpg

          我叫吴用,因为好奇去死人沟看死人,结果被烧死鬼给缠上,为保命而去世上最神秘的相术家族麻衣陈家求助,相士说我五行之气匮乏,是万中无一的五行全缺之相,平生最遭五行鬼众之忌,不但会有烧死鬼缠身,以后还有水鬼、木鬼、金鬼、土鬼相缠,是天下独一无二的衰人!若需改命换运,则需……

          举世无双的相术世界,一眼辨吉凶,片言断福祸!生死符、铁口令、彻地功、金牙线、五雷法、水幕大阵、萨满术、茅山符箓、全真山术、移魂炼魄尽现江湖!黑冰、冥焰、土灵傀、百年女鬼齐齐出动.....

          《麻衣道祖》

          9.jpg

          妖气入体,陈义山命在旦夕,祖宗显灵,求来一个高冷仙女出手相救,没成想,仙女束手无策脾气还大,掳走陈义山暴打一顿,扔进山洞里让他面壁自悟。自悟那是不可能的,陈义山恼怒之下一拳打碎圣地的老祖像,结果,悟了……从此,麻衣胜雪,乌钵如月,陈义山为救人救己而游历世间,妖冶的蛇女,狡诈的兔精,倨傲的仙人,弱小的神祇……修为不够,嘴遁来凑,衣结百衲,道祖竟成!

          《麻衣神探》

          1746973658270035.jpg

          我叫曌远,我师傅学了相术能看穿人心,被七里八乡村民称颂为天师,然而在我十五岁那年,他被人挖坟掘墓,整个人皮被剥吊挂在树上。村里人都说师傅是因为泄漏天机太多,遭了老天爷的报应。而学了相术的我知道言多必失,早有这么一天,我也会步入师傅后尘,却没想到报应来的如此之快。那一天,同样的地方,在同一棵树上……


          《宜昌鬼事(1、2)》又名《异事录》

          作者:蛇从革

          11.jpg

          无所事事的保安的发现、神农架深处的神秘机构、地下溶洞的奇特生物、遍地娃娃鱼的大鲵村,殡仪馆的离奇遭遇……三峡地区曾经发生无数奇闻异事……

          《宜昌鬼事3大宗师》

          1746973793690338.jpg

          梵天——世上最强的术士,拥有守护和改变世界规则的权利。张元天一直觊觎梵天之位,妄图只手遮天,改变世界规则。为阻止张元天阴谋得逞,长久淹没于历史迷雾中的诡道传人,开启了七星大阵,使崂山派、全真派、正一派、青城派、赶尸魏家、放蛊苗家、犁头巫家、秀山黄家……悉数卷入其中,一千多年的术士恩怨,终于迎来最后的厮杀……


          书籍作品内容版权归原作者、出版社所有。如原作者、出版社认为本站行为侵权,请联系本站,本站会立即删除您认为侵权的作品。


          参考:修仙志怪小说推荐

          Win10卸载McAfee Agent托管模式本地卸载被阻止问题

          2025-08-25 20:48:36

          问题

          无法从以下任一项中本地卸载 MA:

          • Windows 程序和功能控制面板

          • 命令提示符

          当您尝试卸载 MA 时,会显示以下错误:

          McAfee Agent cannot be removed because other products are still using it

          注意: 如果客户端计算机上未安装其他 McAfee 企业版产品,则可能会发生此问题。

          原因

          当 MA 处于 托管模式时,会发生此错误。
          这种行为是设计使然,以防止用户删除代理。
          MA 以两种模式运行:

          • 托管模式 - MA 与 ePolicy Orchestrator (ePO)进行连接并与之通信,以管理 McAfee Enterprise 产品更新。

          • 非托管模式 - MA 不会与 ePO 连接或通信,而是从 McAfee Enterprise HTTP 服务器提取更新。

          解决

          1、停止McAfee服务:

          按 Windows 键 + R,键入 services.msc ,然后停止 MA 相关服务。

          1756125894764500.png

          2、卸载McAfee服务:

          将计算机退出托管模式,删除任何依存该代理的托管产品,然后再尝试卸载该代理:

          1. 以管理员身份打开命令提示符:

            1. 按 Windows 键 + R,键入 cmd ,然后按 Enter 键。

            2. 如果出现用户帐户控制对话框,请确认其显示的操作是您想要的,然后单击继续。

          2. 在客户端计算机上,访问该 frminst 文件。在命令窗口中,键入以下内容:
            64位操作系统:CD C:\Program Files\Mcafee\Agent\x86\,32位操作系统:CD C:\Program Files\Mcafee\Agent\

          3. 键入以下命令。,然后按 Enter 键:frminst.exe /remove=agent1756125959360433.png

          4. Close the command prompt.

          5. 从客户端计算机中删除所有 McAfee Enterprise 托管产品。 示例:

          • Endpoint Security

          • VirusScan Enterprise

          • Endpoint Encryption

        1. 可选:从客户端计算机中删除 McAfee Framework Service 通过 程序和功能。


        2. 参考:

          MacOS格式化 U 盘

          2025-08-21 22:51:55

          最近工作需要买了个64G的U盘,在Windows系统下使用格式化了 NTFS 格式,但是在Mac上无法写入,macOS默认仅支持读取NTFS,还得再格一次,真是格老子的了。

          Mac 上“磁盘工具”中可用的文件系统格式

          Mac 上的“磁盘工具”支持多种文件系统格式:

          • Apple 文件系统 (APFS):macOS 10.13 或后续版本使用的文件系统。

          • Mac OS 扩展:macOS 10.12 或之前版本使用的文件系统。

          • MS-DOS (FAT) 和 ExFAT:与 Windows 兼容的文件系统。

          Windows 兼容格式

          如果格式化磁盘以配合 Windows 使用,请选取以下其中一种兼容 Windows 的文件系统格式。

          • MS-DOS (FAT):用于 Windows 宗卷且大小为 32 GB 或不足 32 GB。

          • ExFAT:用于 Windows 宗卷且大小超过 32 GB。

          文件系统选择

          1755783615947231.png


          MacOS 使用终端格式化 U 盘

          在面对无法清除U盘分区,无法写入,无法抹掉情况时,在 Mac 上可以使用终端彻底格式化 U 盘,可以使用 diskutil 命令。以下是详细步骤:

          ⚠️ 注意事项

          • 格式化会清空 U 盘上的所有数据,请先备份重要文件。

          • 确保选择了正确的 U 盘,否则可能误删其他数据。

          1、打开终端查看 U 盘信息

          输入以下命令查看所有磁盘设备:

          diskutil list

          2、卸载 U 盘

          格式化前,先卸载 U 盘:

          diskutil umountDisk /dev/disk4

          3、覆盖 U 盘(可选)

          diskutil zeroDisk /dev/disk4

          4、彻底格式化 U 盘

          格式化并抹除 U 盘,使用以下命令:

          diskutil eraseDisk FAT32 USB_NAME MBRFormat /dev/disk4
          • FAT32 —— 兼容 Windows 和 macOS(可改为 ExFATAPFS)。

          • USB_NAME —— 你想给 U 盘起的名字(可替换为你喜欢的)。

          • MBRFormat —— 使用主引导记录 (MBR),适用于 U 盘。

          • /dev/disk4 —— 确保这里是你的 U 盘编号!

          完整操作示例:

          > diskutil list
          /dev/disk0 (internal, physical):
             #:                       TYPE NAME                    SIZE       IDENTIFIER
             0:      GUID_partition_scheme                        *500.3 GB   disk0
             1:             Apple_APFS_ISC Container disk1         524.3 MB   disk0s1
             2:                 Apple_APFS Container disk3         494.4 GB   disk0s2
             3:        Apple_APFS_Recovery Container disk2         5.4 GB     disk0s3
          
          /dev/disk3 (synthesized):
             #:                       TYPE NAME                    SIZE       IDENTIFIER
             0:      APFS Container Scheme -                      +494.4 GB   disk3
                                           Physical Store disk0s2
             1:                APFS Volume MacintoshHD - Data      365.9 GB   disk3s1
             2:                APFS Volume MacintoshHD             10.2 GB    disk3s3
             3:              APFS Snapshot com.apple.os.update-... 10.2 GB    disk3s3s1
             4:                APFS Volume Preboot                 6.1 GB     disk3s4
             5:                APFS Volume Recovery                933.9 MB   disk3s5
             6:                APFS Volume VM                      20.5 KB    disk3s6
          
          /dev/disk4 (external, physical):
             #:                       TYPE NAME                    SIZE       IDENTIFIER
             0:     FDisk_partition_scheme                        *62.9 GB    disk4
             1:               Windows_NTFS                         62.9 GB    disk4s1
          
          > diskutil unmountDisk /dev/disk4
          Unmount of all volumes on disk4 was successful
          
          > diskutil eraseDisk FAT32 USB_NAME MBRFormat /dev/disk4
          Started erase on disk4
          Unmounting disk
          Creating the partition map
          Waiting for partitions to activate
          Formatting disk4s1 as MS-DOS (FAT32) with name USB_NAME
          512 bytes per physical sector
          /dev/rdisk4s1: 122847872 sectors in 1919498 FAT32 clusters (32768 bytes/cluster)
          bps=512 spc=64 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=2048 drv=0x80 bsec=122877952 bspf=14997 rdcl=2 infs=1 bkbs=6
          Mounting disk
          Finished erase on disk4

          示例中U 盘的 IDENTIFIER 是 disk4(你的可能不同)。

          如果要使用 ExFAT 格式(支持大文件,兼容性好):

          diskutil eraseDisk ExFAT USB_NAME MBRFormat /dev/disk4

          如果要格式化为 macOS 专用格式 (APFS)

          diskutil eraseDisk APFS USB_NAME GPT /dev/disk4

          5、安全擦除(可选)

          如果要彻底清除数据,使其难以恢复,可以用 secureErase

          diskutil secureErase 2 /dev/disk4

          参数解释:

          • 0 – 快速擦除(不安全)。

          • 1 – 单次写入 0。

          • 2 – (推荐) 7 次写入随机数据。

          • 3 – 35 次写入随机数据(极端安全)。

          6、弹出 U 盘

          格式化完成后,可以安全弹出:

          diskutil eject /dev/disk4

          然后拔掉 U 盘即可。

          格式化 U 盘命令操作顺序

          1. diskutil list → 找到 U 盘的编号。

          2. diskutil unmountDisk /dev/diskX → 卸载 U 盘。

          3. diskutil zeroDisk /dev/diskX → 覆盖 U 盘。(可选)

          4. diskutil eraseDisk FORMAT USB_NAME MBRFormat /dev/diskX → 彻底格式化。

          5. diskutil secureErase ARGS /dev/diskX → 安全擦除数据。(可选)

          6. diskutil eject /dev/diskX → 安全弹出 U 盘。


          MacOS 使用“磁盘工具”格式化 U 盘

          在“磁盘工具”中,可以格式化可用在基于 Microsoft Windows 的电脑以及 Mac 的外置磁盘。

          【警告】格式化磁盘或宗卷会抹掉其中的所有文件。格式化之前,请将需要的任何文件存储到另一个宗卷。

          1. 在 Mac 上的“磁盘工具” App  中,选取“显示”>“显示所有设备”。

            如果“磁盘工具”未打开,请点按程序坞中的“启动台”图标 ,在搜索栏中键入“磁盘工具”,然后点按“磁盘工具”图标 

          2. 在边栏中,选择要格式化以用于 Windows 电脑的磁盘。disk1.png

          3. 点按工具栏中的“抹掉”按钮 

          4. 在“抹掉”对话框中,点按“方案”弹出式菜单,然后选取一种分区方案disk2.png

          5. 点按“格式”弹出式菜单,然后选取以下一项:

          • MS-DOS (FAT):如果磁盘大小不超过 32 GB,请选取此格式。

          • ExFAT:如果磁盘大小超过 32 GB,请选取此格式。

        3. 输入宗卷的名称。

          宗卷名称的最大长度为 11 个字符。

        4. 点按“抹掉”,然后点按“完成”。disk3.pngdisk4.png


        5. 参考:

          如何做好时间管理

          2025-08-18 17:12:18

          我一直说,时间是人生中最宝贵的财富,今天我就来跟你聊聊时间管理方面的话题。

          关于时间管理,以前在外企工作时,受过一个专门的培训,我在工作中也总结过自己的方式。时间管理是非常重要的,因为时间过得实在是太快了,快得让你有点受不了,而看似忙碌的我们似乎在这一年中也没有做太多事,尤其是让自己能成长的事情。

          有那么一句话是这么说,老天很公平,给了所有人同样多的时间,而有的人能够把时间用好,有的人则没有把时间用好。日积月累,人和人的差距就越来越大了。

          之前的文章和你讲过,我在工作强度很大的情况下依然可以找到时间来学习和提升自己,主要是对学习的渴望程度很大。今天想和你谈一下,除了自己对某件事情的热情外,我们该怎么管理好自己的时间。

          不过,说实话,在安排时间方面,我成长于一个相对于今天算是比较好的环境,举几个例子。

          • 那个年代,没有智能手机,工作中也不用实时聊天工具。而现在,很多公司都会有若干个聊天群,所有人都可以把信息发给所有的人,而不管这个事是否与你相关。但这些信息无法像邮件那样根据邮件标题聚合,或是通过设置规则自动分类……于是你工作在了一个信息杂乱无章的环境里,而且还在不断地被人打扰,不断地被打断。

          • 那个年代,别人要来找我开会,需要先给我发会议邀请,而且发会议邀请的时候,会找我日历上空闲的时间段来订会议。所以,我可以把很多工作安排在我的日历上,通过邮箱(Outlook 或是 Gmail 都有这样的功能)共享出去。这样,别人都会自觉地不在我有安排的时间段来找我。

          而今天,我看到很多公司直接在微信上联系。你要是回复慢了,电话直接打过来,直接叫你去开会。不像我那个年代,老板临时给员工开会也要问一下员工有没有时间,但现在的工作环境连问都不问,直接一句,你来一下。

          • 那个年代,工作被非常有计划地安排。还记得在路透工作的时候,管理者们都说,你工作时如果有 70% 的时间能花在项目开发上,算是很高效了,一般来说,正常值也就是 50% 左右。在亚马逊的时候,每次开会都会把会议要讨论的事打印出来,前 10 分钟大家都在读文档,然后直接讨论,基本上会议都保持在半小时左右。

          这可能是外企的好处吧,从上到下都知道时间管理是很重要的事,所以,从管理层到执行层都会想方设法帮助程序员专注地做好开发工作。包括尽可能的不开会,不开长会,需求和设计都是要论证很久才会决定做不做,项目管理会帮你把你处理额外工作的时间也算进去,还会把你在学习上花的时间也计算进去。所以,时间在整个组织上能够被有效地管理和安排着。完全不像今天国内的互联网公司。

          所以,我以前管理自己的时间还是比较容易的,然而,现在人的工作环境的确是非常不利于管理。不过,我还是想在这里谈一下如何管理自己的时间,希望对你有帮助。

          主动管理

          无论什么事情,如果你发现你持续处于被动的状态下,那么你一定要停下来想一想如何把被动变为主动。因为在被动的方式下工作,你是不可能做好工作的,无论什么事。我是一个非常不喜欢被动的人,所以,对于任何被动状态,我都要“反转控制”,想尽一切方式变成主动。

          如果你发现你的时间老是被别人打断,那么你就要告诉大家,我什么时间段在做什么事,请大家不要打扰我。我以前在国外看到有个老外就在自己的工位上挂了一个条幅,上面写着“正在努力写代码中,请勿打断……”而我在亚马逊工作时,亚马逊也允许员工想沉浸于工作时不用来公司而是可以在家办公(work from home)。我在阿里的时候有时候也怕被人打断,所以,我会跑到别的楼里找个空的工位工作。

          在今天,我觉得你也可以这么干,你可以在群里事先告诉大家,我在几点到几点要无间断地做某个事,这个期间不会看任何微信或是钉钉的群聊,也不会接任何的电话,请大家不要来打扰我。而且还可以学习一下那个我见过的老外,在自己的工位上挂一个不要打扰我的条幅。人肉 Mute 掉所有的打扰。

          另外,可以仿照一下以前在 Outlook 里设置工作日程的方式,把你的工作安排预先设置到一个可以共享的日历上,然后分享给大家,让大家了解你的日程。这样,可以让你的同事和老板能事先有个谱儿,而不至于想打断你就打断你。

          你甚至可以要求你的同事,重要的事,不要发微信,而是要发邮件,因为微信会有很大概率看不到。这样一来,你就再也不用在一大堆聊天信息中做人肉的大数据挖掘,来找到和你有关的信息。

          信息管理真的非常重要,因为将信息做好分类,才方便检索,方便你通过自己的优先级来处理信息。而目前看来,这些只有邮件才能够更好地完成(邮件可以帮你通过邮件标题聚合,你可以设置很多规则来自动化分类邮件,还可以帮你设置自动化回复)。

          换句话说,你要主动管理的不是你的时间,而是管理你的同事,管理你的信息

          学会说“不”

          上面说了如何主动地管理你的时间。但是,那只是能让你有大块可以专注于工作的时间。然而,这并不能帮助你解决时间不够的问题。比如,现在的很多公司总是把工作安排得非常紧,今天提的需求,恨不得明天就上线,这也就是为什么今天加班的严重程度比我那个时候还更为严重。我认为,现在的很多公司已经不尊重科学和客观规律了,如果让他来管理孕妇,我觉得他们恨不得要把 10 个月的产期缩短成 2 个月。

          所以,在这种情况下,你要学会对某些事说“不”,甚至是要学习对老板说不。这其实是一种“向上管理”的能力。

          以前在外企接受到的管理方面的培训,有这么一条“Never Say No”——永不说不。的确是这样,说“不”会让人产生距离和不信任。所以,真是这样的,永远不要说不。但是,你明明做不到,还不能说不,这应该怎么办呢?这里面的诀窍如下。

          1. 当你面对做不到的需求时,你不要说这个需求做不到。尤其是,你不要马上说做不到,你要先想一下,这样让别人觉得你是想做的,但是,在认真思考过后,你觉得做不到,并且给出一个你觉得做得到的方案。这里的诀窍是——给出另一个你可以做到的方案,而不是把对方的方案直接回绝掉

          2. 当你面对过于复杂的需求时,你不要说不。你要反问一下,为什么要这样做?这样做的目的是什么?当了解完目的以后,你可以给出一个自己的方案,或是和对方讨论一个性价比更好的方案。你可以回复说,这个需求好复杂,我们能不能先干这个,再做那个,这样会更经济一些。这里的诀窍是——我不说我不能完全满足你,但我说我可以部分满足你

          3. 当你面对时间完全不够的需求时,你也不要说不。既然对方把压力给你,你要想办法把这个压力还回去,或是让对方来和你一同分担这个压力。

          这个时候,我惯用的方式是给回三个选择:a. 我可以加班加点完成,但是我不保证好的质量,有 bug 你得认,而且事后你要给我 1 个月的时间还债。b. 我可以加班加点,还能保证质量,但我没办法完成这么多需求,能不能减少一些?c. 我可以保质保量地完成所有的需求,但是,能不能多给我 2 周时间?

          这里的诀窍是——我不能说不,但是我要有条件地说是。而且,我要把你给我的压力再反过来还给你,看似我给了需求方选择,实际上,我掌握了主动

          这就是学会说“不”的方法。说白了,你要学会在“积极主动的态度下对于不合理的事讨价还价”。只有学会了说“不”,你才能够控制好你的时间

          加班和开会

          国内的公司和国外公司还有一个很不同的事情,就是大量的加班和大量冗长的会议。我见过很多国内的公司,无论大公司还是小的创业公司,都是这个样子的。老实说,我对这个事情也能理解也不能理解。一方面,我能理解为什么会有这么多的加班和会议,主要原因还是管理者在管理上只会使用低级的通过劳动密集型的方式来做事。

          另一方面,我不能理解的是,国外公司的加班和会议长度根本不像国内的公司,人家做的也比中国的公司好得多。在国内的公司,老板们看到团队在拼命加班,会很高兴,而在国外的公司,老板看到团队在拼命加班,会觉得这个团队一定是哪里出了问题,老板会比较焦虑。

          那么,对于身处于这样环境中的我们,应该怎样管理好自己的时间,或是为自己争取时间呢?老实说,在恶劣的环境中优雅的行动,基本上是一件不可能的事情。我也经历过这样的事,我也没有太好的办法。不过,我还是可以跟你分享几个我的实践方式。

          对于加班的事,除了像上面说的那样,学会如何说“不”外,我发现很多时候造成加班的原因是一个恶性循环。也就是说,因为加班干出来了质量不好的软件,于是线上故障很多,要花时间处理,而后面的需求也过来了,发现复杂代码的扩展性很差,越干越慢,越干越烂,越干故障越多。于是,你会被抱怨得越来越多。

          这里,我觉得,如果怎么做都要受伤害,那么两害相权取其轻。你要学会比较是项目延期的伤害大,还是线上故障的伤害大,是先苦后甜好,还是积压问题好,聪明的你应该能做出正确的判断。

          对于开会,我觉得今天大多数的会都开错了。在会上抛出问题,还是开放性的问题,然后公说公有理,婆说婆有理,任大家自由发挥,各种跑题跑偏,最后还没有任何的答案。开会,不是讨论问题,而是讨论方案,开会不是要有议题,而是要有议案

          所以,作为与会者,如果你发现没有议案,大家海了去说,那么你有两种选择,跳出来帮大家理一理,或者也可以说一下,如果会上讨论不清,要不先线下讨论,有了方案再来评审。也许在一些会上你不敢这么干,但是有些会你是可以这么干的。能影响的这些都能为你争取到很多时间。

          好了,总结一下。今天我主要跟你分享了几个能为自己争取更多时间的方法,比如主动管理时间、学会说“不”,以及面对高强度的加班和冗长的会议时,该如何应对和解决等。因为我认为,只有将使用时间的主动权掌握在自己手上,才能更好地利用时间,才能更为高效率的工作。所以,这是时间管理中非常关键的事!


          前面我们讨论了如何争取到自己可以控制的时间。当我们争取到这些可以自己控制的时间后,我们就进入到了另外一个话题——如何利用好自己的时间。对此,我有下面的这些心得和方法,如果你有更好的方法,也欢迎告诉我。

          投资自己的时间

          其实,时间就像金钱一样,你得学会投资时间。把时间投资在有价值有意义的地方,你就会有更多的时间。

          • 花时间学习基础知识,花时间读文档。在参加工作的这近 20 年来,我发现,很多程序员把时间都浪费在了查错上。究其根本原因就是基础知识不完整,没有好好地把技术相关的用户文档读完整就仓促上手做事。其实只要把基础打扎实,认真读一下文档,你会省出很多很多的时间。系统地学习一门技术是非常关键的,所以这个时间是值得投资的

          • 花时间在解放自己生产力的事上。在自动化、可配置、可重用、可扩展上要多花时间。对于软件开发来说,能自动化的事,就算多花点时间也要自动化,因为下次就不用花时间了。让自己的软件模块可以更灵活地配置和扩展,这样如果有需求变更或是有新需求的时候,可以不用改代码,就算要改代码也很容易。

          这里,可能很多人会说不要过度设计,我对这个观点既同意,也反对。的确,过度设计不好,但是只要是能在未来能节省时间的,宁可这个项目延期,我也会做的。花时间在解放自己的事上是最有意义的了

          • 花时间在让自己成长的事上。注意,晋升并不代表成长,成长不应该只看在一个公司内,而是要看在行业内,在行业内的成长才是真正的成长。所以,把时间花在能让自己成长,能让自己有更强的竞争力,能让自己有更大的视野,能让自己有更多可能性的事情上。这样的时间投资才是有价值的。

          • 花时间在建立高效的环境上。我相信你和我会有一样的一个习惯,那就“工欲善其事,必先利其器”。我们程序员在做事之前都喜欢把自己的工作环境整理到自己喜欢的状态下。比如使用趁手的开发工具,使用趁手的设备。

          这里,我想把这个事扩大一下,花些时间在影响你身边的人上,比如你的同事,你的产品经理,你的老板,去影响他们,让他们理解你,让他们配合你来建立更好的流程和管理方法。在这个方向上花时间也是很值得的。

          规划自己的时间

          定义好优先级。无论你写不写出来,你一定都会有一个自己的 to-do list。有 to-do list 并不是什么高深的事。更重要的是,你要知道什么事是重要的,什么事是紧急的,什么事重要但不紧急,什么事又重要又紧急。这有利于你划分优先级。

          最短作业优先。对于相同优先级的事,我个人喜欢的是“最短作业优先”的调度算法。理由是,先把可以快速做完的事做完,看到 to-do list 上划掉一个任务,看到任何的数据在减少,对于自己也好,对于老板也好。老板可以看到你的工作进度飞快,一方面有利于为后面复杂的工作争取更多的时间(老板只有在你有 Deliver 的时候才愿意给你更多的时间),另一方面,看到任务列表的减少会让你的心态更为积极。

          而反过来,你花太多的时间在长作业上,长作业通常很容易出现“意外情况”让你花更多的时间,但此时你发现还有很多别的事没有做,这会让你产生焦虑感,产生更多的压力,进而导致更慢的生产效率。

          想清楚再做。我发现很多时候,我们没有想清楚就开干了,边干边想,这样的工作方式其实很糟糕。你会发现,如果你没有想清楚,你总是要对已完成的工作进行返工,返工好几次,其实是非常浪费时间的。所以,对于一些没想清楚的事,或是自己不太有信心的事,还是先看看有没有已有的成熟解决方案,或是找更牛的人来给你把把关,帮你出出主意,看看有没有更好、更简单的方式。

          关注长期利益规划。要多关注长远可以节省多少时间,而不是当前会花费多少时间。长期成本会比短期成本大得多。所以,宁可在短期延期,也不要透支未来。这里的逻辑是,工作上的事你永远也做不完的,长痛不如短痛。

          我一年要做 10 个项目,我宁可第 1 或第 2 个项目被老板骂,但是我可以赢得后面 8 个项目,从后面 8 个项目上把之前失去的找回来。而如果反过来的话,我虽然一开始得到了老板的信任,但是后面越来越玩不动,最终搬起一块大石头砸了自己的脚。而且,不关注长远利益的人,基本上来说也是很难有成长的。

          也就是说,你要学会规划自己的行动计划,不是短期的,而是一个中长期的。我个人建议是按季度来规划,这个季度做什么,达到什么目标,一年往前走四步,而不是只考虑眼下

          用好自己的时间

          将军赶路不追小兔。这个世界有太多的东西会让我们分心和跑偏。能专注地把时间投入到一个有价值的事上是非常重要的。确定自己的目标,专注达到这个目标,而不是分心。将军的目标是要攻城,而不是追兔子。所以,你要学会过滤掉与自己目标无关的事,不要让那些无关的事控制自己。

          比如,不要让别人来影响自己的心情,心情被影响了,你一下就会什么都不想干了。做自己心情的主人,不要让别人 hack 了你的心情。再比如,知道哪些是自己可以控制的事,哪些是自己控制不了的事,在自己能控制的地方花时间。

          再比如,知道哪些是更有效的路径,是花时间改变别人,还是花时间去寻找志同道合的人。不与不如自己的人争论,也不要尝试花时间去叫醒那些装睡的人,这些都是非常浪费时间的事。多花时间在有产出的事上,少花时间在说服别人的事上。

          形成习惯。再好的方法,如果没有形成习惯,不能在实际的工作和生活中解决实际问题,都将成为空谈。如果你是个追求上进的人,我相信一定看过很多时间管理方法的文章和书籍,并且看的时候还会有些振奋,内心有时还会不自觉地想,“嗯,嗯!这个方法不错,正是我需要的,可以解决我的问题……”但很多时候都坚持不了几天就抛之脑后了。

          所以,在讲述完如何争取时间,及如何使用时间之后,我想分享一下如何将这些时间管理方法形成习惯,因为我坚信:“做”比“做好”更重要。养成一个好习惯通常需要 30 天左右的时间,尤其在最初的几天就更为重要了。这时,不妨将文章中提到的方法和几个要点,写在某本书或者笔记本的扉页上,方便查看,时刻提醒自己。

          而且,你可以结合自己的实践情况,适当做出调整。我的方法是我根据自己的情况总结的,不一定完全适合你,你完全可以基于我说的几个原则,发掘其他更适合自己的方法,这样才能更有利于形成习惯,对你更有帮助。

          形成正反馈。在前面的文章中,我提到过,要有正反馈,也就是成就感,有助于完成一些看似难以完成的事儿。比如,我们说过,学习是逆人性的事儿,但如果在学习过程中不断地有正反馈,就更利于我们坚持下去。要让自己有正反馈,那就需要把时间花在有价值的地方,比如,解决自己和他人的痛点,这样你会收获别人的赞扬和鼓励。

          反思和举一反三。可以尝试每周末花上点时间思考一下,本周做了哪些事儿?时间安排是否合理?还有哪些可以优化提高的地方?有点儿类似于我们常说的“复盘”。然后思考一下,下周的主要任务是什么?并根据优先级规划一下完成这些任务的顺序,也就是做一些下周的工作规划。

          这样每周都能及时得到自己做时间管理之后的反馈,并有助于持续优化。通常坚持做时间管理一段时间以后,你都能在每次复盘时得到正反馈,这是有利于我们形成时间管理的习惯的。但我这里也想强调一点,我们也要允许偶尔的“负反馈”,因为人的状态总是会有高潮和低谷的,控制好一个合理的度就可以了。

          人最宝贵的财富就是时间,把时间用在刀刃上,必将让你的人生有更多收获。

          其他

          写了这么多,还是让你来开心一下吧。下面这个图是我在某国内互联网公司工作的时候和我老板的聊天记录。是的,就只有这些信息,每次看到这个聊天记录时,我都会有一种莫明的喜感。结合这篇文章的主题,也给你开心开心。

          img

          来源:《左耳听风专栏:时间管理》