DevOps & SRE 必備技能清單- IT閱讀

文章推薦指數: 80 %
投票人數:10人

可以用它們作為一個清單來評估你自己或其他人,或者為下一次面試DevOps/SRE(Site Reliability Engineers,網站可靠性工程師)工作做準備。

科技 DevOps&SRE必備技能清單 DevOpsDockerNginx· 發表2018-10-1707:15:00 摘要: 導讀 這個列表並非詳盡無遺,只是列舉了技術基礎、必須知道的技能和一些隨機的想法。

可以用它們作為一個清單來評估你自己或其他人,或者為下一次面試DevOps/SRE(SiteReliabilityEngineers,網站可靠性工程師)工作做準備。

補充下,這個清單是比較個人的想法。

... 導讀 這個列表並非詳盡無遺,只是列舉了技術基礎、必須知道的技能和一些隨機的想法。

可以用它們作為一個清單來評估你自己或其他人,或者為下一次面試DevOps/SRE(SiteReliabilityEngineers,網站可靠性工程師)工作做準備。

補充下,這個清單是比較個人的想法。

免責宣告 這個清單由ofollow,noindex">SahilSharma 和作者 共同完成。

我們已經發布了它的第一個版本(DevOps和網站可靠性工程師必備技能清單 )。

本文是最新的版本更新。

下一步是什麼?更瞭解DevOps生態系統: 首先,一定要了解文化要點的重要性:在這裡(15點DevOps檢查表  )可以讀到更多資訊。

您應該掌握*nix系統並且很好地理解Linux發行版的工作原理。

為產品設定選擇一個作業系統。

不需要掌握每一個作業系統,這會讓你的工作陷入困境,選擇其中一個並掌握它。

能輕鬆使用終端,可能有一些GUI來管理伺服器,但是無論如何,必須熱愛終端,它更快、更安全,坦白說,一旦掌握了用起來會更容易。

如何獲取CPU/系統資訊(cat/proc/version,/proc/cpuinfo,uptime,等。

) cron作業如何運作。

在特定日期/時間/月設定cron作業。

瞭解在機器上執行的作業系統是什麼(cat/etc/lsb-release) 瞭解不同的*nix作業系統之間的區別,以及瞭解在機器上執行的作業系統(例如cat/etc/lsb-release) shell之間的區別:sh/dash/bash/ash/zsh 如何設定和取消設定ENV變數。

匯出的ENV變數是臨時的,如何匯出永久的變數? 什麼是shell配置檔案:〜/.bashrc,.bash_profile,.environment..如何為程式初始化檔案“新增”設定? 瞭解Vim,其配置(.vimrc)及其一些基本提示是必須的。

日誌如何在*nix系統中執行,什麼是日誌記錄級別以及如何使用日誌管理工具(rsyslog,logstash,fluentd,logwatch,awslogs..) swapping如何工作。

swappiness是什麼。

(swapon-s,/proc/sys/vm/swappiness,sysctlvm.swappiness..) 能輕鬆使用指令碼語言輕鬆自如。

Bash是必須瞭解的(其他指令碼語言也是非常有用的,如Python,Perl..)。

掌握有用的命令,例如程序監控命令(ps,top,htop,atop..),系統性能命令(nmon,iostat,sar,vmstat..)和網路故障排除和分析(nmap,tcpdump,ping,traceroute,airmon,airodump..)。

你的備份策略是什麼?如何測試備份的可靠性? 你知道ext4,ntfs,fat?知道聯合檔案系統(UnionFS)嗎? 如何在系統上檢視/設定網路配置? 如何在具有不同子網的計算機上設定靜態/動態IP地址?(提示:CIDR) 使用網路資料包分析來分析和了解網路的工作原理:tcpdump,Wireshark.. 你熟悉OSI模型和TCP/IP模型的規範嗎?TCP和UDP有什麼區別?你知道vxlan嗎? 如何設定防火牆(iptables,至少知道ufw):設定規則,列出規則,路由流量,阻止協議/埠.. 如何檢視/設定/備份路由器設定? DNS如何工作?如何設定DNS伺服器(Bind,Unbound,PowerDNS,Dnsmasq..)?遞迴(recursive)和權威(authoritative)DNS有什麼區別?如何排除DNS故障(nslookup,dig..) 熟悉DNS和A,AAAA,C,CNAME,TXT記錄 當你在瀏覽器中點選google.com時會發生什麼?從瀏覽器的快取、本地DNS快取、本地網路配置(hosts檔案)、路由、DNS、網路、Web協議中,快取系統到Web伺服器(如果深入分析,最基本的問題也很難回答)。

熟悉CDN提供商(fastly,Akamai等) 熟悉SSL/TLS的工作原理以及數字證書的工作原理(https) 瞭解SSL證書(需要加密) 熟悉更安全的協議和工具:TLS,STARTTLS,SCP,SSH,  SFTP,FTPS.. 瞭解PPTP,OpenVPN,L2TP/IPSec之間的區別 學習為域設定記錄集(可以使用Route53或Flare/">CloudFlare等託管雲服務) SSH如何工作,如何除錯它,如何生成ssh金鑰以及無密碼登入到其他計算機 什麼是init系統?你知道Systemd(自15.04以來由Ubuntu使  用),Upstart(由Ubuntu開發),SysV.. 用任何軟體的原始碼編譯它(gcc,make和其他相關內容) 如何通過終端用不同的格式壓縮/解壓縮檔案(主要是:tar/tar.gz) 如何設定Web伺服器(Apache,Nginx..) 學習使用“awk,sed,sort,uniq”操作Nginx/Apache日誌檔案 Nginx和Apache有什麼區別?什麼時候使用Nginx?什麼時候使用Apache?在同一個Web應用程式中,何時以及如何同時使用它們? 如何設定反向代理(Nginx..) 如何設定快取伺服器(Squid,Nginx,Varnish..) 如何設定負載均衡器(HAproxy,Nginx..) 如何為您的微服務建立API閘道器(Ambassador,Kong,Traefik,Nginx..) 熟悉Systemd以及如何使用systemctl和journalctl等命令分析和管理服務 熟悉OAuth、SAML、Auth0整合 熟悉RESTfulAPI,Webhooks,GraphQL,RPC/">gRPC 確保ES叢集安全(XPack(商業),OpenSource:ReadOnlyREST,SearchGuard) 使用snapshotAPI或esdump進行ES備份(快照和增量)(注意:需要nodejs/npm) 使用DB備份 學習Python(pip+setup.py)和BASH。

您是否開始使用Golang作為指令碼語言?嘗試一下吧。

發展雲端計算技能。

從選擇雲基礎架構提供商開始:AmazonWebServices,GoogleCloudPlatform,Digitalocean,MicrosoftAzure。

或者使用OpenStack建立自己的私有云。

staging伺服器怎麼樣?單元測試的測試策略是什麼?端到端?真的需要staging伺服器嗎?Google下“stagingserversmustdie”。

閱讀有關PaaS/Iaas/Saas/CaaS/FaaS/DaaS和無伺服器架構的資訊 瞭解如何通過CLI中的CloudShell,或你的程式中的CloudSDK,來使用和配置雲資源 瞭解如何使用至少一個配置管理和遠端執行工具(Ansible,Puppet,SaltStack,Chef等)。

您的選擇應基於以下標準:語法,效能,模板語言,推拉模型,效能,架構,與其他工具的整合,可伸縮性,可用性等等。

用於image構建的Packer 將Jenkins整合到CI/CD中 設定Consul(用於服務發現) 開始研究“基礎架構即程式碼”(infrastructureascode),以及基礎架構配置自動化工具,如Terraform和Packer 開始研究容器和Docker。

容器是底層架構(cgroups和namespaces),它是如何工作的? 開始熟悉基本的Docker命令(logs/inspect/top/ps/rm)。

另外得研究dockerhub(push/pullimage) 開始研究容器編排工具:DockerSwarm,Kubernetes,MesosphereDC/OS,AWSECS 閱讀有關無狀態和有狀態應用程式的知識 學習為您的應用程式構建小型的dockerimage(alpine比較合適)。

僅安裝所需的包就夠了。

瞭解預設執行服務的最常用埠號(如:SSH(22),Web(80),HTTP/S(443)等) 從分散式角度學習網路(在容器世界中建立網路)。

利用分散式系統中的8個謬論,讓自己輕鬆應對。

瞭解L4/L7負載均衡器。

瞭解如何確保代理伺服器和反向代理伺服器的安全(Nginx,Traefik,Ambassador..),並瞭解它們的網路系統是如何工作的。

熟悉幫助建立可分發和可移植開發環境的工具(例如:Vagrant和Docker)。

部署應用程式時,管理私密資訊。

HashicorpVault會幫助你。

瞭解AWSSQS,GooglePubSub或其它替代方案。

熟悉Kafka,AWSKinesis或其它替代方案。

瞭解AWSRDS,大多數時候Ops發現很容易將普通任務委派給服務提供商以避免額外的工作,但這會帶來一些費用。

如果你在使用Kubernetes,那麼瞭解它的所有元件和工作。

學習如何首先處理K8s內建功能,然後學習Helm/Istio。

瞭解監控的方式和內容(從作業系統和應用程式的角度來看)。

一旦到了合適的階段,接著會需要追蹤(Tracing)來幫助理解和挖掘,並且應用程式需要直接支援它 如果您正在處理(大)資料工程相關應用程式,那麼得熟悉Hadoop,HBase,Zookeeper,Spark以及如何設定相關叢集 學習如何根據應用需求設定和調整Redis,如何新增身份驗證。

瞭解應用程式的性質:CPU密集型,記憶體密集型,I/O密集型,然後瞭解如何相應地進行處理。

學習根據需要在不同型別的資料庫之間進行選擇:SQL,NoSQL,TSDB,圖形資料庫.. 學習管理IAM角色/許可權以及如何管理不同使用者的金鑰(AWSIAM,GCPIAM..)。

如果您喜歡分享並幫助其他人解決遇到過的問題,請將程式碼釋出到GitHub。

學習對基礎架構和應用程式進行基準測試以填補空白。

不要直接去執行。

先視覺化最終目標、畫圖、與開發人員詳細討論、毫不猶豫地提問、讓問題徹底變得愚蠢。

不時做小型演示或PoC以便更好地理解。

你熟悉IDE(SublimeText,Atom,Eclipse..)嗎? 深入瞭解DB(MySQL或任何其它你喜歡的資料庫)。

瞭解Redis/Memcache以及類似工具。

瞭解微服務架構的優缺點,並開始構建類似的架構。

瞭解如何配置和使用持續整合和持續交付工具,如Jenkins,TravisCI,Buildbot,GoCd。

將這些工具與其它工具(如Selenium,構建工具,配置管理軟體,Docker,雲供應商的SDK等)整合是非常有幫助的。

學習分散式版本控制系統Git及其基本命令(pull/push/commit/clone/branch/merge/logs等)。

瞭解git工作流程。

你知道如何將Git儲存庫恢復到以前的提交嗎? 如何使用SSH金鑰。

嘗試使用Github,Bitbucket或Gitlab..來配置對repo/account的無密碼訪問。

熟悉核心版本的混亂以及如何修補它們。

瞭解如何生成校驗(md5,SHA..)以驗證任何檔案的完整性。

瞭解單體(Monolithic)和微服務(Microservices)架構之間的區別。

如何實現零宕機部署?制定回滾、自修復、自動擴充套件的策略是什麼? 瞭解可擴充套件性和高度分散式系統,如何讓它們一直保持執行狀態? 熟悉API和服務:RESTfull,RESTful-like,API閘道器,Lambda函式,serverless計算,SOA,SOAP,JMS,CRUD.. 如何確保基礎架構、網路和執行的應用程式的安全? 你知道什麼是ChatOps嗎?是否嘗試過使用一個已知框架?Hubot,Lita,Cog? 瞭解如何設定、配置和使用某些監控系統(Nagios,Zabix,Sensu,Prometheus..) 無論你做什麼都“記錄下來”,無論多麼粗糙,做吧。

稍後,你會感謝自己的。

製作小的程式碼指令碼以方便使用,記下命令或片段(通過StackOverflow,GithubGists或其它線上記事板),它會幫助你得到想要的東西。

讓Google,StackExchange,Quora和其它專業論壇成為您的朋友。

讀,讀,讀。

在Twitter/StackOverflow上提問。

參加會議。

可以加入我們當地的聚會,如DevOpsLinksCommunity會議(班加羅爾) ,DevOpsLinksCommunity會議(倫敦) 和DevOpsLinksCommunity會議(巴黎) 。

如果想組織當地的聚會,請聯絡我們,我們將為您提供幫助! 與同一領域的研究員交談並討論您的問題。

通過社群 學習。

加入我們的Slack頻道 並詢問您的所有(菜鳥級)問題,都沒問題!我們都是從開始起步的。

不要試圖解決所有問題。

永遠記住一件事:沒有人是一座孤島。

你不能做、學習、實現一切。

要了解對於手頭的任務最重要的是什麼。

閱讀DevOps詞彙表(請Google它) 關注開源專案(Kubernetes/Docker等)或者讓您感到興奮的東西。

關注來自社群 的志同道合的人,並瞭解最新的科技趨勢。

嘗試搭建良好的開發實踐以及堅實的架構。

瞭解如何在生產級別進行擴充套件。

瞭解如何在生產伺服器中實時除錯和跟蹤執行的應用程式。

關注一些合適的科技公司的技術部落格(我們跟隨:Google/Uber/Quora/Github/Netflix)。

這是您可以直接從專家那裡學習的地方,並有機會看到他們解決任何問題的方法。

瀏覽一些新聞聚合器,如Reddit,hackernews,medium等。

在twitter上關注志同道合的開發人員和技術公司。

(我總是閱讀文章和觀看談話/會議,事後剖析(post-mortems)是我最喜歡的內容。

我也關注一些github庫看看我使用的技術發生了什麼。

) 加入DevOpsLinks 、Kaptain 和Shipped !我們相信你會學到很多東西,即使你是專家,你仍然不得不更多地學習。

閱讀各種與技術相關的部落格並訂閱DevOpsNewsletters。

順便說一句,我們有一份出版物 ,您可以提交您的文章並與社群分享。

瞭解開源以及如何 為開源專案做出貢獻。

如果系統出現問題,您應該能夠進行事後剖析。

詳細記錄出現了什麼問題,以及如何防止它再次發生。

嘗試學習StackOverflow的專家如何解決問題。

永遠記住,方法是不斷變化的,不像基礎知識總是保持不變。

讀書。

最後這點也很重要......不要假設任何事情,永遠不要把現實視為理所當然,總是去嘗試並享受旅程。

如果您擁有以上大部分技能,則可以確保您具備DevOps、SRE和系統工程知識的先決條件。

你無法一次性學習所有這些,但是具備這樣一個思維模式是主要的。

即使去熟悉所有這些也肯定需要時間,但俗話說旅程很有趣。

你會失敗很多次,並從錯誤中吸取教訓,不要重蹈覆轍。

永遠記住,我們都是學生。

我們通過碰撞和試驗來學習。

不要羞於失敗,因為這就是學習的方式。

我們希望聽到您的反饋和建議: 顯然,針對這個清單的反饋和建議。

您想學習哪種技術?(請與我們分享)。

我們將推出一個DevOps線上學院,我們希望您成為我們的第一個貢獻者,所以分享您的建議,不要害羞! 其他的東西,我們將與您在未來分享,我們將很高興聽到您的建議和反饋! 進一步聯絡 我們會很高興聽到您的建議,並願意為這個清單增加其它觀點。

為了取得聯絡,請訂閱我們的一個或多個線上社群,因為這是瞭解最新資訊並與我們以及社群保持聯絡的好方法: DevOpsLinks ,一個來自世界各地的DevOps專業人士和從業者的社群。

  Shipped ,一個專注於無服務計算、FaaS和其他有趣主題的技術的社群。

  Kaptain :一個Kubernetes社群中心,主要包括手工策劃的時事通訊、團隊聊天、培訓和更多(即將推出)。

  如果您喜歡這篇文章,請通過訂閱上述一個或多個線上社群與我們保持聯絡。

請為我們鼓掌並分享給您的粉絲。

原文連結:TheMustKnowChecklistForDevOps&SiteReliabilityEngineers 感謝張嬋對本文的審校。

來源:InfoQ 您可能也會喜歡… 2018年,14個網頁設計師必備技能助你拿高薪! 自建-模擬JSONRESTAPI-從入門到精通-前端必備技能-你還在等你後臺API嗎? 未來,這將是UI設計師的必備技能……|新書·Afte Java必備技能:clone淺克隆與深克隆 阿里P8架構師經驗總結——Java架構師必備技能之少走彎路系統學習 【必備技能】HashMap在jdk1.7和1.8中的實現 "儲存狂人"必備技能OPPO雲服務讓刪照片成過去 Java後端大廠面試必備技能點 鄭剛:2019年創業賺錢必備技能大全(精華版) 2019手機圈高管必備技能:懂技術、當客服,還得當網友出氣筒 贊助商廣告 上一則中國電信助力精準扶貧再出實招 下一則百度外賣提前四個月謝幕外賣市場差異化競爭加速 南方都市報 首款搭載華為鴻蒙作業系統產品釋出 2019-08-1107:04:50 有道熱點 摩拜第一,4家企業退出或整改,北京如何給共享單車打分? 2019-08-1107:04:03 有道熱點 事關8000萬人!馬雲的相互寶分攤費為何增長到1.48元?最新迴應來了 2019-08-1107:03:59 真相君 董明珠不服輸,贏雷軍10億賭約,還不放棄做手機正研發5G手機 2019-08-1107:02:45 真相君 失望於美國?華為或將放棄等待安卓,“鴻蒙”手機將於這時問世? 2019-08-1107:02:31 每日經濟新聞 重新評估網際網路巨頭:究竟是中國崛起的奠基石還是埋藏危機的落井石? 2019-08-1106:15:59 千龍網 首款搭載鴻蒙產品“榮耀智慧屏”釋出 2019-08-1101:12:27 參考訊息 華為告訴你,六年後我們的世界會變成什麼樣—— 2019-08-1100:37:23 搜狐焦點廣州站 傳郭臺銘610億增城專案將易主當地宣傳部迴應:專案正常推進 2019-08-1100:03:44 新京報 鴻蒙系統面世華為:並非做另一個安卓 2019-08-1000:33:30 新京報 “鴻蒙”面世 2019-08-1000:32:27 環球網 社評:鴻蒙,中國高科技突圍的英勇帶動點 2019-08-1000:17:12 環球網 華為開發者大會開幕:鴻蒙OS、EMUI10.0等悉數亮相 2019-08-1000:10:55 央視財經 App收集隱私將有“國標”!個人資訊有望不再“裸奔”! 2019-08-1000:10:32 新策展資訊圈 能源需求側綜合管理 2019-08-1000:03:28 Android WEB開發 其它 0.0021190643310547



請為這篇文章評分?