路線圖與課程連結:如何跟上開發潮流,成為一名 DevOps 工程師?
編者按:DevOps是最近開發界很火的一個領域。但是要想成為DevOps工程師必須18般武藝樣樣精通。幸好GitHub上面有Kamranahmedse給出了成為一名DevOps工程師的路線圖,它說明了DevOps工程師的角色是什麼,需要學習哪些工具和技術。javinpaul則在Medium上的《 ofollow,noindex">The 2018 DevOps RoadMap 》一文中補充了相關的線上課程有哪些。把這兩份東西結合起來成為DevOps就有路可循了。
當下DevOps的確很熱,我的大多數朋友、同事以及我認識的資深開發者都在致力於成為一名DevOps工程師,並且在他們的組織中以DevOps擁護者的身份出現。
儘管我真心承認DevOps的好處,因為這直接與軟體開發和部署的改進關聯,但從我有限的經驗來看這可不是件簡單的工作。在這過程中選擇合適的路徑非常困難,因為工具和實踐實在是太多了。
作為一名Java博主,我的很多讀者都問我類似這樣的問題:如何成為一名DevOps工程師,我應該學習哪些工具?應該遵循哪些實踐?學習Maven和Jenkins是不是成為DevOps開發者的必須?我該不該學習Chef、Puppet或者Ansible等。
我已經在自己有限的經驗範圍內盡力去回答那些問題了,但是仍然無法以一種簡單的、可重用的方式去把這些記下來。不過,別擔心。
今天我打算跟大家分享一個出色的資源來幫助各位成為一名DevOps工程師,這個東西就是2018 DevOps路線圖。
昨天我在網上隨便亂逛然後在GitHub上看到了Kamranahmedse的這個出色的 主頁 ,上面列舉了成為前端開發者、後端開發者、全棧web開發者以及最後但絕不是最不重要的,DevOps工程師的路線圖。
無論從哪種意義來說這份路線圖都非常出色,因為它不僅聚焦了DevOps工程師的角色是什麼,同時還告訴了哪些工具和技術你需要學習才能掌握某個領域。
此外,路線圖的顏色也非常漂亮(你難道不喜歡黃色、奶油色外加藍線嗎?),可以打印出來掛在牆上隨時參考。
雖說這幅路線圖很好地告訴了你該學什麼,但是它並沒有告訴你怎麼學以及去哪裡學。為了完善這份路線圖,我在此提供一些有用的線上課程,包括免費和付費的,以便你可以學習和改進你想要的工具或者領域。
提供給開發者的2018 DevOps路線圖
先來看看我提到的那份2018 DevOps 路線圖是什麼樣的:
Kamranahmedse製圖(https://github.com/kamranahmedse/developer-roadmap)
現在我們先來一步步地過一遍這張路線圖,看看如何去學習那些成為DevOps大牛所需的基本技能。
1、學習一門程式語言
顯然我假設你們這幫傢伙絕對了解Java、Python或者JavaScript這三門主要語言之一了。
如果你還沒有,別擔心,看看下面的課程就能學習你選擇的語言了,儘管我強烈建議你至少學習者三門主流通用程式語言之一。
Java語言
如果你想學Java,那麼 V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fjava-the-complete-java-developer-course%2F" target="_blank" rel="nofollow,noindex">The Complete Java MasterClass 會是一門很好的課程,而且最近已經更新到Java 10了。
Python語言
如果你想學Python,那麼 The Complete Python BootCamp 是我的最愛,裡面會教你學Python 3,這是Python最流行的版本。
JavaScript語言
還有,如果你希望學習JavaScript,那麼Mosh Hamdani在Udemy上面的《 JavaScript Basics for Beginners 》就是不二之選。
如果你需要更多的選擇並且免費課程也沒關係的話,那你可以看看我的 Java、Python與JavaScript 免費課程清單。
2、理解不同的的OS概念
這個主要跟Ops有關係,在過去這個東西主要由支援人員和系統管理員負責瞭解OS和硬體,但DevOps運動興起之後,開發者也需要了解它們了。
你至少需要了解路線圖裡面建議的程序管理、執行緒與併發、套接字、I/O管理、虛擬化、記憶體儲存與檔案系統。
鑑於我們大多數都跟Linux打交道,我建議你好好看看Udemy上面的 Linux Administration BootCamp 課程,以便更好地學習和理解Linux作業系統。
如果你需要更多的選擇並且不介意從免費資源學習的話,你可以看看這份免費Linux課程清單。
3、活學活用終端
對於一個做DevOps的傢伙來說,在命令列方式有個好的命令可用很重要,尤其是如果他是在Linux環境下工作的話。懂得一些像Bash或者Ksh這樣的Linux shell或者像find、grep、awk、sed、lsof這樣的工具,以及像nslookup和netstat這樣的網路命令是必須的。
如果你覺得自己需要補一下這些命令和工具,那就應該參加Pluralsight 上面的這門 Linux Command Line Interface (CLI) Fundamentals 課程。
無論是對初學者還是有經驗的Linux使用者來說這個都是很好的幫助記憶的工具。不過你得是 會員 才能訪問這門課程,費用是一個月29美元或者一年299美元,但是物有所值。
Pluralsight就像是開發者的Netflix,裡面有超過6000門高質量的課程,涵括了最新技術,意味著你可以在任何地方學習任何東西。我基本上都是在路上和通勤的時候學習的。
順便說一句,如果你需要更多的選擇並且想要成為shell指令碼大師的話,你還可以看看我的 學習shell指令碼的最佳課程清單 。
4、網路與安全
孤島的日子已經一去不復返,在今日的世界裡,一切東西都是互聯的,這使得網路和安全變得非常重要。
為了成為一名好的DevOps工程師,你必須瞭解一些基本的網路和安全概念,比如DNS、OSI模型、HTTP、HTTPS、FTP、SSL、TLS等。
為了記得這些概念,你可以看看Ed Liberman 在Pluralsight上面開設的這門 TCP/IP and Networking Fundamentals for IT Pros (IT專業人士的TCP/IP與網路基礎)課程。
5、安裝了什麼?如何安裝?
作為一名DevOps的擁護者,你應該知道你的機器裡面安裝了什麼,以及如何安裝那個東西,只有這樣你才能思考把它自動化的事情。
通常而言,DevOps工程師應該知道如何安裝像IIS、Apache以及Tomcat這樣的Web Server。
他還應該瞭解一些Caching Server(緩衝伺服器)、Load balancer(負載均衡器)、Reverse Proxy(反向代理)以及Firewall(防火牆)方面的東西。如果你在web開發領域是個新手的haunted,我建議你看看Colt Steele的 The Web Developer Bootcamp 。
6、學習基礎設施即程式碼
這大概是DevOps工程師最重要的事情了,而且這是一個範圍很廣的領域。作為一名DevOps工程師,你應該瞭解一些像Docker 和 Kubernetes這樣的容器。類似Ansible、Chef、Salt以及Puppet這樣的配置管理,還有像Terraform和Cloud格式化這樣的Infrastructure Provisioning。這裡有一些我推薦的相關學習課程。
如果你希望學習Docker,那麼Udemy上來自一位Docker Captain的 Docker Mastery: The Complete Toolset 課程就是最好的起步教程。裡面提供了DevOps工程師用到的所有工具的全面介紹。
如果你想學Kubernetes那我建議你參加 Learn DevOps: The Complete Kubernetes 這門課程。這會教你如何開發、部署以及管理Kubernetes。
還有,如果你想學習Chef那沒有比Udemy上的 Chef Fundamentals: A Recipe for Automating Infrastructure 更好的課程了。也許是目前學習Chef最好的課程。
如果你需要更多Docker方面的選擇,可以看看這份 DevOps工程師十大基本教程 。
7、學習一些持續整合與交付(CI/CD)工具
對於DevOps大師和擁護者來說這是另一個非常重要的東西,比如設定一條管道給持續整合和交付。CI/CD領域有很多工具,比如Jenkins、TeamCity與Drone等。
但是我強烈建議你至少要學習一下Jenkins,因為這是使用最廣泛大概也是市面上最成熟的CI/CD工具。如果你不知道Jenkins那這門課程就是最佳起步。
如果你想學Jenkins,那就沒有其他課程能比Udemy上經典的《 Master Jenkins CI For DevOps and Developers 》更好了。這就是最好的課程,我大部分的Jenkins技能都是從這門課上學來的。
順便說一句,如果你需要更多選擇並且不介意學習免費資源的話那你還可以看看我的《 為Java開發者準備的6門免費Jenkins和Maven課程 》。
8、學會監控軟體和基礎設施
除了設定和部署以外,監控也是DevOps另一個重要方面,這就是為什麼DevOps學習有關基礎設施和應用監控很重要的原因。
這個領域有很多工具,比如Nagios、Icing、Datadog、Zabbix、Monit、AppDynanic、New Relic等。
視你的公司用的是什麼樣的工具,你可以選擇其中一些來學習。
9、瞭解雲提供商
雲是大勢所趨,你遲早要把你的應用遷移到雲端,因此作為一名DevOps工程師你至少得了解一些流行的雲提供商以及他們的基礎。
雖然AWS是雲領域的領導者,但並不是唯一的一個,Google Cloud和Azure也在慢慢趕上,此外還有Heroku、Cloud Foundry以及Digital Ocean這樣的其他玩家。
作為起步我強烈建議你參加Udemy上這門經典的《 AWS Serverless API與App——完全介紹 》課程,這是這方面最好的課程了。
順便說一句,如果你需要更多的選擇並且不介意學習免費資源的話,你可以看看我的面向開發者與DevOps工程師的 免費AWS課程清單 。
其他你可能會喜歡的程式設計文章:
最後說明
感謝閱讀本文。看到這裡你也許會頭痛有那麼多東西要學,那麼多課程要加入,但請不要擔心。
很有可能你已經知道了其中大多數的東西,而且也有大量可用的免費資源,我也把那些免費資源連結放進來了。不過那些付費的資源雖然要花錢,但絕對物有所值。
我是Udemy課程的特別粉絲,因為這些課程錢不貴同時提供了很好的價值,但是選擇什麼樣的課程由你來定。
到最後,你應該對這裡提到的東西擁有足夠的知識和經驗。
希望你的DevOps之旅能有好運!這條路走起來當然不會容易,但是按照這份路線圖和指南,你就離成為DevOps工程師更近了一步了。
原文連結: https://hackernoon.com/the-2018-devops-roadmap-31588d8670cb
編譯組出品。編輯:郝鵬程。