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