掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

為虞城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及虞城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都做網(wǎng)站、虞城網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
如今的 IT 服務(wù)器領(lǐng)域是 Linux、UNIX、windows 三分天下,Linux 系統(tǒng)可謂后起之秀,特別是“互聯(lián)網(wǎng)熱”以來,Linux 在服務(wù)器端的市場份額不斷擴大,每年增長勢頭迅猛,開始對 Windows 和 UNIX 的地位構(gòu)成嚴重威脅。
下圖是 2016 年初國內(nèi)服務(wù)器端各個操作系統(tǒng)的市場份額:
可以看出來,Linux 占 80% 左右(包括 CentOS、Ubuntu 等),Windows 占 12.8%,Solaris 占 6.2%。在未來的服務(wù)器領(lǐng)域,Linux 是大勢所趨。
Linux 在服務(wù)器上的應用非常廣泛,可以用來搭建 Web 服務(wù)器、數(shù)據(jù)庫服務(wù)器、負載均衡服務(wù)器(CDN)、郵件服務(wù)器、DNS 服務(wù)器、反向代理服務(wù)器、VPN 服務(wù)器、路由器等。用 Linux 作為服務(wù)器系統(tǒng)不但非常高效和穩(wěn)定,還不用擔心版權(quán)問題,不用付費。
正是由于 Linux 服務(wù)器的大規(guī)模應用,才需要一批專業(yè)的人才去管理,這群人就是
Linux 運維工程師(OPS)。
OPS 的主要工作就是搭建起運行環(huán)境,讓程序員寫的代碼能夠高效、穩(wěn)定、安全地在服務(wù)器上運行,他們屬于后勤部門。OPS 的要求并不比程序員低,優(yōu)秀的 OPS 擁有架設(shè)服務(wù)器集群的能力,還會編程開發(fā)常用的工具。
OPS 這項工作的細節(jié)內(nèi)容包括:
這些任務(wù)只要登錄遠程服務(wù)器,或者去機房連接服務(wù)器(下圖所示)就能夠完成,為什么要用 Shell 編程呢?
因為 OPS 面對的是成千上萬臺的服務(wù)器,不是十臺八臺,你總不能把同樣的工作重復成千上萬遍吧,那時估計黃花菜都涼了,市場也成一片紅海了。
服務(wù)器一旦多了,這些人力工作都需要自動化起來,跑一段代碼就能在成千上萬臺服務(wù)器上完成相同的工作,例如服務(wù)的監(jiān)控、代碼快速部署、服務(wù)啟動停止、數(shù)據(jù)備份、日志分析等。
Shell 腳本很適合處理純文本類型的數(shù)據(jù),而 Linux 中幾乎所有的配置文件、日志文件(如 NFS、Rsync、Httpd、Nginx、MySQL 等),以及絕大多數(shù)的啟動文件都是純文本類型的文件。
下面的手鏈形象地展示了 Shell 在運維工作中的地位:
運維“手鏈”的組成:每顆“珍珠”都是一項服務(wù),將珍珠穿起來的“線”就是 Shell。
Shell 腳本是實現(xiàn) Linux 系統(tǒng)自動管理以及自動化運維所必備的工具,Linux 的底層以及基礎(chǔ)應用軟件的核心大都涉及 Shell 腳本的內(nèi)容。每一個合格的 Linux 系統(tǒng)管理員或運維工程師,都應該能夠熟練的編寫 Shell 腳本,只要這樣才能提升運維人員的工作效率,減少不必要的重復勞動,為個人的職場發(fā)展奠定較好的基礎(chǔ)。
除了 Shell,能夠用于 Linux 運維的腳本語言還有 Python 和 Perl。
Perl 比 Shell 強大很多,在 2010 年以前很流行,它的語法靈活、復雜,在實現(xiàn)不同的功能時可以用多種不同的方式,缺點是不易讀,團隊協(xié)作困難。
Perl 腳本已經(jīng)成為歷史了,現(xiàn)在的 Linux 運維人員幾乎不需要了解 Perl 了,最多可以了解一下 Perl 的安裝環(huán)境。
Python 是近幾年非常流行的語言,它不但可以用于腳本程序開發(fā),也可以實現(xiàn) Web 程序開發(fā)(知乎、豆瓣、YouTube、Instagram 都是用 Python 開發(fā)),甚至還可以實現(xiàn)軟件的開發(fā)(大名鼎鼎的 OpenStack、SaltStack 都是 Python 語言開發(fā))、游戲開發(fā)、大數(shù)據(jù)開發(fā)、移動端開發(fā)。
現(xiàn)在越來越多的公司要求運維人員會 Python 自動化開發(fā),Python 也成了運維人員必備的技能,每一個運維人員在熟悉了 Shell 之后,都應該再學習 Python 語言。
Shell 腳本的優(yōu)勢在于處理偏操作系統(tǒng)底層的業(yè)務(wù),例如,Linux 內(nèi)部的很多應用(有的是應用的一部分)都是使用 Shell 腳本開發(fā)的,因為有 1000 多個 Linux 系統(tǒng)命令為它作支撐,特別是 Linux 正則表達式以及三劍客 grep、awk、sed 等命令。
對于一些常見的系統(tǒng)腳本,使用 Shell 開發(fā)會更簡單、更快速,例如,讓軟件一鍵自動化安裝、優(yōu)化,監(jiān)控報警腳本,軟件啟動腳本,日志分析腳本等,雖然 Python 也能做到這些,但是考慮到掌握難度、開發(fā)效率、開發(fā)習慣等因素,它們可能就不如 Shell 腳本流行以及有優(yōu)勢了。對于一些常見的業(yè)務(wù)應用,使用 Shell 更符合 Linux 運維
簡單、易用、高效的三大原則。
Python 語言的優(yōu)勢在于開發(fā)
復雜的運維軟件、Web 頁面的管理工具和 Web 業(yè)務(wù)的開發(fā)(例如 CMDB 自動化運維平臺、跳板機、批量管理軟件 SaltStack、云計算 OpenStack 軟件)等。
我們在開發(fā)一個應用時,應該根據(jù)業(yè)務(wù)需求,結(jié)合不同語言的優(yōu)勢以及自己擅長的語言來選擇,揚長避短,從而達到高效開發(fā)、易于自己維護的目的。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流