Python中運維相關的面試題

個人感覺——這個就是不管你做什麼的,都會涉及到運維的一些問題

1.什麼是Docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

2.Docker與虛擬機比較

作爲一種輕量級的虛擬化方式,Docker在運行應用上跟傳統的虛擬機方式相比具有顯著優勢:

Docker容器很快,啓動和停止可以在秒級實現,這相比傳統的虛擬機方式要快得多。
Docker容器對系統資源需求很少,一臺主機上可以同時運行數千個Docker容器。
Docker通過類似Git的操作來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。
Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率。

3.Docker構架

Docker使用C/S架構,Client 通過接口與Server進程通信實現容器的構建,運行和發佈。client和server可以運行在同一臺集羣,也可以通過跨主機實現遠程通信。

4.Docker核心概念

鏡像(image)
Docker 鏡像(Image)就是一個只讀的模板。

例如:一個鏡像可以包含一個完整的操作系統環境,裏面僅安裝了 Apache 或用戶需要的其它應用程序。鏡像可以用來創建 Docker容器,一個鏡像可以創建很多容器。Docker提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那裏下載一個已經做好的鏡像來直接使用。

倉庫(repository)
倉庫(Repository)是集中存放鏡像文件的場所。

有時候會把倉庫和倉庫註冊服務器(Registry)混爲一談,並不嚴格區分。實際上,倉庫註冊服務器上往往存放着多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標籤(tag)。

倉庫分爲公開倉庫(Public)和私有倉庫(Private)兩種形式。
最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。國內的公開倉庫包括 時速雲 、網易雲 等,可以提供大陸用戶更穩定快速的訪問。當然,用戶也可以在本地網絡內創建一個私有倉庫。

當用戶創建了自己的鏡像之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了。

Docker 倉庫的概念跟 Git 類似,註冊服務器可以理解爲 GitHub 這樣的託管服務。

容器(container)
Docker 利用容器(Container)來運行應用。

容器是從鏡像創建的運行實例。它可以被啓動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個簡易版的 Linux環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序。

容器的定義和鏡像幾乎一模一樣,也是一堆層的統一視角,唯一區別在於容器的最上面那一層是可讀可寫的。

5.Nginx負載均衡

Nginx一般作爲反向代理服務器來實現反向代理來轉發處理請求,同時也可以作爲靜態資源服務器來加快靜態資源的獲取和處理。

反向代理是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個服務器。客戶端是無感知代理的存在的,反向代理對外都是透明的,訪問者者並不知道自己訪問的是一個代理。因爲客戶端不需要任何配置就可以訪問。

作用:保證內網的安全,可以使用反向代理提供WAF功能,阻止web攻擊;
負載均衡,通過反向代理服務器來優化網站的負載

具體搭建:在阿里雲Centos上配置nginx+uwsgi+負載均衡配置

6.Nginx架構

在這裏插入圖片描述

Nginx採用多進程方式,一個Master與多個Worker進程。客戶端訪問請求通過負載均衡配置來轉發到不同的後端服務器依次來實現負載均衡。

7.Nginx負載均衡策略

Nginx負載均衡策略主要有 輪詢,加權輪詢,最少連接數以及IP Hash。

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

8.Supervisor

是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統。

它可以很方便的監聽、啓動、停止、重啓一個或多個進程。
用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死後,會自動將它重新拉起,很方便的做到進程自動恢復的功能,不再需要自己寫shell腳本來控制。

說白了,它真正有用的功能是倆個將非daemon(守護進程)程序變成deamon方式運行對程序進行監控,當程序退出時,可以自動拉起程序。

但是它無法控制本身,就是daemon的服務。

具體安裝和配置流程參照 在阿里雲Centos7.6上部署Supervisor來監控和操作各類服務

9.Fastdfs

FastDFS是一個開源的分佈式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、視頻網站等等。可以說它就是爲互聯網而生,爲大數據而生的。

FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。

跟蹤器主要做調度工作,在訪問上起負載均衡的作用。
存儲節點存儲文件,完成文件管理的所有功能:存儲、同步和提供存取接口
FastDFS同時對文件的meta data進行管理。跟蹤器和存儲節點都可以由多臺服務器構成。跟蹤器和存儲節點中的服務器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有服務器都是對等的,可以根據服務器的壓力情況隨時增加或減少。
在這裏插入圖片描述

1 解決海量存儲,同時存儲容量擴展方便。

2 解決文件內容重複,如果用戶上傳的文件重複(文件指紋一樣),那麼系統只有存儲一份數據,值得一提的是,這項技術目前被廣泛應用在網盤中。

3 結合Nginx提高網站讀取圖片的效率。

具體搭建:

利用Docker來搭建分佈式文件系統FastDfs

通過python交互:python3.7.3操作FastDfs來進行文件操作

希望能幫助大家,順利早日找到工作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章