基礎:ESXi安裝、配置、單主機管理;各種概念,如VM/datastore/vSwitch等;vCenter的基本管理,如模板、網路配置、克隆、遷移等進階:vCenter高可用性、vSphere HA高可用性、vSphere Fault Tolerant、VMotion;如使用共享儲存還需要了解FC SAN/iSCSI儲存網路知識高階:vSphere Site Recovery/vSphere Data Protection/vSAN管理等額外,如果使用VMware的其他產品,如NSX/vRealize等,則要學的東西更多。
運維工程師現在也越來越多元化,並不是每一個階段掌握的技能都是一樣的,發展方向不一樣則掌握的技能也會不一樣。以下排除掉網路運維、IT運維、儲存網路/安全等特種裝置運維的方向,列舉了幾個運維比較常見的發展方向,從基礎、進階到高階三個級別來說明大體需要掌握的技能,有可能不全面。
應用運維方面:
基礎:Linux基礎/對應的語言環境,如tomcat/LAMP/LNMP這些要能掌握安裝、配置、日常維護操作進階:Linux儲存管理/安全加固/程序資源管理/網路管理,其他應用中介軟體如快取(redis/memcached)、MQ(ActiveMQ/RabbitMQ等)、服務發現和治理中介軟體(如zookeeper)、配置管理工具(如Puppet/Saltstack/CFengine等)高階:Shell指令碼可以信手拈來,Linux核心/網路等常用引數的配置原理和最佳化場景,資源消耗的排查和最佳化,熟練掌握iptables,pam,selinux等安全機制。JAVA執行環境還需熟悉JVM最佳化、GC日誌分析、Java執行緒堆疊分析等。額外,需要了解一些:虛擬化技術,如VMware/VirtualBox/KVM虛擬化管理技術,如vSphere/convirt/oVirt/OpenNebula等Docker基本使用和管理私有云平臺,如Openstack/CloudStack等公有云平臺,如阿里雲/AWS基礎網路技術,如IP網路基礎、OSI七層、HTTP/HTTPS/RPC協議、VLAN、路由、NAT、ACL等概念及相關配置技術虛擬化和雲運維方向,如以商業化的VMware為例:
基礎:ESXi安裝、配置、單主機管理;各種概念,如VM/datastore/vSwitch等;vCenter的基本管理,如模板、網路配置、克隆、遷移等進階:vCenter高可用性、vSphere HA高可用性、vSphere Fault Tolerant、VMotion;如使用共享儲存還需要了解FC SAN/iSCSI儲存網路知識高階:vSphere Site Recovery/vSphere Data Protection/vSAN管理等額外,如果使用VMware的其他產品,如NSX/vRealize等,則要學的東西更多。綜合發展,則還有如下一些需要掌握:
基礎:監控,如Nagios/Zabbix等基礎配置;DNS/NFS/FTP等服務配置;Docker基本使用和管理進階:網路分析,如抓包tcpdump/wireshark;效能分析工具,如nmon/iftop/iotop;負載均衡,如nginx/LVS/haproxy。學習一門指令碼語言,如python/perl/go等。高階:程序跟蹤和故障分析,如strace/kdump/gdb。Docker編排體系,如kubernetes/swarm等。還有日誌分析ELK;指標資料庫influxdb/promethus等上面看起來眼花繚亂,其實並不是每項都需要掌握。以下幾個方面都可以成一個單獨的發展方向,如果能獨立搞定一個方向,就已經邁入運維架構師的層面了。
虛擬化及私有云管理方向,如獨立搞定OpenStack上生產,隨便搭個測試環境玩玩不算。Docker和編排體系方向,如獨立搞定Kubernetes上生產。精細化的監控告警設計和實施,不僅僅是單一的搭建zabbix這類監控工具針對簡單的資源、網路、應用可用性監控等。還應包括日誌分析、精細指標監控等。如主導研發規範日誌,使用ELK進行日誌分析並針對詳細業務場景出具精準監控和業務資料視覺化報表。再如使用influxdb/grafana或promethus等系統,收集硬體感測器/cpu/mem/io/eth/vm/docker等資訊,然後構建精細化的資源使用報表等。然後再整合日誌分析/精細化資源監控打通從業務->應用->資源->硬體的一體化監控聯動自動配置管理方向,簡單點的使用puppet/saltstack等平臺加一些定製指令碼來管理,高階點的開發一個管理平臺,並UI化。需要看實際工作中的應用場景、管理規模、自動程度、監控需求等來配合使用。每個人的精力是有限的,一個優秀的運維最需要的是一顆時刻保持學習的心和強大的自學能力。