首先祝賀你選擇學(xué)習(xí)Linux,你可能即將踏上Linux的工作之旅,出發(fā)之前,讓我?guī)銇?lái)看一看關(guān)于Linux和Linux運(yùn)維的一切。
Linux因其高效率、易于裁剪、應(yīng)用廣等優(yōu)勢(shì),成為了當(dāng)今中高端服務(wù)器的主要操作系統(tǒng),并且處于一個(gè)不可替代的地位。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)、平板電腦、路由器、視頻游戲控制臺(tái)、臺(tái)式計(jì)算機(jī)、大型機(jī)和超級(jí)計(jì)算機(jī)。隨著Linux在中國(guó)市場(chǎng)迅猛發(fā)展,國(guó)內(nèi)Linux人才缺口逐漸凸顯。Linux人才招聘也成了當(dāng)前最熱門(mén)的招聘之一。
首先linux是一個(gè)非常非常大的概念。想全部吃透是不可能的。理想的說(shuō),搞懂linux,就可以做所有工作。個(gè)人更傾向于說(shuō)想做什么樣工作,需要學(xué)linux的哪部分。
按個(gè)人經(jīng)驗(yàn)介紹下常見(jiàn)的linux有哪些領(lǐng)域,并對(duì)應(yīng)到什么工作。1)linux應(yīng)用。這部分嚴(yán)格來(lái)說(shuō)不能算是linux,只是跑在linux上的應(yīng)用,比如web,網(wǎng)絡(luò),IT等,職業(yè)包括系統(tǒng)研發(fā),后臺(tái)開(kāi)發(fā),服務(wù)器性能優(yōu)化,運(yùn)維等;
2)linux定制。這部分涉及l(fā)inux版本的用戶(hù)包較多,內(nèi)核會(huì)有一些涉及,主要各種商業(yè)linux的訂制,服務(wù)等。比如redhat之類(lèi),不少是外國(guó)公司,國(guó)內(nèi)大多招現(xiàn)場(chǎng)支持等。
3)linux內(nèi)核開(kāi)發(fā)。這部分主要是linux內(nèi)核驅(qū)動(dòng)的開(kāi)發(fā)。幾乎全部是編程工作。主要是芯片公司,以及使用芯片的產(chǎn)品開(kāi)發(fā)公司。前者如intel,marvell,后者如中興華為。
4)android衍生品。因?yàn)閍ndroid包括慢慢火爆的tizen都用的linux內(nèi)核,所以理由同3。所以手機(jī)芯片公司和手機(jī)開(kāi)發(fā)公司也是linux開(kāi)發(fā)者的雇主之一。比如高通,TI等;
一、Linux運(yùn)維的主要工作內(nèi)容
Linux運(yùn)維作為眾多工作中需求人數(shù)最多,薪資待遇最高的崗位,本文重點(diǎn)介紹Linux運(yùn)維的職業(yè),本文內(nèi)容由專(zhuān)門(mén)研究Linux運(yùn)維學(xué)習(xí)和職業(yè)發(fā)展的機(jī)構(gòu)馬哥教育和愛(ài)好者們聯(lián)合撰寫(xiě)。
互聯(lián)網(wǎng)Linux運(yùn)維工作,以服務(wù)為中心,以穩(wěn)定、安全、高效為三個(gè)基本點(diǎn),確保公司的互聯(lián)網(wǎng)業(yè)務(wù)能夠7×24小時(shí)為用戶(hù)提供高質(zhì)量的服務(wù)。運(yùn)維的職責(zé)覆蓋了產(chǎn)品從設(shè)計(jì)到發(fā)布、運(yùn)行維護(hù)、變更升級(jí)及至下線(xiàn)的生命周期。
產(chǎn)品的整個(gè)生命周期里運(yùn)維的職責(zé)重要而廣泛,但運(yùn)維工程師們的職責(zé)不僅限于這部分工作,還需要總結(jié)工作中遇到的問(wèn)題,抽取出相關(guān)的技術(shù)方向、研發(fā)相關(guān)的工具和平臺(tái)以支持/優(yōu)化業(yè)務(wù)的發(fā)展并提高運(yùn)維的效率,相關(guān)技術(shù)工作主要包括:
服務(wù)監(jiān)控技術(shù):包括監(jiān)控平臺(tái)的研發(fā)、應(yīng)用,服務(wù)監(jiān)控準(zhǔn)確性、實(shí)時(shí)性、全面性的保障
服務(wù)故障管理:包括服務(wù)的故障預(yù)案設(shè)計(jì),預(yù)案的自動(dòng)化執(zhí)行,故障的總結(jié)并反饋到產(chǎn)品/系統(tǒng)的設(shè)計(jì)層面進(jìn)行優(yōu)化以提高產(chǎn)品的穩(wěn)定性
服務(wù)容量管理:測(cè)量服務(wù)的容量,規(guī)劃服務(wù)的機(jī)房建設(shè),擴(kuò)容、遷移等工作
服務(wù)性能優(yōu)化:從各個(gè)方向,包括網(wǎng)絡(luò)優(yōu)化、操作系統(tǒng)優(yōu)化、應(yīng)用優(yōu)化、客戶(hù)端優(yōu)化等,提高服務(wù)的性能和響應(yīng)速度,改善用戶(hù)體驗(yàn)
服務(wù)全局流量調(diào)度:接入服務(wù)的流量,根據(jù)容量和服務(wù)狀態(tài)在各個(gè)機(jī)房間分配流量
服務(wù)任務(wù)調(diào)度:服務(wù)的各種定時(shí)/非定時(shí)任務(wù)的調(diào)度觸發(fā)及狀態(tài)監(jiān)控
服務(wù)安全保障:包括服務(wù)的訪(fǎng)問(wèn)安全、防攻擊、權(quán)限控制等
數(shù)據(jù)傳輸技術(shù):包括p2p等各類(lèi)傳輸技術(shù)的研發(fā)應(yīng)用,也遠(yuǎn)距離大數(shù)據(jù)傳輸?shù)葐?wèn)題的解決
服務(wù)自動(dòng)發(fā)布部署:部署平臺(tái)/工具的研發(fā),及平臺(tái)/工具的使用,做到安全、高效的發(fā)布服務(wù)
服務(wù)集群管理:包括服務(wù)的服務(wù)器管理、大規(guī)模集群管理等
服務(wù)成本優(yōu)化:盡可能降低服務(wù)運(yùn)行使用的資源,降低服務(wù)運(yùn)行成本
數(shù)據(jù)庫(kù)管理(DBA):通過(guò)設(shè)計(jì)、開(kāi)發(fā)和管理高性能數(shù)據(jù)庫(kù)集群,使數(shù)據(jù)庫(kù)服務(wù)更穩(wěn)定、更高效、更易于管理。
平臺(tái)化的開(kāi)發(fā):類(lèi)docker等平臺(tái)的開(kāi)發(fā)管理,及服務(wù)接入技術(shù)
分布式存儲(chǔ)平臺(tái)的開(kāi)發(fā)優(yōu)化與接入
等等,凡是關(guān)系到服務(wù)質(zhì)量、效率、成本、安全等方面的工作,及涉及到的技術(shù)、組件、工具、平臺(tái)都在運(yùn)維的技術(shù)范疇里。做好每一個(gè)技術(shù)方向、完成相應(yīng)的組件、工具、平臺(tái)研發(fā)都能對(duì)履行運(yùn)維職責(zé)起到積極的作用,對(duì)業(yè)務(wù)的發(fā)展發(fā)揮關(guān)鍵影響。
二、Linux運(yùn)維工作分類(lèi)
運(yùn)維的工作方向比較多,隨著業(yè)務(wù)規(guī)模的不斷發(fā)展,越成熟的互聯(lián)網(wǎng)公司,運(yùn)維崗位會(huì)劃分得越細(xì)。當(dāng)前很多大型的互聯(lián)網(wǎng)公司,在初創(chuàng)時(shí)期只有系統(tǒng)運(yùn)維,隨著 模、服務(wù)質(zhì)量的 要求,也逐漸進(jìn)行了工作細(xì)分。一般情況下運(yùn)維團(tuán)隊(duì)的工作分類(lèi)(見(jiàn)圖1-1)和職責(zé)如下。
圖1-1 運(yùn)維團(tuán)隊(duì)的工作分類(lèi)
2.1-應(yīng)用運(yùn)維(SRE):應(yīng)用運(yùn)維負(fù)責(zé)線(xiàn)上服務(wù)的變更、服務(wù)狀態(tài)監(jiān)控、服務(wù)容災(zāi)和數(shù)據(jù)備份等工作,對(duì)服務(wù)進(jìn)行例行排查、故障應(yīng)急處理等工作,工作職責(zé)如下:設(shè)計(jì)評(píng)審、服務(wù)管理、資源管理、例行檢查、預(yù)案管理、數(shù)據(jù)備份。
2.2-系統(tǒng)運(yùn)維(SYS):負(fù)責(zé)IDC、網(wǎng)絡(luò)、CDN和基礎(chǔ)服務(wù)的建設(shè)(LVS、NTP、DNS);負(fù)責(zé)資產(chǎn)管理,服務(wù)器選型、交付和維修,工作職責(zé)如下:IDC數(shù)據(jù)中心建設(shè)、網(wǎng)絡(luò)建設(shè)、LVS負(fù)載均衡和SNAT建設(shè)、CDN規(guī)劃和建設(shè)、服務(wù)器選型、交付和維護(hù)、內(nèi)核選型和OS相關(guān)維護(hù)工作、資產(chǎn)管理、基礎(chǔ)服務(wù)建設(shè)。
2.3-數(shù)據(jù)庫(kù)運(yùn)維(DBA):數(shù)據(jù)庫(kù)運(yùn)維負(fù)責(zé)數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)、數(shù)據(jù)庫(kù)表設(shè)計(jì)、索引設(shè)計(jì)和SQL優(yōu)化,對(duì)數(shù)據(jù)庫(kù)進(jìn)行變更、監(jiān)控、備份、高可用設(shè)計(jì)等工作,詳細(xì)的工作內(nèi)容如下:設(shè)計(jì)評(píng)審、容量規(guī)劃、數(shù)據(jù)備份與災(zāi)備、數(shù)據(jù)庫(kù)監(jiān)控、數(shù)據(jù)庫(kù)安全、數(shù)據(jù)庫(kù)高可用和性能優(yōu)化、自動(dòng)化系統(tǒng)建設(shè)、運(yùn)維研發(fā)、運(yùn)維平臺(tái)、監(jiān)控系統(tǒng)、自動(dòng)化部署系統(tǒng)。
2.4-運(yùn)維安全(SEC):運(yùn)維安全負(fù)責(zé)網(wǎng)絡(luò)、系統(tǒng)和業(yè)務(wù)等方面的安全加固工作,進(jìn)行常規(guī)的安全掃描、滲透測(cè)試,進(jìn)行安全工具和系統(tǒng)研發(fā)以及安全事件應(yīng)急處理,工作內(nèi)容如下:安全制度建立、安全培訓(xùn)、風(fēng)險(xiǎn)評(píng)估、安全建設(shè)、安全合規(guī)、應(yīng)急響應(yīng)。
三、Linux運(yùn)維日常使用軟件和技能
運(yùn)維工程師使用的運(yùn)維平臺(tái)和工具包括:
Web服務(wù)器:apache、tomcat、nginx、lighttpd
監(jiān)控:nagios、ganglia、cacti、zabbix
自動(dòng)部署:ansible、sshpt、salt
配置管理:puppet、cfengine
負(fù)載均衡:lvs、haproxy、nginx
傳輸工具:scribe、flume
備份工具:rsync、wget
數(shù)據(jù)庫(kù):mysql、oracle、sqlserver
分布式平臺(tái):hdfs、mapreduce、spark、storm、hive
分布式數(shù)據(jù)庫(kù):hbase、cassandra、redis、MongoDB
容器:lxc、docker
虛擬化:openstack、xen、kvm
安全:kerberos、selinux、acl、iptables
問(wèn)題追查:netstat、top、tcpdump、last
運(yùn)維以技術(shù)為基礎(chǔ),通過(guò)技術(shù)保障產(chǎn)品提供更高質(zhì)量的服務(wù)。運(yùn)維工作的職責(zé)及在業(yè)務(wù)中的位置決定了運(yùn)維工程師需要具備更加廣博的知識(shí)和深入的技術(shù)能力:
扎實(shí)的計(jì)算機(jī)基礎(chǔ)知識(shí),包括計(jì)算機(jī)系統(tǒng)架構(gòu),操作系統(tǒng),網(wǎng)絡(luò)技術(shù)等;
通用應(yīng)用方面需要了解操作系統(tǒng)、網(wǎng)絡(luò)、安全,存儲(chǔ),CDN,DB等,知道其相關(guān)原理;
編程能力,小到運(yùn)維工具的開(kāi)發(fā)大到大型運(yùn)維系統(tǒng)/平臺(tái)的開(kāi)發(fā)都需要有良好的編程能力;
數(shù)據(jù)分析能力:能夠整理、分析系統(tǒng)運(yùn)行的各項(xiàng)數(shù)據(jù),從中發(fā)現(xiàn)問(wèn)題及找到解決方向;
豐富的系統(tǒng)知識(shí),包括系統(tǒng)工具、典型系統(tǒng)架構(gòu)、常見(jiàn)的平臺(tái)選型等;
綜合利用工具和平臺(tái)的能力;
四、Linux運(yùn)維工作發(fā)展過(guò)程
早期的運(yùn)維團(tuán)隊(duì)在人員較少的情況下,主要是進(jìn)行數(shù)據(jù)中心建設(shè)、基礎(chǔ)網(wǎng)絡(luò)建設(shè)、服務(wù)器采購(gòu)和服務(wù)器安裝交付工作。幾乎很少涉及線(xiàn)上服務(wù)的變更、監(jiān)控、管理等工作。這個(gè)時(shí)候的運(yùn)維團(tuán)隊(duì)更多的屬于基礎(chǔ)建設(shè)的角色,提供一個(gè)簡(jiǎn)單、可用的網(wǎng)絡(luò)環(huán)境和系統(tǒng)環(huán)境即可。
隨著業(yè)務(wù)產(chǎn)品的逐漸成熟,對(duì)于服務(wù)質(zhì)量方面就有了更高的要求。這個(gè)時(shí)候的運(yùn)維團(tuán)隊(duì)還會(huì)承擔(dān)一些服務(wù)器監(jiān)控的工作,同時(shí)會(huì)負(fù)責(zé)LVS、Nginx等與業(yè)務(wù)邏輯無(wú)關(guān)的4/7層運(yùn)維工作。這個(gè)時(shí)候服務(wù)變更更多的是逐臺(tái)的手工操作,或者有一些簡(jiǎn)單批量腳本的出現(xiàn)。監(jiān)控的焦點(diǎn)更多的在服務(wù)器狀態(tài)和資源使用情況上,對(duì)服務(wù)應(yīng)用狀態(tài)的監(jiān)控幾乎很少,監(jiān)控更多的使用各種開(kāi)源系統(tǒng)如Nagios、Cacti等。
由于業(yè)務(wù)規(guī)模和復(fù)雜度的持續(xù)增加,運(yùn)維團(tuán)隊(duì)會(huì)逐漸劃分為應(yīng)用運(yùn)維和系統(tǒng)運(yùn)維兩大塊。應(yīng)用運(yùn)維開(kāi)始接手線(xiàn)上業(yè)務(wù),逐步開(kāi)展服務(wù)監(jiān)控梳理、數(shù)據(jù)備份以及服務(wù)變更的工作。隨著對(duì)服務(wù)的深入,應(yīng)用運(yùn)維工程師有能力開(kāi)始對(duì)服務(wù)進(jìn)行一些簡(jiǎn)單的優(yōu)化。同時(shí),為了應(yīng)對(duì)每天大量的服務(wù)變更,我們也開(kāi)始編寫(xiě)各類(lèi)運(yùn)維工具,針對(duì)某些特定的服務(wù)能夠很方便的批量變更。隨著業(yè)務(wù)規(guī)模的增大,基礎(chǔ)設(shè)施由于容量規(guī)劃不足或抵御風(fēng)險(xiǎn)能力較弱導(dǎo)致的故障也越來(lái)越多,迫使運(yùn)維人員開(kāi)始將更多的精力投入到多數(shù)據(jù)中心容災(zāi)、預(yù)案管理的方向上。
業(yè)務(wù)規(guī)模達(dá)到一定程度后,開(kāi)源的監(jiān)控系統(tǒng)在性能和功能方面,已經(jīng)無(wú)法滿(mǎn)足業(yè)務(wù)需求;大量的服務(wù)變更、復(fù)雜的服務(wù)關(guān)系,以前靠人工記錄、工具變更的方式不管在效率還是準(zhǔn)確性方面也都無(wú)法滿(mǎn)足業(yè)務(wù)需求;在安全方面也出現(xiàn)了各種大大小小的事件,迫使我們投入更多的精力在安全防御上。逐漸的,運(yùn)維團(tuán)隊(duì)形成之前提到的5個(gè)大的工作分類(lèi),每個(gè)分類(lèi)都需要有專(zhuān)精的人才。這個(gè)時(shí)候系統(tǒng)運(yùn)維更專(zhuān)注于基礎(chǔ)設(shè)施的建設(shè)和運(yùn)維,提供穩(wěn)定、高效的網(wǎng)絡(luò)環(huán)境,交付服務(wù)器等資源給應(yīng)用運(yùn)維工程師。應(yīng)用運(yùn)維更專(zhuān)注于服務(wù)運(yùn)行狀態(tài)和效率。數(shù)據(jù)庫(kù)運(yùn)維屬于應(yīng)用運(yùn)維工作的細(xì)化,更專(zhuān)注于數(shù)據(jù)庫(kù)領(lǐng)域的自動(dòng)化、性能優(yōu)化和安全防御。運(yùn)維研發(fā)和運(yùn)維安全提供各類(lèi)平臺(tái)、工具,進(jìn)一步提升運(yùn)維工程師的工作效率,使業(yè)務(wù)服務(wù)運(yùn)行得更加穩(wěn)定、高效和安全。
我們將運(yùn)維發(fā)展過(guò)程劃分為4個(gè)階段,如圖1-2所示。
圖1-2 運(yùn)維發(fā)展過(guò)程
手工管理階段:業(yè)務(wù)流量不大,服務(wù)器數(shù)量相對(duì)較少,系統(tǒng)復(fù)雜度不高。對(duì)于日常的業(yè)務(wù)管理操作,大家更多的是逐臺(tái)登錄服務(wù)器進(jìn)行手工操作,屬于各自為戰(zhàn),每個(gè)人都有自己的操作方式,缺少必要的操作標(biāo)準(zhǔn)、流程機(jī)制,比如業(yè)務(wù)目錄環(huán)境都是各式各樣的。
工具批量操作階段:隨著服務(wù)器規(guī)模、系統(tǒng)復(fù)雜度的增加,全人工的操作方式已經(jīng)不能滿(mǎn)足業(yè)務(wù)的快速發(fā)展需要。因此,運(yùn)維人員逐漸開(kāi)始使用批量化的操作工具,針對(duì)不同操作類(lèi)型出現(xiàn)了不同的腳本程序。但各團(tuán)隊(duì)都有自己的工具,每次操作需求發(fā)生變化時(shí)都需要調(diào)整工具。這主要是因?yàn)閷?duì)于環(huán)境、操作的規(guī)范不夠,導(dǎo)致可程序化處理能力較弱。此時(shí),雖然效率提升了一部分,但很快又遇到了瓶頸。操作的質(zhì)量并沒(méi)有太多的提升,甚至可能因?yàn)榕繄?zhí)行而導(dǎo)致更大規(guī)模的問(wèn)題出現(xiàn)。我們開(kāi)始建立大量的流程規(guī)范,比如復(fù)查機(jī)制,先上線(xiàn)一臺(tái)服務(wù)器觀察10分鐘后再繼續(xù)后面的操作,一次升級(jí)完成后至少要觀察20分鐘等。這些主要還是靠人來(lái)監(jiān)督和執(zhí)行,但在實(shí)際過(guò)程中執(zhí)行往往不到位,反而降低了工作效率。
平臺(tái)管理階段:在這個(gè)階段,對(duì)于運(yùn)維效率和誤操作率有了更高的要求,我們決定開(kāi)始建設(shè)運(yùn)維平臺(tái),通過(guò)平臺(tái)承載標(biāo)準(zhǔn)、流程,進(jìn)而解放人力和提高質(zhì)量。這個(gè)時(shí)候?qū)Ψ?wù)的變更動(dòng)作進(jìn)行了抽象,形成了操作方法、服務(wù)目錄環(huán)境、服務(wù)運(yùn)行方式等統(tǒng)一的標(biāo)準(zhǔn),如程序的啟停接口必須包括啟動(dòng)、停止、重載等。通過(guò)平臺(tái)來(lái)約束操作流程,如上面提到的上線(xiàn)一臺(tái)服務(wù)器觀察10分鐘。在平臺(tái)中強(qiáng)制設(shè)定暫停檢查點(diǎn),在第一臺(tái)服務(wù)器操作完成后,需要運(yùn)維人員填寫(xiě)相應(yīng)的檢查項(xiàng),然后才可以繼續(xù)執(zhí)行后續(xù)的部署動(dòng)作。
系統(tǒng)自調(diào)度階段:更大規(guī)模的服務(wù)數(shù)量、更復(fù)雜的服務(wù)關(guān)聯(lián)關(guān)系、各個(gè)運(yùn)維平臺(tái)的林立,原有的將批量操作轉(zhuǎn)化成平臺(tái)操作的方式已經(jīng)不再適合,需要對(duì)服務(wù)變更進(jìn)行更高一層的抽象。將每一臺(tái)服務(wù)器抽象成一個(gè)容器,由調(diào)度系統(tǒng)根據(jù)資源使用情況,將服務(wù)調(diào)度、部署到合適的服務(wù)器上,自動(dòng)化完成與周邊各個(gè)運(yùn)維系統(tǒng)的聯(lián)動(dòng),比如監(jiān)控系統(tǒng)、日志系統(tǒng)、備份系統(tǒng)等。通過(guò)自調(diào)度系統(tǒng),根據(jù)服務(wù)運(yùn)行情況動(dòng)態(tài)伸縮容量,能夠自動(dòng)化處理常見(jiàn)的服務(wù)故障。運(yùn)維人員的工作也會(huì)前置到產(chǎn)品設(shè)計(jì)階段,協(xié)助研發(fā)人員改造服務(wù)使其可以接入到自調(diào)度系統(tǒng)中。
在整個(gè)運(yùn)維的發(fā)展過(guò)程中,希望所有的工作都自動(dòng)化起來(lái),減少人的重復(fù)工作,降低知識(shí)傳遞的成本,使我們的運(yùn)維交付更高效、更安全,使產(chǎn)品運(yùn)行更穩(wěn)定。對(duì)于故障的處理,也希望由事后處理變成提前發(fā)現(xiàn),由人工處理變成系統(tǒng)自動(dòng)容災(zāi)。
五、2018年Linux運(yùn)維必須抓住的前沿技能
這是技術(shù)世界正在發(fā)生的深刻變革的冰山一角,那么問(wèn)題來(lái)了? 作為傳統(tǒng)的運(yùn)維該如何轉(zhuǎn)型呢?
這里給出一點(diǎn)小的建議: 大致需要學(xué)習(xí)下這四個(gè)部分:
自動(dòng)化運(yùn)維(Ansible,Puppet,Saltstack等)
Devops(Docker,K8s,Jenkins,Jira等),
云服務(wù)技術(shù)(虛擬化、OpenStack、AWS及阿里云各種產(chǎn)品服務(wù)架構(gòu)等)
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209517 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9160瀏覽量
85425
原文標(biāo)題:Linux職業(yè)困惑?給你史上最全互聯(lián)網(wǎng)Linux工作規(guī)劃!
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論