從職業規劃方面考慮,openstack的就業前景如何?
謝邀。從2013年到現在,從實驗室到實習再到正式工作,雖然中間錯了一段時間,也算接觸Openstack有一段時間了。我僅從工作的角度,簡單談談我的個人感受吧。
Openstack從2010年7月誕生到現在已經走過了6年半的歲月,其發展速度和流行程度不用多言,在雲計算領域絕對稱得上最火熱的開源項目之一。當前無論是國字頭單位還是互聯網以及各大小創業公司都在興起搞Openstack,規模從幾十到幾百上千不等,案例不多枚舉。對比傳統IT行業,Openstack即使已經走了6年,也仍算是新興領域,資深的專業人才還是非常稀缺的,至少相對其它方向領域諸如移動客戶端開發、Web開發等來說。因此,從這個角度來說,當前就業肯定是沒有問題的。可以這麼說,你只要真的熟悉openstack,不愁現在沒工作。
接下來的問題是,從事Openstack相關的工作門檻是否很高?近年來大家都在說雲計算,尤其AWS的崛起以及Openstack興起,雲計算真如天上的雲一樣,平凡可見卻又不知其真正面目,聽起來很高大上,感覺深不可測。但是,任何新興技術都不可能是憑空產生的,它必然需要依賴於之前的技術基礎,雲計算更是如此,甚至有人說,只要把之前的功能產品做成服務了,開放API,並可以通過服務形式交付,就可以稱之為雲計算。Openstack主要是IaaS的開源實現之一,所謂IaaS即基礎設施即服務,基礎設施相對傳統IT就是指硬體設施,比如伺服器、交換機、路由器、磁碟等等,傳統方式只能通過硬體購買的方式交付,而IaaS的目標就是能夠通過軟體實現的服務方式交付,通過調用API介面能夠獲取和傳統硬體差不多的資源服務,如組建集群、構建網路等等。虛擬化不等於雲計算,但卻是實現雲計算最最主要的方式和技術之一,虛擬機便是虛擬化的一種,其它的諸如網路虛擬化、存儲虛擬化等。雲計算固然是一個分散式系統,涉及的技術包括分散式技術、同步機制、分散式通信等。而以上技術如今都不算是什麼新東西了,並且也相對比較成熟。Openstack顯然也沒有造出新的技術,而僅僅是以上技術的組合,可以簡單認為Openstack就是一個使用Python實現的雲管理平台,這個平台主要管理libvirt虛擬機以及與之相關聯的資源如網路、存儲,把這些資源的CURD操作封裝成了RESTFul API,其實現原理相對其它分散式系統(如Spark、Mesos等)要簡單得多,也沒有像k8s、ceph那樣動不動就能搬出牛逼論文出處、高大上的演算法原理。如果單從使用的角度,其實門檻並不是特別高,尤其對熟悉雲計算概念、Linux系統的人來說。
最核心的問題來了,從事Openstack相關工作到底做什麼事?這想必是題主最關心的問題。前面說了Openstack並不是新造出的技術,因此千萬不要認為做Openstack就是做史無前例的事,恰恰相反的是,其實大多數工作和Openstack本身並不是特別相關(或者說不是Openstack所特有的),而和傳統IT相關性反而更大。首先說和Openstack直接相關的吧,你可以從事Openstack開發工作,比如基於其中一個社區版本為自己公司內部開發私有版本(我了解到好幾個公有雲就是這樣),也可以參與社區開發,以此提高公司以及個人影響力(國內不少這樣的Openstack創業公司)。剩下的基本不是Openstack所特有的工作,簡單列舉下:
- 產品開發。社區的Openstack還不能算是一個產品,至少一個產品得有個像樣的界面吧,horizon還是算了。其中涉及的主要工作包括產品設計、前端開發等等。
- 運維(包括Devops)。有人說:雲計算,得運維者得天下。雖然有點誇張,但可見運維在雲計算中還是非常重要的。運維工作包括如何大規模自動化部署、虛擬化調優、升級變更、監控、故障排查、負載均衡等等。這些工作在非雲計算領域同樣需要,因此不算是什麼新鮮事。和Openstack相關的運維包括虛擬機配置升級、虛擬機遷移(冷遷移、在線遷移、疏散遷移等)、配額管理、故障排查等。
- 基礎架構。Openstack各個服務本身是解耦合的,服務間通過API或者RPC通信,非常靈活自由。實際部署時需要根據自身規模、使用場景、環境等設計架構。如何保證各個服務的高可用、高可靠、高並發、高性能。這些東西在社區都找不到現成答案。不得不說,Openstack還是存在不少問題的,尤其在規模非常大時,資料庫、消息隊列、分散式鎖等都有可能成為瓶頸,cell的引入目的就是要使Openstack支持大規模的部署,但直到現在也尚未開發完成。
- 實施部署。這個可能和運維部分有重疊,但這個主要強調的是私有雲和託管雲,就是把自己的產品賣給客戶後,負責在客戶的機房落地和後期維護。
- 運營。運營不多說了,任何提供平台服務的產品都需要考慮的事。主要工作包括如何權衡投入和產出,如何快速轉化效益和生產力,如何節約成本,如何吸引更多的客戶。和Openstack相關的指標包括是否設置超售比、配置組合如何優化等。
- 測試。完成各種集成測試、PoC測試、功能測試、壓力測試、性能測試等等。
以上,總結了Openstack相關工作門檻以及內容。個人認為,如果對雲計算感興趣,Openstack是一個很好的開始,並且熟悉了Openstack再去學習其它技術,比如容器技術、大數據技術等還是很有幫助的。不過說句實話,開發工作不會特別多,除非你要重寫一個組件,其它開發無非就是填填補補,另外,除非你深入鑽研內核、虛擬化技術、網路等底層實現原理,openstak的東西總體感覺很雜,不像搞大數據、AI那樣能有專一研發、安靜寫代碼的感覺,很多研發工程師,卻往往做著大多數運維相關的工作。
一句話,入行需謹慎,時時刻刻得想清楚自己現在乃至未來一段時間到底想做什麼,提前規劃好就能少點迷茫!看我貼出來求職這麼久了還沒人搭理我就知道工作好不好找了。
openstack contributor, leetcode 出題人,COA(certified openstack administrator) reviewer, n年職業老碼農,3年多openstack,干過相當規模的私有雲(osic),熟悉部署,熟悉定製,熟悉linux bridge和各類存儲後端。位於美國,現在誠心求職國內,手下少打工的大牛們請給我介紹工作,謝謝。要求真不高.
非常贊成這句話 「操著賣白粉的心,掙著賣白菜的錢!」推薦閱讀:
※在中國的大環境下,女孩如果可以安逸,是否要在追求另一條難走的路?
※40歲以後能去哪裡工作?
※在遠景能源工作是怎樣一番體驗?如何得到遠景能源的工作?
※博士由於方向窄就業會更困難嗎?
※軟體工程專業就業目標?