前言
作為一個典型的分布式項目,Kubernetes 的部署一直以來都是擋在初學者前面的一隻“攔路虎”。尤其是在 Kubernetes 項目釋出初期,它的部署完全要依靠一堆由社群維護的腳本。
其實,Kubernetes 作為一個 Golang 項目,已經免去了很多類似于 Python 項目要安裝語言級别依賴的麻煩。但是,除了将各個元件編譯成二進制檔案外,使用者還要負責為這些二進制檔案編寫對應的配置檔案、配置自啟動腳本,以及為 kube-apiserver 配置授權檔案等等諸多運維工作。
這幾年,在跟朋友探讨 k8s 落地時,也有一些問題被反反複複地提及,比如:
- 為什麼容器裡隻能跑“一個程序”?
- 原先一直用的某個 JVM 參數,在容器裡就不好使了?
- 為什麼 kubernetes 不能固定 IP 位址?容器網絡連不通,該如何 debug?
- k8s 中 statefulSet 和 operator 到底什麼差別?pv 和 pvc 又該怎麼用?
在這裡分享我偶然間得到的一份文檔,該文檔将K8S分為理論和實踐兩個部分進行講解,雙管齊下,事半功倍,讓我們來看看文檔内容
如何才可以進大廠?
答案其實也很簡單,能力+學曆。不知道大家有沒有發現,大廠的一些部門對于學曆要求已經放低了,阿裡的一些部門同樣也招大專學曆的程式員,當然肯定也是因為他的能力足夠出色。
對于準備秋招的你來說,如果你想進大廠還得從以下三點着手:
- 基礎
- 提高
- 深入
一、基礎:
- 《Java核心技術》這本書裡面的重點章節,你肯定需要掌握;
- 熟練掌握Java常用技術:IO、多線程、反射、常用集合架構等;
- 對于資料結構要有一定的了解,如hash沖突解決辦法,常用排序算法的應用場景和空間/時間複雜度等;
- 對于資料庫也要比較熟悉,比如資料庫三大範式,熟練常用SQL語句等等;
- Java網絡程式設計的知識也可以掌握一點。

二、提高:
- 學習後端架構,SpringMVC/Struts2、Mybatis、Spring,熟悉MVC模式,知道三層架構及每一層之間的關系;
- 學習設計模式,23種設計模式都需要了解一點;
- 可以适當的看一些源碼,Spring的源碼着重的看一下;
- 學會設計資料庫,對SQL調優有一定的了解,會寫複雜的SQL語句,存儲過程和觸發器。熟悉索引的使用,了解視圖等等;
- 會基本的Linux指令,可以在Linux下寫腳本開發。
三、深入
- 算法,大廠面試必問;
- 熟練掌握JVM和并發程式設計,特别重要;
- 源碼分析,最好能夠分析一種架構源碼,比如Spring;
- 深入資料庫,了解至少兩種資料庫引擎的差異性,熟悉索引的内部資料結構,熟悉常見的索引方式和索引類型,會使用explain分析SQL語句,會優化SQL語句熟悉一種NOSQL,知道内部實作原理,掌握分布式資料庫的知識,分表,分庫,分區,分布式事務等;
- 架構設計,看看大型高流量/高并發的網站設計,了解緩存(分布式memcached/常用本地緩存),搜尋引擎,分布式(負載均衡/分布式資料庫/分布式應用叢集),消息隊列在大型網站中的作用;
- 了解一些RPC架構,分布式服務架構。
同時可以多寫一些部落格,能參加一些開源項目,多去看一些視訊教程和大牛的部落格,對你都會有很大幫助!上面的資料也是一手非常優質的學習資料,不管你是校招還是社招都能從中學到不少知識
最後
既已說到spring cloud alibaba,那對于整個微服務架構,如果想要進一步地向上提升自己,到底應該掌握哪些核心技能呢?
就個人而言,對于整個微服務架構,像RPC、Dubbo、Spring Boot、Spring Cloud Alibaba、Docker、kubernetes、Spring Cloud Netflix、Service Mesh等這些都是最最核心的知識,架構師必經之路!下圖,是自繪的微服務架構路線體系大綱,如果有還不知道自己該掌握些啥技術的朋友,可根據小編手繪的大綱進行一個參考。