JAVA&大數據架構方向 同與異?
- 2019 年 10 月 6 日
- 筆記
架構不是一個職業而是一種能力,每一種架構師只不過是在不同的領域裏面使用不同的技術,沒有什麼可對比,就好比如你問一個籃球明星和一個足球明星有什麼區別一樣!
01 架構師需要考慮四個問題
1. 確定系統幹什麼不幹什麼,也就是說系統的邊界在哪裡?
2. 確定架構內部的模塊與模塊之間的關係,以及模塊與外部之間的關係是什麼?
3. 架構確定以後,有能力去指導開發去繼續設計和演化,如果開發設計和演化出來的東西和架構不一致也是有問題的。
4. 確定非功能性需求,安全性,可擴展性,可用性,可維護性。
02 Java架構方向人才
● 系統的技術選型和可行性評估;
你這可以理解為:你家的房子戶型設置,硬件軟件配置必須要有自己的經驗,裝修完之後總得適用,不浪費成本,偏激一點總不能到處是柜子。
● 分佈式技術框架的把控;
你這可以理解為:你家的柜子可以做出多種組合,你家的被子是放在A櫃,枕頭放B櫃,床單放C櫃,這得看你的劃分用途。
● 深入發掘和分析業務需求,重點模塊的設計、方案評審與技術支持,技術難點攻堅,應用系統分佈式技術的落地,撰寫技術方案和系統設計,最終完成編碼工作;
你這可以理解為:柜子可以用來放東西,也可以用來拼裝;如果組合櫃,那可以拼出一些藝術品,那就看你的空間思維了。
● 針對產品性能和架構優化,確保系統的架構質量;
你這可以理解為:柜子如果沒有按照之前圖紙來規劃安裝擺放,你就會發現有些地方是可以改進的,及時完全參照圖紙,你還是會想如何改進,這就會產生一些小想法;你可能會想如何裝更多的物品,如何方便取物,如何整理方便。
● 優秀的抽象設計能力,思路清晰,善於思考,能獨立分析和解決問題及編寫解決方案;
你這可以理解為:哇,你家的裝修真棒,這時你的鄰居,或親威朋友想參考你的想法,你可以提供一整套安裝配置方案,現在你就是專家,因為他們想利用空間,發揮你的空間想像力。需要你來指導裝修,提高裝修質量,減少控制裝修成本等等。
● 熟悉linux,能熟練應用shell/python等腳本語言;
● 紮實的Java基礎知識,熟悉IO、多線程及並發技術;
● 熟練掌握redis、mongodb、netty、kafka等中間件;
● 對JVM原理有紮實的理解,對服務器端設計和編程有深入理解;
你這可以理解為:你對基建設施了如指掌,編譯原理很清楚,恭喜你,你已經超過我了。
● 算法基礎紮實,熟悉常見的數據結構,熟悉常用的設計模式,深入理解分佈式算法和主流分佈式系統,了解主流消息隊列工作原理;
你這可以理解為:排序,索引,存儲,去重,平滑等一些算法有深入了解,恭喜你,你已經是數學專家級了。
● 有豐富的分佈式、高並發、高負載、高可用性系統設計經驗,熟悉分佈式緩存、消息等機制。
03 大數據架構方向人才
● 針對大數據平台的設計和開發制定數據架構規範,進行核心代碼編寫;
你這可以理解為:有設計圖紙的能力,能夠指導各個組件安裝部署,以及數據的數據抽象能力。
● 針對數據基礎架構和數據處理體系的升級和優化,技術難題攻關,持續提升核心系統性能,保證系統的安全、穩定、高效運行;
你這可以理解為:數據的價值,在於你的抽取採集能力是否高深,是否便於加工,標註。各組件的穩定性,兼容性,是否有預警,在於你的規劃和監控接口是否到位。
● 大規模數據實時化、大數據技術容器化、私有雲實施方案、數據模型規範化等方面根據不同項目的技術發展路線;
你這可以理解為:引入 Docker 的鏡像機制來完善自己的容器;同時計算能力、數據結構抽象、定義,要用自己的風格和規範。能用最簡單的配置,迅速跑起來流式streaming或離線處理spark程序.
● 跟蹤大數據相關領域的技術趨勢,競爭對手的產品、技術動態;
● 大數據平台的穩定性和性能優化及技術攻關;
● 產品研發過程中關鍵設計的把關和研發;
● 精通大數據生態圈主流技術和產品,如Hive、Storm、Flink、Spark,ELK、Kafka,Zookeeper、Yarn,presto,Hue等,對Spark分佈式計算的底層原理有深度理解,對複雜系統的性能優化和穩定性的一線實戰經驗;
● 精通實時數據倉庫設計,深刻理解MR運行原理和機制,能進行任務執行效率的優化,熟悉開源數據交換工具如sqoop,streamset,kettle,datax等
● 熟悉elasticsearch、Lucene、Solr、Kylin、Phoenix、Alluxio等相關技
● 具有規劃和決策能力,善於捕捉業務需求、架構設計存在的問題,並能給出有效的解決措施和方法 。
● 數據預測,預警,人工智能,圖像識別,智能語音,物聯網數據採集,標註等。線性計算,神經網絡,知識圖譜,都要有自己的項目,而且能迅速組建團隊,成就你的客戶,你就是未來的行家和贏家。
04 兩者側重點不同
★ Java架構
n 開發語言
n 分佈式,高可用
n 設計模式
n 支撐業務的系統架構或者工具集
★ 大數據架構
n 不局限開發語言,有Java,Scala,Python,Go等更有裨益
n 人工智能,商業智能,數據挖掘
n 離線,實時,高效率,高可用
n 結構化數據,半結構化數據
n Hadoop生態圈
n 使用的模型越來越複雜,計算量指數級上升
n 組件集
05 總之
了解到用戶的痛點,抓住用戶的喜好,改善用戶的體驗。
一個好的產品,一定要讓用戶感覺到爽。核心問題還是哪些數據值的採集,每個開發,碼者都應該站在產品的角度去思考問題,如何描繪出適合我們的一套智能化,自動化的問題解決方案