1.1 inux運維的主要工作內(nèi)容
延長ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
1、什么是linux運維
運維是指大型組織已經(jīng)建立好的網(wǎng)絡軟硬件的維護,就是要保證業(yè)務的上線與運作的正常。
在他運轉(zhuǎn)的過程中,對他進行維護,他集合了網(wǎng)絡、系統(tǒng)、數(shù)據(jù)庫、開發(fā)、安全、監(jiān)控于一身的技術。
運維又包括很多種,有DBA運維、網(wǎng)站運維、虛擬化運維、監(jiān)控運維、游戲運維等等。
運維分類:
1)開發(fā)運維:是給應用運維開發(fā)運維工具和運維平臺的
2)應用運維:是給業(yè)務上線、維護和做故障排除的,用開發(fā)運維開發(fā)出來的工具給業(yè)務上線、維護、做故障排查
3)系統(tǒng)運維:是給應用運維提供業(yè)務上的基礎設施,比如:系統(tǒng)、網(wǎng)絡、監(jiān)控、硬件等等
2、基礎運維常見工作內(nèi)容
服務監(jiān)控技術:包括監(jiān)控平臺的研發(fā)、應用,服務監(jiān)控準確性、實時性、全面性的保障
服務故障管理:包括服務的故障預案設計,預案的自動化執(zhí)行,故障的總結并反饋到產(chǎn)品/系統(tǒng)的設計層面進行優(yōu)化以提高產(chǎn)品的穩(wěn)定性
服務容量管理:測量服務的容量,規(guī)劃服務的機房建設,擴容、遷移等工作
服務性能優(yōu)化:從各個方向,包括網(wǎng)絡優(yōu)化、操作系統(tǒng)優(yōu)化、應用優(yōu)化、客戶端優(yōu)化等,提高服務的性能和響應速度,改善用戶體驗
服務全局流量調(diào)度:接入服務的流量,根據(jù)容量和服務狀態(tài)在各個機房間分配流量
服務安全保障:包括服務的訪問安全、防攻擊、權限控制等
服務自動發(fā)布部署:部署平臺/工具的研發(fā),及平臺/工具的使用,做到安全、高效的發(fā)布服務
服務集群管理:包括服務的服務器管理、大規(guī)模集群管理等
服務成本優(yōu)化:盡可能降低服務運行使用的資源,降低服務運行成本
數(shù)據(jù)庫管理(DBA):通過設計、開發(fā)和管理高性能數(shù)據(jù)庫集群,使數(shù)據(jù)庫服務更穩(wěn)定、更高效、更易于管理。
平臺化的開發(fā):類docker等平臺的開發(fā)管理,及服務接入技術
1.2 Linux運維工作發(fā)展過程
1、手工管理階段
1)業(yè)務規(guī)模
業(yè)務流量不大,服務器數(shù)量相對較少,系統(tǒng)復雜度不高。
對于日常的業(yè)務管理操作,大家更多的是逐臺登錄服務器進行手工操作,屬于各自為戰(zhàn)。
每個人都有自己的操作方式,缺少必要的操作標準、流程機制,比如業(yè)務目錄環(huán)境都是各式各樣的。
2)工作職責
早期的運維團隊在人員較少的情況下,主要是進行數(shù)據(jù)中心建設、基礎網(wǎng)絡建設、服務器采購和服務器安裝交付工作。
幾乎很少涉及線上服務的變更、監(jiān)控、管理等工作。
這個時候的運維團隊更多的屬于基礎建設的角色,提供一個簡單、可用的網(wǎng)絡環(huán)境和系統(tǒng)環(huán)境即可。
2、工具批量操作階段
1)業(yè)務規(guī)模
隨著服務器規(guī)模、系統(tǒng)復雜度的增加,全人工的操作方式已經(jīng)不能滿足業(yè)務的快速發(fā)展需要。
因此,運維人員逐漸開始使用批量化的操作工具,針對不同操作類型出現(xiàn)了不同的腳本程序。
此時,雖然效率提升了一部分,但很快又遇到了瓶頸,操作的質(zhì)量并沒有太多的提升。
我們開始建立大量的流程規(guī)范,比如復查機制,先上線一臺服務器觀察10分鐘后再繼續(xù)后面的操作,一次升級完成后至少要觀察20分鐘等。
這些主要還是靠人來監(jiān)督和執(zhí)行,但在實際過程中執(zhí)行往往不到位,反而降低了工作效率。
2)工作職責
這個時候的運維團隊還會承擔一些服務器監(jiān)控的工作,同時會負責LVS、Nginx等與業(yè)務邏輯無關的4/7層運維工作。
這個時候服務變更更多的是逐臺的手工操作,或者有一些簡單批量腳本的出現(xiàn)。
監(jiān)控的焦點更多的在服務器狀態(tài)和資源使用情況上,對服務應用狀態(tài)的監(jiān)控幾乎很少,監(jiān)控更多的使用各種開源系統(tǒng)如Nagios、Cacti等。
3、平臺管理階段
1)業(yè)務規(guī)模
在這個階段,我們決定開始建設運維平臺,通過平臺承載標準、流程,進而解放人力和提高質(zhì)量。
這個時候?qū)Ψ盏淖兏鼊幼鬟M行了抽象,形成了操作方法、服務目錄環(huán)境、服務運行方式等統(tǒng)一的標準。
通過平臺來約束操作流程,如上面提到的上線一臺服務器觀察10分鐘,程序的啟停接口必須包括啟動、停止、重載等。
在平臺中強制設定暫停檢查點,在第一臺服務器操作完成后,需要運維人員填寫相應的檢查項,然后才可以繼續(xù)執(zhí)行后續(xù)的部署動作。
2)工作職責
由于業(yè)務規(guī)模和復雜度的持續(xù)增加,運維團隊會逐漸劃分為應用運維和系統(tǒng)運維兩大塊。
應用運維開始接手線上業(yè)務,逐步開展服務監(jiān)控梳理、數(shù)據(jù)備份以及服務變更的工作。
隨著對服務的深入,應用運維工程師有能力開始對服務進行一些簡單的優(yōu)化。
同時,為了應對每天大量的服務變更,我們也開始編寫各類運維工具,針對某些特定的服務能夠很方便的批量變更。
隨著業(yè)務規(guī)模的增大,基礎設施由于容量規(guī)劃不足或抵御風險能力較弱導致的故障也越來越多,迫使運維人員開始將更多的精力投入到多數(shù)據(jù)中心容災、預案管理的方向上。
4、系統(tǒng)自調(diào)度階段
1)工作環(huán)境
更大規(guī)模的服務數(shù)量、更復雜的服務關聯(lián)關系、各個運維平臺的林立,原有的將批量操作轉(zhuǎn)化成平臺操作的方式已經(jīng)不再適合。
需要對服務變更進行更高一層的抽象,將每一臺服務器抽象成一個容器,由調(diào)度系統(tǒng)根據(jù)資源使用情況,將服務調(diào)度、部署到合適的服務器上。
自動化完成與周邊各個運維系統(tǒng)的聯(lián)動,比如監(jiān)控系統(tǒng)、日志系統(tǒng)、備份系統(tǒng)等。
通過自調(diào)度系統(tǒng),根據(jù)服務運行情況動態(tài)伸縮容量,能夠自動化處理常見的服務故障。
運維人員的工作也會前置到產(chǎn)品設計階段,協(xié)助研發(fā)人員改造服務使其可以接入到自調(diào)度系統(tǒng)中。
2)工作職責
業(yè)務規(guī)模達到一定程度后,開源的監(jiān)控系統(tǒng)在性能和功能方面,已經(jīng)無法滿足業(yè)務需求;
大量的服務變更、復雜的服務關系,以前靠人工記錄、工具變更的方式不管在效率還是準確性方面也都無法滿足業(yè)務需求;
在安全方面也出現(xiàn)了各種大大小小的事件,迫使我們投入更多的精力在安全防御上。
逐漸的,運維團隊形成之前提到的5個大的工作分類,每個分類都需要有專精的人才。
這個時候系統(tǒng)運維更專注于基礎設施的建設和運維,提供穩(wěn)定、高效的網(wǎng)絡環(huán)境,交付服務器等資源給應用運維工程師。
應用運維更專注于服務運行狀態(tài)和效率,數(shù)據(jù)庫運維屬于應用運維工作的細化,更專注于數(shù)據(jù)庫領域的自動化、性能優(yōu)化和安全防御。
運維研發(fā)和運維安全提供各類平臺、工具,MT5使用教程http://www.gendan5.com/mt5.html 進一步提升運維工程師的工作效率,使業(yè)務服務運行得更加穩(wěn)定、高效和安全。
1.3 Linux運維工作分類
1、應用運維(SRE):
應用運維負責線上服務的變更、服務狀態(tài)監(jiān)控、服務容災和數(shù)據(jù)備份等工作,對服務進行例行排查、故障應急處理等工作
工作職責如下:設計評審、服務管理、資源管理、例行檢查、預案管理、數(shù)據(jù)備份。
2、系統(tǒng)運維(SYS):
負責IDC、網(wǎng)絡、cdn和基礎服務的建設(LVS、NTP、DNS);
負責資產(chǎn)管理,服務器選型、交付和維修,網(wǎng)絡建設、LVS負載均衡和SNAT建設
3、運維開發(fā)
是給應用運維開發(fā)運維工具和運維平臺的
主要包含的平臺:工單系統(tǒng)、CMDB、監(jiān)控系統(tǒng)、ELK日志系統(tǒng)、CI/CD、LDAP、FAQ、培訓系統(tǒng)、OpenStack平臺
4、數(shù)據(jù)庫運維(DBA):
數(shù)據(jù)庫運維負責數(shù)據(jù)存儲方案設計、數(shù)據(jù)庫表設計、索引設計和SQL優(yōu)化,
對數(shù)據(jù)庫進行變更、監(jiān)控、備份、高可用設計等工作,詳細的工作內(nèi)容如下
設計評審、容量規(guī)劃、數(shù)據(jù)備份與災備、數(shù)據(jù)庫監(jiān)控、數(shù)據(jù)庫安全、數(shù)據(jù)庫高可用和性能優(yōu)化
自動化系統(tǒng)建設、運維研發(fā)、運維平臺、監(jiān)控系統(tǒng)、自動化部署系統(tǒng)
5、運維安全(SEC):
運維安全負責網(wǎng)絡、系統(tǒng)和業(yè)務等方面的安全加固工作
進行常規(guī)的安全掃描、滲透測試,進行安全工具和系統(tǒng)研發(fā)以及安全事件應急處理
工作內(nèi)容如下:安全制度建立、安全培訓、風險評估、安全建設、安全合規(guī)、應急響應。
1.4 Linux運維日常使用軟件和技能
1、運維工程師使用的運維平臺和工具
Web服務器:apache、tomcat、nginx
監(jiān)控:prometheus、zabbix、openfalcon、nagios、cacti
自動部署:ansible、saltstack、puttet
負載均衡:keepalive、lvs、haproxy、nginx
備份工具:rsync、wget
問題追查:netstat、top、tcpdump、last
容器:docker、k8s、docker-compose、swarm
安全:kerberos、selinux、acl、iptables
虛擬化:openstack、xen、kvm
2、運維工程師要掌握的技能
扎實的計算機基礎知識,包括計算機系統(tǒng)架構,操作系統(tǒng),網(wǎng)絡技術等;
通用應用方面需要了解操作系統(tǒng)、網(wǎng)絡、安全,存儲,CDN,DB等,知道其相關原理;
編程能力,小到運維工具的開發(fā)大到大型運維系統(tǒng)/平臺的開發(fā)都需要有良好的編程能力;
數(shù)據(jù)分析能力:能夠整理、分析系統(tǒng)運行的各項數(shù)據(jù),從中發(fā)現(xiàn)問題及找到解決方向;
豐富的系統(tǒng)知識,包括系統(tǒng)工具、典型系統(tǒng)架構、常見的平臺選型等;