目錄[隱藏][顯示]
- 1. DevOps 是什麼意思?
- 2.列出DevOps的一些原則?
- 3. 列出一些最流行的 DevOps 工具?
- 4. 什麼是基礎設施即代碼?
- 5. 解釋 DevOps 生命週期?
- 6、什麼是配置管理?
- 7. DevOps 的主要優勢是什麼?
- 8. 使用版本控制系統有什麼好處?
- 9. 什麼是 git stash?
- 10. 什麼是 CI/CD?
- 11. 什麼是 CI/CD 管道?
- 12. 什麼是持續測試?
- 13. DevOps 與敏捷有何不同?
- 14. 您能否列舉幾個用於衡量 DevOps 成功的關鍵績效指標 (KPI)?
- 15 列舉幾個用於實施 DevOps 的雲平台?
- 16. AWS 與 DevOps 有什麼關係?
- 17. 在 AWS DevOps 中,CodePipeline 到底是什麼?
- 18. AWS DevOps 中的 CodeBuild 到底是什麼?
- 19. 在 AWS DevOps 的背景下,AWS Lambda 到底是什麼?
- 20. 哪些編程框架與 AWS CodeBuild 兼容?
- 21. 在 AWS DevOps 中,什麼是微服務?
- 22. Amazon QuickSight 在 AWS DevOps 中扮演什麼角色?
- 23. 在 AWS DevOps 中,Kubernetes 容器如何通信?
- 24. AWS DevOps 中的混合雲是什麼?
- 25. 什麼是 Ansible?
- 26.硒的用途是什麼?
- 27. 什麼是 Selenium Grid,它有什麼作用?
- 28. 什麼是 Selenium IDE?
- 29. 在 DevOps 中,Puppet 是什麼意思?
- 30. 為了讓 Puppet 更強大,你使用了哪些開源或社區工具?
- 31.解釋Jenkins的主從架構?
- 32. 如何將 Jenkins 從一台服務器移動或複製到另一台服務器?
- 33. 提幾個有用的 Jenkins 插件?
- 34. 什麼是 Nagios?
- 35. Nagios 是如何工作的?
- 36. Nagios 日誌服務器到底是什麼?
- 37. Nagios 中的狀態跟踪是什麼?
- 38. 究竟什麼是容器?
- 39. Docker 鏡像到底是什麼?
- 40. Docker 容器到底是什麼?
- 41. Dockerfile 的用途是什麼?
- 42. 什麼是“結對編程”?
- 43. 什麼是廚師?
- 44. 藍/綠部署模式到底是什麼?
- 45.什麼是Memcached?
- 46. Memcached有什麼特點?
- 47. 列舉幾個有用的網絡監控工具?
- 48. 建立 DevOps 管道有哪些障礙?
- 49. Secure Shell 的目的究竟是什麼?
- 50. CBD 到底是什麼?
- 結論
開發和運營是 DevOps 的代表。
這是一種新型的軟件開發方式,它改變了軟件的創建和傳播方式。 DevOps 技術將頻繁的增量升級優先於不頻繁的大型功能集。
DevOps 有助於 IT 運營。
在 DevOps 之前,IT 人員必須處理許多問題。
結果,IT 部門受到了一些不受歡迎的審查。 隨著 DevOps 的引入,這一切都發生了變化,它允許 IT 運營與其他業務部門交流他們的擔憂,從而提高了 IT 運營與其他部門之間的透明度和合作。
如果您已經開始為 IT 業務中的開發和運營職責做準備,那麼您已經意識到這是一個很難進入的職業。
您是否正在考慮從事 DevOps 的職業?
如果是這種情況,那麼您來對地方了。
以下是一些最常見的 DevOps 面試問題和答案,可幫助您為行業中的 DevOps 職業生涯做好準備。
1. DevOps 是什麼意思?
開發和運營 (DevOps) 是兩個經常互換使用的術語。 這是一種軟件工程方法,專注於將開發和運營團隊聚集在一起,在各個層面實現項目自動化。
這種技術使自動化項目服務管理變得簡單,從而可以實現運營目標,並且可以更好地理解生產環境中使用的技術堆棧。
該策略基於敏捷方法,強調團隊溝通、資源管理和協作。
2.列出DevOps的一些原則?
DevOps 基於以下原則:
- 持續部署
- 自動化
- 監控
- 安全性
- 基礎設施即代碼
3. 列出一些最流行的 DevOps 工具?
最常用的 DevOps 工具是:
- 混帳
- Ansible
- 碼頭工人
- 硒
- 木偶
- 廚師
- 詹金斯
4. 什麼是基礎設施即代碼?
基礎架構即代碼或 IaC 是一種基於軟件的 IT 技術,用於編碼和維護底層 IT 基礎架構。 基礎設施即代碼無需手動配置單獨的硬件設備和操作系統,而是允許開發人員和運營團隊自動管理、監控和提供資源。
5. 解釋 DevOps 生命週期?
DevOps 分為六個階段。 它的階段遵循一定的周期。
然而,沒有一個階段是由邊界劃分的,即使前一個階段已經完全結束,也沒有一個階段開始。 現在讓我們仔細看看 DevOps 週期階段。
- 規劃 - 的 DevOps 生命週期的初始部分包括規劃和軟件開發。 這個階段需要徹底理解項目,以實現其成員的最終工作目標。 這也為開發和運營的各個階段提供了支持。 組織接受有關工具和指標的培訓也很重要,以便清楚地了解項目的管理情況。
- 發展 - 期間 在這個階段,項目是通過設計基礎設施、開發代碼、建立測試或使用自動化過程來構建的。 在這個階段,證據至關重要。 為了管理應用程序和數據活動,開發人員將代碼保存在代碼管理器中,以便查看、版本控制等。
- 持續集成——這個 step 自動化驗證和測試機制。 這具有一個獨特的功能,可確保在將開發環境與其他應用程序相結合的服務中發布之前正確配置開發環境。
- 自動化部署——DevOps 鼓勵使用工具和腳本來自動化部署,最終目標是通過激活功能來自動化整個過程。 雲的出現,作為一種強制從有限基礎設施管理轉向永久成本優化管理的代碼,是這一時期最重要的組成部分。
- 操作 - 全部 由於基礎架構的動態特性,DevOps 操作通常在軟件的整個生命週期中連續執行。 借助該平台,轉換、可用性和可擴展性都成為可能。
- 監控——這個 是 DevOps 過程中的一個連續階段。 DevOps 跟踪和分析顯示應用程序當前狀態的數據。
6、什麼是配置管理?
配置管理 (CM) 是一個以系統方式處理更改的過程,以便始終保持系統的完整性。
這需要一套規則、策略、流程和工具,用於評估、管理和監控變更提案,以及保存必要的文檔。 CM 通過提供行政和技術指導,為項目的設計和開發做出貢獻。
7. DevOps 的主要優勢是什麼?
以下是 DevOps 的主要優勢:
技術優勢
- 不那麼難解決的問題
- 持續交付軟件
- 更早地發現缺陷並更快地糾正缺陷。
對公司的好處
- 穩定的運行環境
- 功能交付更快。
- 團隊之間的協作和溝通得到了改善。
8. 使用版本控制系統有什麼好處?
- VCS 巧妙地組織了所有以前的版本和變體。
- 所有員工都可以隨時使用 版本控制 系統(VCS)。 它還允許在一個通用版本中進行的所有修改合併在一起。
- 它旨在通過允許他們在文本文件上進行協作來幫助許多人,使多台機器之間的共享變得非常簡單。
- 這對於需要大量重新起草和編輯的論文至關重要,因為它為重新起草和更新最終版本創建了一條紙跡。
- 它允許所有團隊成員查看整個項目歷史記錄,使我們能夠在中央服務器發生故障時利用任何團隊成員的存儲。
9. 什麼是 git stash?
git stash 命令臨時保存工作目錄中的更改。 這為開發人員提供了一個乾淨的工作環境。 然後他們可以使用 git 過程來合併修改。 執行此命令時,跟踪文件中的更改將合併到工作目錄中。 在 git 目錄下,可以多次使用 git stash 命令。 它是 git 的存儲庫。
10. 什麼是 CI/CD?
持續集成 (CI) 是一種開發方法,其中開發人員必須每天多次將代碼集成到一個公共存儲庫中。 然後,自動構建會驗證每次簽入,從而使團隊能夠及早發現問題。
持續部署 是一種軟件工程技術,它使用自動部署來提供產品功能。 它幫助測試人員確定代碼庫修改是否正確和穩定。
11. 什麼是 CI/CD 管道?
軟件交付過程通過 CI/CD 管道實現自動化。 它生成代碼、進行測試並幫助您正確部署新的軟件版本。 CI/CD 管道消除了人為錯誤,為開發人員提供反饋,並支持快速的產品迭代。 CI/CD 管道自動化和監控軟件產品的開發生命週期。 它涵蓋了從集成和測試到交付和部署的整個過程。 CI/CD 管道指的是這些相互關聯的活動。
12. 什麼是持續測試?
持續測試是作為軟件交付管道的一部分執行自動化測試的過程,以提供有關最新版本中業務風險的實時反饋。 每次構建都以這種方式持續測試,以避免在軟件交付生命週期中的步驟切換困難,並允許開發團隊獲得快速反饋。 這會極大地提高開發人員的工作效率,因為在每次更新和項目重建後不再需要重新運行所有測試。
13. DevOps 與敏捷有何不同?
DevOps 是一種方法或文化,它允許開發和運營團隊一起工作以構建成功的產品。 SDLC 週期的持續開發、集成、測試、部署和監控是可用於完成此任務的一些方法。 對於成功的產品發布,DevOps 旨在彌合開發人員和運營人員之間的差距。
敏捷是一種軟件開發過程,它強調增量、迭代和快速的軟件產品發布,同時結合客戶輸入。 這種方法彌合了客戶和開發人員對需求的了解之間的差距。
14. 您能否列舉幾個用於衡量 DevOps 成功的關鍵績效指標 (KPI)?
關鍵績效指標,或 KPI,是一種衡量某件事做得如何的指標。 以下是一些最常用的用於衡量 DevOps 成功的 KPI:
- 客戶票
- 成功部署頻率和時間
- 錯誤/失敗率
- 失敗的部署
- 應用程序使用情況、性能和流量
- 自動化測試用例通過百分比。
- 應用程序可用性
- 更改音量請求
- 檢測時間 (MTTD)
- 恢復時間 (MTTR)
15 列舉幾個用於實施 DevOps 的雲平台?
以下是一些最流行的用於 DevOps 實施的雲計算平台:
- 亞馬遜網絡服務
- Google雲端
- 天藍
16. AWS 與 DevOps 有什麼關係?
Amazon Web Services (AWS) 是一個雲服務平台,它使 DevOps 原則易於實施。
給出的解決方案將極大地幫助團隊管理複雜的設置,幫助工程師成功利用 DevOps 提供的高速工作。
17. 在 AWS DevOps 中,CodePipeline 到底是什麼?
AWS 提供 CodePipeline 作為持續集成和交付的服務。
它還包括對基礎架構的更改。 通過用戶定義的已建立的發布模型協議,每次構建後的構建、測試和部署等操作變得相對簡單。
CodePipeline 保證新的軟件升級和功能能夠可靠、快速地交付。
18. AWS DevOps 中的 CodeBuild 到底是什麼?
AWS 提供 CodeBuild,這是一種完全託管的內部構建服務,可幫助進行源代碼編譯、測試和生成可立即部署的軟件包。 無需管理、分配或供應,因為構建服務器是自動擴展的。
構建操作在服務器上並行執行,最大的好處是不必讓任何構建在隊列中等待。
19. 在 AWS DevOps 的背景下,AWS Lambda 到底是什麼?
AWS Lambda 是一種計算服務,允許客戶在不明確預置或管理服務器的情況下運行程序。
用戶可以使用 AWS Lambda 為其應用程序或服務運行任何代碼,而無需事先集成。 這就像提交一段代碼並讓 Lambda 處理運行和發展它所需的所有其他事情一樣簡單。
20. 哪些編程框架與 AWS CodeBuild 兼容?
AWS CodeBuild 包括 Python、Ruby、Java、Android、Docker、Node.js 和 Go 環境。
通過初始化和生成 Docker 映像,還可以創建定制環境。 然後將其推送到 EC2 或 DockerHub 註冊表。 這是後來用於引用用戶構建項目中的圖片。
21. 在 AWS DevOps 中,什麼是微服務?
微服務架構是將單個應用程序設計為服務集合的技術。
這些服務中的每一個都有自己的流程結構,並通過定義的接口與其他服務進行通信,該接口既輕量級又易於使用。 這種通信的大部分是通過 HTTP 和 API 查詢完成的。
22. Amazon QuickSight 在 AWS DevOps 中扮演什麼角色?
Amazon QuickSight 是一種 AWS 業務分析工具,可讓您輕鬆創建可視化、進行分析並從結果中獲取業務洞察。
它是一項快節奏且完全基於雲的服務,為用戶提供了多種發現和使用它的選項。
23. 在 AWS DevOps 中,Kubernetes 容器如何通信?
在 Kubernetes 中,一個稱為 pod 的項目用於在容器之間進行映射。
在任何給定時間,一個 pod 都可以容納多個容器。 由於 pod 的網絡層次結構扁平,覆蓋網絡上的這些 pod 之間的通信很簡單。
24. AWS DevOps 中的混合雲是什麼?
混合雲是一種結合了私有云和公共雲的計算環境。
可以通過在雲 VPN 和本地網絡之間插入 VPN 隧道來構建混合雲。 AWS Direct Connect 還可以簡單地繞過 Internet 並在 VPN 和數據中心之間安全地連接。
25. 什麼是 Ansible?
Ansible 是一個跨平台的計算機支持自動化程序,使用簡單但功能非常強大。
它專為 IT 專業人員設計,他們將其用於應用程序部署、工作站和服務器升級、雲配置、配置管理、服務內編排以及幾乎所有其他方面 系統管理員 每週或每天執行一次。
Ansible 安裝簡單,因為它不需要任何代理軟件或其他安全基礎設施。
26.硒的用途是什麼?
Selenium 在 DevOps 中用於持續測試。 該工具側重於功能和回歸測試。
27. 什麼是 Selenium Grid,它有什麼作用?
Selenium Grid 的目的是在多個平台和瀏覽器上運行相同或不同的測試腳本,以便進行分佈式測試。 它有助於在各種場景中進行測試,並具有減少執行時間的能力。
28. 什麼是 Selenium IDE?
Selenium 集成開發環境 (IDE) 為 Selenium 腳本開發提供了一站式服務。 它也可作為 Firefox 擴展使用,可用於調試、更改和記錄測試。
Selenium IDE 包含整個 Selenium Core,允許我們在運行它們的相同上下文中重放和記錄測試。 由於快速轉移指令的靈活性和自動完成支持,Selenium IDE 是編寫 Selenium 測試的最佳環境,獨立於我們喜歡的測試類型。
29. 在 DevOps 中,Puppet 是什麼意思?
這是一個用於自動化管理職責的配置管理程序。 Puppet 採用主從架構,其中兩個實體通過加密通道進行通信。 系統管理員負責各種重複的職責,包括安裝和配置服務器。
可以編寫腳本來自動執行此類活動,但是當基礎設施龐大時,這會變得很困難。 配置管理是一個很好的解決方法。 Puppet 幫助配置、部署和管理服務器。
它不僅使此類重複性工作變得更容易,而且總體上還節省了大量時間。
30. 為了讓 Puppet 更強大,你使用了哪些開源或社區工具?
Jira 用於跟踪更改和請求,我們通過內部程序對其進行管理。
然後,按照最佳實踐,我們利用 Git 和 Puppet 的代碼管理器應用程序來管理 Puppet 代碼。 此外,我們使用 Jenkins 的持續集成管道和燒杯測試框架來執行我們所有的 Puppet 更新。
31.解釋Jenkins的主從架構?
- 每次有代碼提交時,Jenkins master 都會從遠程 GitHub 存儲庫中檢索代碼。
- 它將任務分配給所有 Jenkins 奴隸。
- 從站根據 Jenkins 主站的請求執行、構建、測試和創建測試結果。
32. 如何將 Jenkins 從一台服務器移動或複製到另一台服務器?
我將首先將作業目錄從舊服務器轉移到新服務器。 還有其他可用的選項,我在下面列出:
可以:
- 只需將匹配的作業目錄從一個 Jenkins 安裝轉移到另一個安裝即可移動作業。
- 使用新名稱創建作業目錄的克隆以復制現有作業。
- 可以重命名目錄以重命名現有任務。 如果重命名作業,任何其他嘗試調用重命名作業的作業也必須重命名。
33. 提幾個有用的 Jenkins 插件?
我在下麵包含了一些基本插件:
- 複製神器
- 加入
- 綠球
- Maven 2 項目
- 亞馬遜EC2
- HTML 發布者
34. 什麼是 Nagios?
監控工具之一是 Nagios。 在 DevOps 文化中,它用於持續監控系統、應用程序、服務和業務流程等。
如果發生故障,Nagios 可以通知技術員工,讓他們在業務運營、最終用戶或客戶受到影響之前開始故障排除。
您不必解釋為什麼未檢測到的基礎設施故障會影響您公司使用 Nagios 的底線。
35. Nagios 是如何工作的?
Nagios 是一個基於服務器的監控系統,作為守護進程或服務運行。 Nagios 定期在同一台服務器上執行插件,它們會聯繫您網絡或 Internet 上的主機或服務器。 Web 界面可用於查看狀態信息。
如果發生任何事情,您也可以通過電子郵件或短信收到通知。 Nagios 守護進程像調度程序一樣工作,在特定時間執行程序。 它會保存這些腳本的輸出並在輸出更改時運行新的。
36. Nagios 日誌服務器到底是什麼?
Nagios 日誌服務器使查看日誌數據變得更加容易。 設置警報、在可能的危險出現時發出警告、簡單地搜索日誌數據以及快速審核任何系統都是 Nagios Log Server 擅長的事情。
我們可以使用 Nagios Log Server 在一個地方以高可用性接收所有日誌數據。
37. Nagios 中的狀態跟踪是什麼?
它用於跟踪事物。 當為主機或服務啟用跟踪時,Nagios 將密切關注該主機或服務,並在檢查結果輸出中記錄它注意到的任何更改。
你也可以說,“這對後續檢查日誌文件很有幫助”,這取決於你和麵試官的對話。 主機或服務檢查的結果僅在主機或服務自上次檢查後已更改狀態的典型情況下才會報告。”
38. 究竟什麼是容器?
容器用於創建從開發人員的筆記本電腦到測試環境,再到生產環境的一致計算環境。 容器是包含整個運行時環境的單個包:程序以及執行它所需的所有依賴項、庫、其他組件和配置文件。
通過容器化應用程序平台及其依賴項,消除了操作系統分佈和支持基礎設施方面的差異。
39. Docker 鏡像到底是什麼?
Docker 容器來自 Docker 鏡像。 換句話說,Docker 鏡像用於構建容器。 鏡像是使用 build 命令構建的,運行時會形成一個容器。 Docker 註冊表(例如 registry.hub.docker.com)存儲圖像。
圖像是由其他照片層構成的,因為它們可以變得相當大,從而允許在通過網絡傳輸圖像時傳遞最少量的數據。
40. Docker 容器到底是什麼?
Docker 容器包括程序及其所有依賴項,但它們與其他容器共享內核,並在主機操作系統的用戶空間中作為單獨的進程運行。 Docker 容器不需要任何特殊的基礎設施來運行:它們可以在任何機器、任何基礎設施和任何云中運行。
您可以通過生成 Docker 映像然後執行它,或者使用來自 Dockerhub 的 Docker 映像來構建 Docker 容器。 Docker 容器本質上是運行時 Docker 鏡像。
41. Dockerfile 的用途是什麼?
Docker 可以從 Dockerfile 讀取指令並自動為您生成圖像。
Dockerfile 是一個文本文件,其中包含用戶可用於從命令行創建映像的所有命令。 用戶可以使用 docker build 自動構建連續執行大量命令行指令的構建。
42. 什麼是“結對編程”?
結對編程是一種工程方法,其中兩個程序員在相同的系統、設計和代碼上進行協作。
他們堅持“極限編程”的原則。 在這種情況下,一名程序員被稱為“司機”,而另一名程序員被稱為“觀察員”,他們不斷檢查項目的進度,以發現任何進一步的困難。
43. 什麼是廚師?
它是一個強大的自動化平台,可將基礎架構轉換為代碼。 您可以使用此工具創建自動化操作的腳本。
44. 藍/綠部署模式到底是什麼?
藍綠模式是一種持續部署的應用程序發布方法,專注於將用戶流量從程序或服務的先前功能版本逐步轉換到幾乎相同的新版本——兩個版本都在生產中運行。
藍色環境代表程序的先前版本,而綠色環境代表當前版本。 生產流量將逐漸從藍色環境轉移到綠色環境,一旦完全轉移,藍色環境將僅在需要回滾的情況下保持暫停。
45.什麼是Memcached?
Memcached 是一種完全免費和開源的分佈式內存對象緩存技術。 這通常用於動態 網絡應用 通過在 RAM 中緩存數據來管理內存。 這減少了必須查詢外部源的次數。 減少數據庫負載還有助於加快動態在線應用程序的速度。
46. Memcached有什麼特點?
以下是 Memcached 最顯著的一些特性:
- 更新的對象使用 CAS 令牌存儲。
- 為了使代碼更具可讀性,使用了回調。
- 使用 GetDelayed 減少響應時間或結果所需的時間。
- 要與新客戶端一起使用,請創建一個二進制協議。
- 對於復雜數據的使用,提供了 Igbinary 數據選項。
47. 列舉幾個有用的網絡監控工具?
以下是一些最流行的網絡監控工具:
- Splunk的
- 冰加 2
- Wireshark的
- Nagios的
- 開放網管系統
48. 建立 DevOps 管道有哪些障礙?
在這個技術爆炸的時代,DevOps 提出了各種各樣的問題。 大多數時候,它與數據遷移和快速集成新功能有關。 如果數據遷移失敗,系統可能會變得不穩定,這可能會導致進一步的問題。
但是,在 CI 系統內部,這可以通過使用功能標誌來處理,這有助於增量產品發布。 這與回滾功能一起,可以幫助緩解一些問題。
49. Secure Shell 的目的究竟是什麼?
SSH 通常用於鏈接兩台計算機並遠程操作它們。 SSH 主要由運營團隊使用,因為運營團隊將處理需要遠程訪問管理系統的瑣事。
開發人員也將使用 SSH,儘管程度低於運營團隊,因為他們大部分時間都在本地系統上工作。 如前所述,DevOps 開發和運營團隊將互動和合作。
當運營團隊遇到問題並需要開發團隊的幫助時,將使用 SSH。
50. CBD 到底是什麼?
CBD,也稱為基於組件的創建,是一種新的產品開發方法。
這種策略的開發人員不是從頭開始,而是總是尋找現有的定義良好、經過測試和確認的組件來組合和組裝成產品。
結論
頂級 DevOps 面試問題和答案現已完成。 DevOps 不僅對加快軟件開發至關重要,而且對提高軟件質量也至關重要。
DevOps 帶來了全新的態度、敏捷的技術和智能技術,所有這些都可以共同實現這一目標。 DevOps 還可以幫助檢測代碼錯誤、改善團隊溝通並降低軟件開發的總成本。
發表評論