運維除了(le)Linux,還(hái)有(yǒu)這‌✔€(zhè)麽多(duō)神技(jì)能(né₹≤<•ng)

2017-08-18 16:35

運維不(bù)僅僅是(shì)懂(dǒng↔λ)Linux就(jiù)行(xíng),因為(wèi)還(h∏↑✔£ái)有(yǒu)一(yī)大(dà)部分(fēn)的(de)​→γ≠Windows運維,最近(jìn)看(kàn)一(yī)個(gè γ←)報(bào)道(dào)說(shuō),windows的(de)服務器(q§ €₹ì)占了(le)47.71%。嗯,向windo<↓☆•ws運維人(rén)員(yuán)緻敬。當然我們這(zhè)篇文(wφ÷én)章(zhāng)不(bù)是(shì)說(shuō)運維除了(le)懂✘∞®≤(dǒng)Linux,還(hái)要(yào)懂♦'≠♠(dǒng)Windows,而是(shì)涉及運維的(de)其他(tā)方方→♣←§面面。

 

環境部署

一(yī)開(kāi)始這(zhè)個(gè)世界是(shì)開¥₩(kāi)發的(de),然後才是(shì)運維的(de)。
開(kāi)發實現(xiàn)産品邏輯,将産品開(kāi)發完成後,然後提↓↕≤€交運維進行(xíng)部署。此時(shí)允許就(jiù)需要(yào)準備↕≠好(hǎo)部署環境,如(rú)部署在Linux服務≈₹器(qì)上(shàng),安裝相(xiàng)應的(de)軟件 ​✘(jiàn),如(rú)Apache、Nginx®<♣∏、tomcat、JDK、PHP、MySQL等等。你(nǐ)不(×♣bù)能(néng)隻裝了(le)軟件(jiàn)吧≥§ ↓(ba),還(hái)需要(yào)看(kàn)看(kàn)‌∞具體(tǐ)是(shì)哪個(gè)版本,ja✘ va 7 和(hé)java 8 的(de)₽↓λ差别還(hái)是(shì)有(yǒu)點的(de),php5和(hé₩♣)php7也(yě)有(yǒu)些(xiē)語法不(bù<γ)兼容。把軟件(jiàn)都(dōu)安裝好(hǎo)了(le),就®☆ ×(jiù)可(kě)以上(shàng)線了λλ>(le)?還(hái)是(shì)不(bù)行(x"£★αíng)。還(hái)需要(yào)測試吧(ba),那(nà)就(j♥★iù)還(hái)需要(yào)部署一(yī)套測試環境。有(yǒu)些(¶♠xiē)時(shí)候,開(kāi)發環境也(yě)Ω★δ是(shì)需要(yào)運維來(lái) ☆φ₹部署的(de)。

 

排錯(cuò)和(hé)調優

事(shì)情從(cóng)來(lái)都(dōu)沒有(yǒφ£φ£u)一(yī)帆風(fēng)順的(de)。上(shàγγng)線沒多(duō)久,服務就(jiù)502了(le),β♠還(hái)不(bù)被老(lǎo)闆罵σ¥♠♥死。盡管你(nǐ)有(yǒu)一(yī)肚子(zǐ)的(de)委屈,我隻是 ÷<α(shì)個(gè)運維,代碼不(bù)是π (shì)我寫的(de),為(wèi)什(shén)麽要(yào)我來(lái'ε→§)背這(zhè)鍋?!委屈歸委屈,服務訪問≠π∞(wèn)不(bù)了(le)了(le),就(ji®₽≤₹ù)是(shì)運維的(de)事(shì©<)。盡快(kuài)定位問(wèn)題,↓©解決問(wèn)題才是(shì)王道(dào)。怎麽來(lái)定位問£€§(wèn)題呢(ne)?最簡單直接的(de)辦法就( ≤εjiù)是(shì)看(kàn)日(rì)志(zhì),看(kàn)系♠€統日(rì)志(zhì),看(kàn)軟件(jiàn)相(xiàng)關的(‌✔§±de)日(rì)志(zhì),結合故障現(xiàn)象和(hé®"≤$)經驗,快(kuài)速的(de)進行(β ♣≠xíng)定位和(hé)恢複。然後就(jiù)是(shìσ≤↕ )總結經驗,吸取教訓,寫事(shì)故報(bào)告 <₽。OK,現(xiàn)在你(nǐ)知(zhī)道(d¥±βào),需要(yào)對(duì)系統環境需要(β¶yào)進行(xíng)一(yī)定的(d≈♠e)調優操作(zuò),不(bù)再做(zuò)背鍋俠。

相(xiàng)關技(jì)術(shù): φ‌±≥;top, vmstat, iftop, awk, ‌γ​≈sed, sar, iostat, strace, .®≥..

 

 

備份

做(zuò)最好(hǎo)的(de)計(jì)劃,做(zuò)最壞的(¶✔‌de)打算(suàn)。
前不(bù)久的(de)gitlab删庫事(shì)件λ₩ (jiàn)的(de)教訓猶在眼前,丢失了(l&₹₹≈e)幾小(xiǎo)時(shí)的(de)數(s≈'≤€hù)據,雖然大(dà)部分(fēn)的(de)備份策略都(dō Ωu)失效了(le),但(dàn)還(hái)是(↑×&shì)挽救了(le)幾小(xiǎo)時(shí)前的(de)一(yī)個(δ✔↓gè)備份,才沒有(yǒu)造成更大(dà)的(de)數(shù)據丢失和(hλ§é)公司損失。我們需要(yào)對(duì)設備進行(xíng)備份冗餘★≥,需要(yào)對(duì)數(shù)據₹αγ庫進行(xíng)備份及離(lí)線備份±"£,需要(yào)對(duì)網站(zhàn)靜(∞αjìng)态進行(xíng)備份冗餘,需要¶✔¶♠(yào)對(duì)機(jī)房(fáng)₹ 進行(xíng)備用(yòng),能(néng)做(zuò)∞ ♦¥到(dào)雙活,那(nà)是(shì)更好(h±'©ǎo)的(de)啦。
相(xiàng)關技(jì)術(shù): rs✔→&ync, crontab, lvm快(kuài)照(zhào)™≈ε©, mysqldump, extrabackup&♦♥✔, 完全備份, 差異備份, 增量備份, 離(lí)線異地(dì)備份, ...φ §

 

高(gāo)可(kě)用(yòng)和( ×βhé)集群

沒有(yǒu)永垂不(bù)朽,我們不(bù)能(néng)保證硬件(≠←÷$jiàn)24小(xiǎo)時(shí)在線,但(dàn)需要(∞♠yào)保障服務24小(xiǎo)時(shí)在線。
出現(xiàn)故障後,如(rú)果做(zuò)好(hδβǎo)高(gāo)可(kě)用(yòng)和(hé)冗餘,故障自​♥(zì)動切換,移除故障節點,那(nà)樣也(yě)就→÷(jiù)保障了(le)服務的(de)實時(shí)在線。在老(lǎ£€o)闆和(hé)用(yòng)戶不(bù)知(zhī§δ™¶)情的(de)情況下(xià),悄麽的(®→↑÷de)把故障處理(lǐ)好(hǎo)的(de),KPI算(suàn♥€<)是(shì)保住了(le),獎金(jīn)也(yě)許就(jiù)♦₩÷會(huì)有(yǒu)的(de)吧(ba)。
相(xiàng)關技(jì)術(shù):&÷£✔§nbsp;F5, Nginx, LVS, HA-¥®♥​proxy, MHA, Zookeeper,•÷  各種其他(tā)分(fēn)布式集群方案, .→&..

 

監控告警

運維工(gōng)程師(shī)的(de)第一(yī)次解放(fàng)運動。‌×
時(shí)刻擔心網站(zhàn)挂掉,一(yī)年(nián)365天、每周£♠✔≠7天、每天24小(xiǎo)時(shí)↔λ™←,時(shí)刻保持精神高(gāo)度緊張,就(jiù)算(suàn)你(n‍¥α®ǐ)是(shì)神仙都(dōu)會(huì)撐不(bù)住的(de)。我φ​‍δ們需要(yào)一(yī)個(gè)機(jī)器(qì£÷ •)來(lái)監督其他(tā)的(de)機(jī)器(φδδqì)工(gōng)作(zuò),我們需要(yào)解放(fà>₹↓₩ng)我們自(zì)己。當有(yǒu)故障發生(shēn₽®₩αg)的(de)時(shí)候,通(tōng)×∏✔過短(duǎn)信、微(wēi)信、釘釘、郵件(jiàn)→β≈等等通(tōng)知(zhī)對(duì)應的(de)運維工(g<™≥ōng)程師(shī)來(lái)處理(lǐ),甚至是(shì₽≥δ)自(zì)動切換或摘除故障節點,然後我們離(α∏lí)線對(duì)故障節點進行(xíng)問(wèn)題排查。
相(xiàng)關技(jì)術(shù):Zabbix, Nagio≥±s, Cacti, Prometheus, open-fa↑♦§ lcon, Ganglia, sar, .←≤§≠..

 

安全和(hé)審計(jì)

狂奔在互聯網的(de)康莊大(dà)道(dà£≥✔o)上(shàng),不(bù)過有(yǒu)些(xiē)人(rén)是&∑(shì)在裸奔。
不(bù)安全的(de)網絡環境和(hé)服務器(qì)配置,↕Ω無異于在網絡世界裸奔,任何人(rén)都(dōu)可(kě)以窺探你(nǐ)‍φ的(de)隐私。你(nǐ)的(de)應用(yò↓♥ng)是(shì)否做(zuò)了(le)SQL防注入?你(n★×σ✘ǐ)的(de)防火(huǒ)牆是(shì)否開(kāi)啓?是(shì)否‍<'還(hái)在用(yòng)root+密碼的(de)方式登錄服務 ¥↑器(qì)?網站(zhàn)開(kāi)啓了(le)https麽?§Ω"是(shì)否對(duì)系統操作(zuò)進行(x•₩✘íng)審計(jì)?
相(xiàng)關技(jì)術(shù): ↓♣ε±iptables, firewalld, wa≠↑₽&f, auditd, 各服務的(de)正确配置, ...•£

 

自(zì)動化(huà)和(hé)DevOps

運維工(gōng)程師(shī)的(deαλ↓)第二次解放(fàng)運動。
偷懶是(shì)社會(huì)進步的(de)第一(yī)動力。λ☆聰明(míng)的(de)我們怎麽會(huì)讓γ>自(zì)己一(yī)直在重複枯燥的(de)事(shì)情上(shàng)浪≤≥費(fèi)時(shí)間(jiān),裝系統、部署環境、發版本$ 、批量操作(zuò),把這(zhè)一(yī)切交Ω&給程序去(qù)實現(xiàn)吧(ba),我們βγ✘需要(yào)的(de)是(shì)享受生(shēng)活。
相(xiàng)關技(jì)術(shù):£≠ shell, python, go, rundeck, ansib ≠£le, saltstack, puppet, chef, cob ↔ bler, fabric, ...

 

虛拟化(huà)和(hé)雲服務

正在發生(shēng)的(de)一(yī)場(c↑γ÷hǎng)運維革命。
這(zhè)場(chǎng)革命的(de)發起人(rén)是(shì)買₽☆書(shū)的(de)亞馬遜,這(zhè)家(jiā)夥希望賣一&₽><(yī)切可(kě)以賣的(de)東(dōng)西≈↕(xī),包括自(zì)己閑置的(de)服務器(qì)資源♠€。現(xiàn)在國(guó)內(nèi)的↕∏>↑(de)阿裡(lǐ)雲和(hé)騰訊雲也(yě)發展得(de)如(✔≤rú)日(rì)中天,他(tā)們幾乎提供了(le)運維所  需要(yào)的(de)一(yī)切,甚至可(kě)以讓一(y≥¥∑ī)個(gè)公司不(bù)再需要(yào)運維的(de)崗位。你∑£ (nǐ)需要(yào)服務器(qì),隻需要(yào)幾秒(m₩♥iǎo)鐘(zhōng),就(jiù)可(kě)以創建←♦↓$一(yī)台。你(nǐ)需要(yào)數(shù)據庫集群,隻♣ 'λ需要(yào)鼠标點擊幾下(xià),就(jiù)>≈☆可(kě)以開(kāi)通(tōng)。
相(xiàng)關技(jì)術(shù):docker, Moby, ↓☆kubernetes, Xen, CoreO↓‌S, Hyper-V, KVM, ...