本人就從Java角度來說,其實技術加運維是一條非常好的上進之路。 先來看看運維平時的工作及需要掌握的技能。 1 監(jiān)控日志,而日志一般是部署在linux上的。如果出錯,需要告知開發(fā)來解決,如果比較上心的運維,出了問題,更會通過linux命令來分析日志排查問題。 2 部署上線組件,比如要擴容,或者部署redis,nacos等組件,或者需要部署云端組件。在這過程中,運維多少會了解各種linux命令,而且了解各種組件的配置方式以及安裝方式。 3 部署監(jiān)控,比如用newrelic監(jiān)控,或者zabbix等監(jiān)控軟件來監(jiān)控,并設置告警策略。 4 應對線上問題或高并發(fā)的挑戰(zhàn),這過程中,不僅需要了解各種集群,更有機會熟悉各種網(wǎng)關和負載均衡等的硬件。如果數(shù)據(jù)庫或服務器有問題,更得通過日志或監(jiān)控組件,分析和排查問題。 5 其實運維還能接觸到devops的相關技能,比如pipelines,云部署,甚至是k8s和service mesh這套技術。 從Java角度來看,架構師要做的事情有哪些? 1 根據(jù)業(yè)務場景,用nacos,gateway或ribbon等組件搭建業(yè)務框架,必要的話引入redis,kafka等中間件,甚至有必要的時候再搭建集群。當然搭建好以后,相關組件有什么問題都需要解決。 2 負責項目上線和數(shù)據(jù)遷移這部分的工作,比如設計發(fā)布流程,編寫發(fā)布腳本,設計發(fā)布預案,設計數(shù)據(jù)遷移等的方案。 3 解決各種高并發(fā)方面的問題,比如引入各中間件,再通過壓力測試確認系統(tǒng)的承壓能力和改進點,必要的時候設計限流熔斷等問題。 4 系統(tǒng)上線后,需要搭建針對系統(tǒng)的監(jiān)控系統(tǒng),有問題以后需要及時排查。 也就是說,架構師的工作其實很大一部分是和運維是重疊的。而當下不少程序員做的僅僅是單機版的增刪改查,開發(fā)環(huán)境僅限于windows,而不是linux,更別提是容器,中間件這塊僅限于使用api,不涉及如何搭建中間件以及集群,解決問題層面僅限于解決業(yè)務問題,如果中間件或底層遇到問題,基本上估計連異常信息都看不懂。 這樣大的程序員不在少數(shù),有的甚至還會排斥運維或架構方面的技能,或者說在平時工作中僅僅做業(yè)務,沒機會掌握一些運維方面的經(jīng)驗,這也是很多程序員無法上升到架構師的原因所在。 當下,一些大廠在招人時,除了會spring boot等框架的增刪改查經(jīng)驗外,更得會分布式高并發(fā)的經(jīng)驗。開發(fā)語法好學,部署等經(jīng)驗難學,排查分布式高并發(fā)等線上經(jīng)驗更難學。 所以運維做了1,2年以后,只要稍微了解下Spring Boot等方面的語法,甚至就能直接升級到架構,而且不少運維還不知道自己掌握的技術很值錢。當然,如果運維對自己定位不當,或者公司對運維的使用不當,導致運維平時只干些裝電腦裝軟件等工作,這就另當別論了。 下面就說說本人知道的運維高效升級到架構的一些例子。 1 就說我自己吧,我之前在一家公司,雖然做的也是增刪改查,但由于和一些運維也比較熟,平時也耳渲目染了一些部署和調(diào)試方面的技能,雖然沒有得到實際的操作機會,但自己感覺已經(jīng)比單純做開發(fā)的程序員要好很多,不僅掌握了不少linux部署組件和排查問題的相關技能,更熟悉了一些分布式組件和集群的搭建和運維經(jīng)驗。后來我跳槽,這些經(jīng)驗也幫了我很多。 2 我見過一個2年經(jīng)驗的運維,平時干的活很累,要維護多個項目是常態(tài),但當他自己補了一些spring boot技能后,直接進了一家大廠,據(jù)他自己說,大廠面試雖然會問一些高并發(fā)中間件,但他平時都實際安裝和操作過,所以基本沒問題,然后薪資翻番。 3 我見過一個專門做部署的運維,可能業(yè)務不熟,但很熟悉devops這套,什么k8s配置部署都很熟悉,后來也進了大廠。 所以其實可以這樣說,掌握業(yè)務技能不難,掌握單機版的增刪改查技能也不難,做熟了增刪改查工作,從使用中間件的API慢慢熟悉中間件,然后再進一步掌握中間件的搭建以及排查問題的技巧,這其實是一條路,而如果直接從運維角度入手,一方面熟悉lunix等操作命令,另一方面直接和中間件、集群乃至容器等打交道,這條路其實更能方便提升到架構。 畢竟API容易學會,而架構方面的實踐機會難得,所以這方面的技能反而是更難提升。不過話說回來,如果干運維僅限于系統(tǒng)維護和輸入?yún)?shù),這就相當于程序員只關注增刪改查,這樣就相當于空守著值錢的項目實踐機會而不提升自己,這就非??上Я?。 |
|