行業技巧、駭客、商業機密、備忘單、最佳實踐,無論你怎麼稱呼它們。每個行業都有它們,任何堅持足夠長時間的人都會建立一套技術和精心調整的工具來在工作中脫穎而出。
有些事情只是需要時間來掌握。我的父親是一位退休的建築商,他可以在不到三個小時的時間內鋪設一個中等大小的浴室,而我則需要一整天的時間來進行灌漿工作。經驗對於某些技能至關重要,但也有一些技巧不需要多年的練習即可獲得。
DevOps 也不例外。成為神級 DevOps 專家並沒有捷徑,只要投入數年時間,也許就能實現這個目標。話雖如此,有一些行業技巧、生活小技巧和有用的工具肯定會立即提高您的工作效率。
這是我的不全面的生活竅門列表,保證可以讓任何 DevOps 工程師的生活變得更輕鬆。
此列表分為:
工具🧰
技能🤸
習慣🔁
腳本、配置和擴充 💻
您是否知道,如果您真的想在德國引起某人的注意, 發送傳真是您最好的選擇?
此外,直到今年為止,日本政府機構仍在使用軟碟。
了解自己所處的環境對於選擇最適合工作的工具至關重要。儘管重要的是不要沉迷於擁有市場上最好、最新或最閃亮的工具。對於 DevOps 工程師來說,以下工具可以成為真正的遊戲規則改變者。
「你不需要成為棚子裡最鋒利的工具才能使用棚子裡最鋒利的工具」——匿名(可能是我編的)
K9s是一個基於終端的 UI,用於與 Kubernetes 叢集互動。只需很少的時間即可習慣透過該工具導航、觀察和管理即時應用程式。一旦你這麼做了,你可能就再也回不去了。 K9s 持續監控 Kubernetes 的變化,並提供許多有用的指令來與您觀察到的資源互動。
安裝連結。
tmux是一個功能強大的終端多路復用器,它透過允許會話持久性、視窗和窗格管理以及透過鍵綁定和設定檔進行自訂來提高工作效率。它支援自動化腳本,促進與共享會話的協作,並與各種 shell 和工具整合良好。
Glasskube是 Kubernetes 的開源套件管理器。它使得在 Kubernetes 上部署、更新和配置套件的速度比Helm 或 Kustomize等工具快 20 倍。受到 Homebrew 和 npm 的簡單性的啟發。您可以決定是否要使用 Glasskube UI、CLI,或直接透過 GitOps 部署套件。
如果這是您第一次聽說 Glasskube,我們正在努力Package Manager for Kubernetes
。
如果您喜歡我們的內容並希望支持我們完成這項使命,請在GitHub上給我們一顆星⭐️,我們將不勝感激。
⭐️ 在GitHub上給我們加星號🙏
Riggrep是一款功能強大的搜尋工具,以其速度、靈活性和用戶友好的輸出而聞名。它使用先進的演算法快速處理大型程式碼庫,支援廣泛的搜尋模式,並呈現清晰、突出顯示的結果。 Riggrep 與其他工具整合良好,跨平台且可自訂。
Firefox 多帳戶容器是一個因其實用性而被低估的瀏覽器擴充功能。它透過將網站分成不同的容器或標籤來幫助管理線上活動,從而防止跨網站的會話追蹤。它最有用的功能是它允許用戶在同一瀏覽器中同時登入多個帳戶。透過 cookie 分離來隔離會話,它可以保護個人資料並改善整體瀏覽體驗。擁有多個 AWS 帳號?不是問題,您可以從同一個瀏覽器視窗登入所有這些。
Vertical Pod Autoscaler (VPA) 使用戶無需為其 Pod 中的容器設定最新的資源限制和請求。配置後,它將根據使用情況自動設定請求,然後允許在節點上進行適當的調度,以便每個 pod 都有適當的資源量。
安裝在這裡。
設定範例:
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: my-app-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: my-app
updatePolicy:
updateMode: "Auto"
毫無疑問,這是用於 Kubernetes 上下文和命名空間切換的最有用的 CLI 工具。
安裝在這裡
使用ChatGPT就好像您團隊中的高級成員一樣,他從不忙碌並且總是樂意回答您的所有問題。確保您的意圖是更深入地理解,而不是盲目地解決任務。
Prime ChatGPT 成為資深團隊成員,提示如下:
您將擔任資深 DevOps 工程師,提供有關如何在 DevOps 領域脫穎而出的生活小技巧和技巧。您還將準備好幫助初級團隊成員解決他們可能遇到的任何問題。請提供管理基礎架構和持續整合/持續部署 (CI/CD) 管道的實用建議、推薦工具和最佳實務。使用我的溝通風格編寫輸出,清晰、簡潔、實用。以下是我的溝通風格的範例:
- “專注於自動化重複性任務,以節省時間並減少錯誤。”
- “利用 Docker 和 Kubernetes 等工具進行容器化和編排。”
- “始終監控系統性能並主動發現潛在問題。”
- “指導後輩時,要有耐心並用簡單的術語解釋概念。”
您可以向 ChatGPT 詢問以下一些問題,以進一步微調提示:
您是否想要建議和解釋更多地迎合初級初級人員或具有 DevOps 經驗的人員?
您能否提供更詳細的溝通風格範例,尤其是在向初級人員解釋複雜概念的場景中?
您希望優先考慮 DevOps 中的特定挑戰或重點領域(例如自動化、監控、安全性)以獲得建議和初級支援嗎?
毫不奇怪,技能不能立即吸收,它們需要時間和努力。在不斷發展的科技世界中,確定培養哪些技能可能會令人困惑。然而,身為 DevOps 工程師,掌握腳本編寫和確定文件優先順序是不會出錯的。
“培養你的技能而不是你的履歷。” —謝麗爾·桑德伯格
對於 DevOps 工程師來說,腳本編寫就像一把瑞士軍刀,因為它可以自動執行重複性任務,在流程之間提供必要的黏合劑,並確保跨環境的一致性。學習和練習腳本編寫需要熟悉Makefile 、用於高效文字處理的正規表示式 ( regex ) 以及用於強大命令列操作的Bash腳本等工具。
不要覺得在工作中實施腳本之前您必須掌握腳本編寫。在目前的軟體或基礎設施交付流程中尋找手動步驟,並嘗試編寫有意義的自動化腳本。如果需要,可以利用法學碩士尋求協助。
把一切都寫下來。這是照顧未來的你最好的方式。
嘗試一些筆記解決方案,如下:
選擇哪一項並不重要,只要您只選擇一項並堅持下去即可。
🤔 不要陷入花費太多時間組織和優化筆記的陷阱。筆記不必完美,只要功能齊全即可。在筆記維護上花太多時間是
meta-work
。
如果你只依靠純粹的動力來完成工作和改進,你永遠不會走得太遠。明確且一致的習慣是讓你不斷成長和高效的黏合劑,即使你的動力減弱也是如此。習慣無縫整合工具和技能,確保您有效率地工作。
“動機是讓你開始的動力。習慣是讓你繼續前進的動力。” ——吉姆‧瑞恩
我深受卡爾紐波特 (Cal Newport) 關於深度工作的著作的影響,我堅信每週努力保留一定的時間致力於不間斷的深度工作對於想要為團隊做出有意義貢獻的個人至關重要。
待辦事項清單本身只是願望清單。一旦您將它們繪製在日曆上,您就可以製定計劃了。
需要指出的是,據我所知,很少有人能夠 100% 準確地執行一周中的每一天的時間區塊計劃。將它們用作北極星,在需要時安排休息時間。甚至全天更新清單。但至少讓自己堅持計畫。
除非您是自己的老闆,否則您很可能無法 100% 負責您可能有義務參加的會議和承諾。
這裡的想法是,每次將新會議加入到您的日曆中時,都保留同等的深度工作區塊。這樣,您就可以保持靈活性和相對空閒,而不必犧牲每週的深度工作配額。
如果您是遠端工作者,則特別有用。關閉例程是您完成一天工作所需執行的一系列問題和步驟。理想情況下,一旦完成清單,您應該能夠忘記自己的工作,直到第二天。
我追蹤的內容如下:
我運動了嗎?
我是否解決了所有的雜項任務?
我有任何公開的對話嗎?
我需要將任何任務推遲到第二天嗎?
我寫日記了嗎? (與工作無關,但我喜歡在離開辦公桌之前完成它)
我做了多少小時的深度訓練?
在關閉當天的筆記型電腦之前,我是否最後一次檢查了正在追蹤的指標?
理想情況下,在會議期間做筆記並在會議後分享應該成為組織中的常見做法。如果不是,那麼這是您開始的絕佳機會。它不僅可以確保重要的細節不會從您的指縫中溜走,而且還可以為您的團隊提供優質的服務。
測試執行中斷對於 DevOps 工程師為應對實際事件做好準備至關重要。例如,您必須確切了解如何在凌晨 1 點出現意外警報之前快速有效地連接到叢集或虛擬機,以免您措手不及。
熟悉移動文件、檢索容器日誌和其他關鍵任務。提前設定 SSH 金鑰、kubeconfig 和其他存取工具將節省寶貴的時間並減輕實際中斷期間的壓力。主動測試和最佳化這些流程可確保您準備好有效應對任何中斷。
如果您必須多次執行某件事,請將其自動化。當使用別名可以節省時間時,為什麼要寫完整的指令呢?在漫長的職業生涯中,可能很難準確計算輸入“k”而不是“kubectl”節省了多少時間。有一點是肯定的:數量很多,而且非常值得。
“你要么是創造自動化的人,要么就是正在被自動化的人。” — 湯姆普雷斯頓-沃納
不要浪費時間鍵入您每天編寫的完整命令。
這是我配置的一些別名的一小段:
k=kubectl
kctx='kubectl ctx'
kgp='kubectl get pods'
kns='kubectl ns'
l='ls -lah'
la='ls -lAh'
ll='ls -lh'
ls='ls -G'
lsa='ls -lah'
md='mkdir -p'
rd=rmdir
run-help=man
您可以透過設定.spec.ttlSecondsAfterFinished
欄位來指定已完成作業或 pod 在自動刪除之前的生命週期。如果您在一個工作繁重的環境中工作,完成的工作會很快累積並變得相當資源繁重。
設定範例:
apiVersion: batch/v1
kind: Job
metadata:
name: test-ttl-job
spec:
ttlSecondsAfterFinished: 100
...
git remote add upstream <upstream-url>
git fetch upstream
git rebase upstream/main
git push --force-with-lease
Kubectl 自動完成功能可讓您為 kubectl 建立別名。此功能可透過減少備忘單的需求來節省時間,對於管理 Kubernetes 叢集特別有用。由於其時間效率,也推薦用於 CKA 考試。
針對 Linux 設定:
# install bash-completion
sudo apt-get install bash-completion
# Add the completion script to your .bashrc file
echo 'source <(kubectl completion bash)' >>~/.bashrc
# Apply changes
source ~/.bashrc
在這裡查看其他安裝方法。
遠端 - SSH 擴充功能可讓您使用任何支援 SSH 的遠端電腦進行開發,從而更輕鬆地在部署到的相同作業系統上進行開發、使用強大的硬體、在環境之間切換以及遠端偵錯應用程式。
安裝在這裡。
成為頂尖 1% DevOps 工程師並沒有什麼神奇的公式。與大多數職業一樣,時間、奉獻和經驗將逐漸將您塑造成高效的專業人士。隨著時間的推移,您將能夠更好地辨識模式、回憶過去的情況以及找到重複出現的問題的快速解決方案。因此,不要指望此列表中的任何單一生活竅門可以立即為您帶來 50% 的加薪和晉升。
然而,如果您始終專注於完善工具、磨練技能、拒絕打破良好習慣並實施智慧自動化,那麼您很快就能快速發展並超越當前的自我。誰知道呢,也許促銷就在眼前。
如果您喜歡我們的內容並希望支持我們完成這項使命,請在GitHub上給我們一顆星⭐️,我們將不勝感激。
{% cta https://github.com/glasskube/glasskube %} ⭐️ 在 GitHub 上為我們加星號 🙏 {% endcta %}
原文出處:https://dev.to/glasskube/20-life-hacks-for-devops-engineers-3dn7