當前位置:招聘信息大全網 - 獵聘網招聘 - linux入門先學什麽?

linux入門先學什麽?

恭喜妳選擇學習Linux。妳可能即將踏上Linux的工作之旅。在離開之前,我先給大家展示壹下Linux的壹切,以及它的運維。from-微信官方賬號:馬可linux運維

由於其高效、易裁剪、應用廣泛等優勢,Linux已經成為高端服務器的主要操作系統,處於不可替代的地位。Linux可以安裝在各種計算機硬件設備上,如手機、平板電腦、路由器、電子遊戲控制臺、臺式電腦、大型機和超級計算機。隨著Linux在中國市場的快速發展,中國Linux人才短缺問題逐漸凸顯。Linux人才招聘也成為目前最熱門的招聘之壹。

首先,linux是壹個非常非常大的概念。不可能全部吃完。理想情況下,如果妳了解linux,妳可以做所有的工作。個人比較喜歡說自己想做什麽工作,需要學習linux的哪壹部分。

根據個人經驗,linux有哪些常用領域,對應什麽工作?

1)linux應用。嚴格來說,這部分不是linux,只是運行在linux上的壹個應用,比如web、網絡、IT等。職業包括系統研發、後臺開發、服務器性能優化、運維等。

2)linux定制。這部分涉及linux版本的用戶包比較多,內核會涉及壹些,主要是各種商業linux定制和服務。比如redhat,很多都是外企,大部分在國內招聘現場支持。

3)linux內核開發。這部分主要是linux內核驅動的開發。幾乎全部都是編程工作。主要是芯片公司和使用芯片的產品開發公司。前者像英特爾和marvell,後者像中興華為。

4)安卓衍生品。因為android包含了tizen使用的linux內核,原因和3壹樣。所以手機芯片公司和手機開發公司也是linux開發者的雇主之壹。例如,高通、TI等。

壹、Linux運維的主要工作內容

Linux運維是眾多崗位中需求量最大,薪資最高的崗位。本文以Linux運維這個職業為重點,由專門從事Linux運維學習和職業發展的機構馬可教育和愛好者共同撰寫。

互聯網Linux運維工作,以服務為中心,以穩定、安全、高效為三個基本點,確保公司互聯網業務能夠為用戶提供7×24小時的優質服務。運維職責涵蓋產品從設計到發布、運維、變更升級、下線的全生命周期。

運維的職責在整個產品生命周期中是重要而廣泛的,但運維工程師的職責並不僅限於這部分工作。他們還需要總結工作中遇到的問題,提煉相關的技術方向,開發相關的工具和平臺來支持/優化業務發展,提高運維效率。相關技術工作主要包括:

服務監控技術:包括監控平臺的開發和應用,服務監控的準確性、實時性和全面性的保證。

服務故障管理:包括服務故障方案設計、方案自動執行、故障總結並反饋到產品/系統設計層面進行優化,提高產品穩定性。

服務能力管理:測量服務能力,規劃服務機房的新建、擴建和遷移。

服務性能優化:全方位,包括網絡優化、操作系統優化、應用優化、客戶端優化等。,提升服務性能和響應速度,提升用戶體驗。

全局業務流量調度:接入業務流量,根據容量和業務狀態分配各機房的流量。

服務任務調度:服務的各種已調度/未調度任務的調度觸發和狀態監控。

服務安全:包括服務訪問安全、攻擊防範、權限控制等。

數據傳輸技術:包括p2p等各種傳輸技術的研發和應用,長距離大數據傳輸等問題的解決。

服務自動發布和部署:部署平臺/工具的研發和平臺/工具的使用,安全高效地發布服務。

服務集群管理:包括服務器管理和服務的大規模集群管理。

服務成本優化:盡可能減少用於服務運營的資源,降低服務運營成本。

數據庫管理(DBA):通過設計、開發和管理高性能數據庫集群,數據庫服務更加穩定、高效且易於管理。

平臺開發:docker等平臺的開發和管理,以及服務訪問技術。

分布式存儲平臺的開發優化與訪問

以此類推,所有與服務質量、效率、成本、安全相關的工作,所涉及的技術、組件、工具、平臺都屬於運維的技術範疇。做好每壹個技術方向,完成相應組件、工具、平臺的研發,可以對運維責任的履行起到積極作用,對業務發展起到關鍵作用。

二、Linux運維工作分類

運維有很多方向。隨著業務規模的不斷發展,越是成熟的互聯網公司,運維崗位會越細致。現在很多大的互聯網公司,初期只有系統運維,隨著模式和服務質量的要求,逐漸細分了工作。壹般來說,運維團隊的工作分類(見圖1-1)和職責如下。

圖1-1運維團隊工作分類

2.1-應用運維(SRE):應用運維負責在線服務變更、服務狀態監控、服務容災和數據備份,並對服務進行日常檢查和應急處理。其職責如下:設計審查、服務管理、資源管理、日常檢查、計劃管理和數據備份。

2.2-系統運維(SYS):負責IDC、網絡、CDN、基礎服務(LVS、NTP、DNS)建設;負責資產管理、服務器選型、交付和維護,職責如下:IDC數據中心建設、網絡建設、LVS負載均衡和SNAT建設、CDN規劃和建設、服務器選型、交付和維護、內核選型和OS相關維護、資產管理和基礎服務建設。

2.3-數據庫運維(DBA):數據庫運維負責數據存儲方案設計、數據庫表設計、索引設計和SQL優化,以及數據庫的變更、監控、備份和高可用性設計。具體工作內容如下:設計評審、容量規劃、數據備份和容災、數據庫監控、數據庫安全、數據庫高可用和性能優化、自動化系統建設、運維研發、運維平臺和監控。

2.4-運維安全(SEC):運維安全負責網絡、系統和業務安全加固,定期安全掃描和滲透測試,安全工具和系統研發,安全事件應急處理。工作內容包括:安全體系建立、安全培訓、風險評估、安全建設、安全合規和應急響應。

三、Linux運維日常使用軟件及技巧

運維工程師使用的運維平臺和工具包括:

Web服務器:apache,tomcat,nginx,ligstat,top,tcpdump,last。

運維以技術為基礎,通過技術支持產品提供更高質量的服務。運維工作的職責及其在業務中的地位決定了運維工程師需要具備更廣泛的知識和深入的技術能力:

紮實的計算機基礎知識,包括計算機系統架構、操作系統、網絡技術等。

壹般應用需要了解操作系統、網絡、安全、存儲、CDN、DB等。,並知道它們的相關原理;

編程能力,從運維工具的開發到大型運維系統/平臺的開發,都需要良好的編程能力;

數據分析能力:能夠對系統運行的數據進行整理分析,發現問題,找到解決方案;

豐富的系統知識,包括系統工具、典型系統架構、常用平臺選擇等。

綜合運用工具和平臺的能力;

四、Linux操作系統的開發過程和維護工作

前期運維團隊主要進行數據中心建設、基礎網絡建設、服務器采購和服務器安裝交付,人員較少。它很少涉及在線服務的變更、監控和管理。這個時候運維團隊更多的是在扮演基礎設施的角色,提供壹個簡單可用的網絡環境和系統環境。

隨著業務產品的逐漸成熟,對服務質量有了更高的要求。此時,運維團隊還會承擔壹些服務器監控工作,負責與業務邏輯無關的4/7層運維工作,如LVS、Nginx等。這時候的服務變更更多的是壹個壹個的手工操作,或者有壹些簡單的批量腳本。監控的重點更多的是服務器狀態和資源使用情況,對服務應用狀態的監控幾乎很少,更多的是使用Nagios、Cacti等開源系統進行監控。

由於業務規模和復雜度的不斷增加,運維團隊將逐漸分為應用運營和系統運維兩部分。應用運維開始接手線上業務,逐步開展服務監控、數據備份、服務變更等工作。隨著服務的深入,應用運維工程師有能力開始對服務進行壹些簡單的優化。同時,為了應對每天大量的服務變更,我們也開始編寫各種運維工具,對於某些服務可以很容易的批量變更。隨著業務規模的增大,由於容量規劃不足或抗風險能力較弱導致的基礎設施故障越來越多,迫使運維人員將更多的精力投入到多數據中心的容災和計劃管理上。

業務規模達到壹定程度後,開源監控系統在性能和功能上已經不能滿足業務需求;大量的服務變更和復雜的服務關系,通過手工記錄和工具變更,在效率和準確性方面已經不能滿足業務需求。在安全方面,也出現了大大小小的各種事件,迫使我們將更多的精力投入到安全防禦上。逐漸的,運維團隊形成了前面說的五大工作分類,每個分類都需要專門的人才。此時系統運維更側重於基礎設施建設和運維,提供穩定高效的網絡環境,將服務器等資源交付給應用運維工程師。應用運維更側重於服務運行狀態和效率。數據庫運維屬於應用運維的精細化,更側重於數據庫領域的自動化、性能優化和安全防禦。運維R&D和運維安全提供各種平臺和工具,進壹步提高運維工程師的工作效率,讓業務服務運行更加穩定、高效、安全。

我們把運維的發展過程分為四個階段,如圖1-2所示。

圖1-2運維開發流程

人工管理階段:業務流量不大,服務器數量相對較少,系統復雜度不高。對於日常的業務管理操作,大家更多的是逐個登錄服務器進行手工操作,屬於自己的操作方式,缺乏必要的操作標準和流程機制,比如各種業務目錄環境。

工具批量運營階段:隨著服務器規模和系統復雜度的增加,人工操作模式已經不能滿足快速業務發展的需要。所以運維人員逐漸開始使用批量操作工具,針對不同的操作類型出現了不同的腳本程序。但是,每個團隊都有自己的工具,每次操作需求發生變化時都需要進行調整。這主要是因為對環境和操作沒有足夠的規範,導致可編程處理能力較弱。至此,雖然效率提高了壹部分,但很快就遇到了瓶頸。操作的質量並沒有得到很大的提升,甚至可能因為批量執行而出現更大規模的問題。我們開始建立大量的流程規範,比如審核機制,先上線觀察壹個服務器10分鐘再繼續後面的操作,壹次升級完成後觀察至少20分鐘。這些主要靠人來監督和執行,但在實際過程中,往往執行不到位,降低了工作效率。

平臺管理階段:這個階段對運維效率和誤操作率有更高的要求,所以我們決定開始搭建運維平臺,然後通過平臺承載標準和流程,解放人力,提高質量。此時抽象出服務變更動作,形成操作方法、服務目錄環境、服務運行方式等統壹標準。比如程序的起止界面必須包含啟動、停止、重載。通過平臺限制操作流程,比如上述某服務器在線觀察10分鐘。平臺中設置了強制暫停檢查點。首臺服務器運行完成後,運維人員需要填寫相應的檢查點,才能繼續後續的部署動作。

系統自調度階段:服務數量更大,服務關聯更復雜,運維平臺多種多樣,原有的批量操作轉化為平臺操作的方式已經不適合,服務變更需要更高層次的抽象。將每臺服務器抽象成壹個容器,由調度系統根據資源使用情況將服務調度部署到合適的服務器上,從而自動完成與周邊運維系統的聯動,如監控系統、日誌系統、備份系統等。通過自調度系統,可以根據業務運行動態擴展容量,自動處理常見的業務故障。運維人員的工作也將推進到產品設計階段,協助R&D人員改造服務,使之能夠接入自助調度系統。

在運維的整個開發過程中,希望所有的工作都實現自動化,以減少人的重復性工作和知識傳遞的成本,讓我們的運維交付更高效、更安全,讓我們的產品運行更穩定。對於故障處理,也希望從事後處理轉變為早期發現,從人工處理轉變為系統自動容災。

五、2018 Linux運維必須掌握的前沿技能

這是技術界正在發生的深刻變革的冰山壹角,那麽問題來了?作為傳統運維如何轉型?

這裏有壹個小建議:壹般來說,妳需要學習這四個部分:

自動化操作和維護(Ansible、Puppet、Saltstack等)。)

Devops(Docker,K8s,Jenkins,吉拉等。),

雲服務技術(虛擬化、OpenStack、AWS以及阿裏雲中的各種產品服務架構等。).

大蟒