新聞中心
題圖:from pixabay
之前一篇《 如何從傳統(tǒng)軟件開發(fā)順利過渡到互聯(lián)網(wǎng)技術(shù)開發(fā) 》,時隔一年,再重新延伸下本文,使其更具有可操作性。

為什么要轉(zhuǎn)型呢?云計算的盛行,導(dǎo)致很多產(chǎn)品已經(jīng)云化。另外,長期專注于業(yè)務(wù)開發(fā)導(dǎo)致技術(shù)人員自覺乏味,沒有提升空間,自我存在感、成就感大幅下降,而互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等一波又一波的浪潮,一個又一個造富神話,充滿了吸引力,并且有很大的成長空間。
本文也是基于前文的基礎(chǔ)上,從一些簡單的點入手,引入一些經(jīng)常用到的開發(fā)技能點。從單體應(yīng)用開發(fā),過渡到分布式應(yīng)用開發(fā),技術(shù)棧的變更必然導(dǎo)致學(xué)習(xí)、工作上產(chǎn)生不小的變化,以下列出幾點,來幫助想要轉(zhuǎn)型的朋友掌握這些技能,以便更好的融入到新團隊中去。
-
分布式通訊技術(shù) 。單體應(yīng)用幾乎不涉及到系統(tǒng)間的交互,或者有些通過老舊的WebService的形式進行交互,互聯(lián)網(wǎng)分布式系統(tǒng)傾向于采用輕量化的、更高效率的通訊方式,比如基于HTTP、RPC協(xié)議等,了解基本的原理才能更好的使用它們,常見的,再掌握所以你應(yīng)當掌握一些常用的分布式框架,比如常見的Apache Dubbo,Spring Cloud,Google gRPC等等。數(shù)據(jù)交互的格式以有輕量的JSON替代原先比較臃腫的xml格式。
-
緩存技術(shù) 。緩存可謂是提高應(yīng)用效率的大殺器,在互聯(lián)網(wǎng)產(chǎn)品應(yīng)用非常廣泛,掌握幾個常見的緩存中間件是很有必要的。也很多應(yīng)用場景中,也只能緩存才能保證應(yīng)用的完整性,比如秒殺場景。緩存按應(yīng)用場景也有區(qū)分,如本地緩存EHcache,Guava等,分布式緩存Redis,Memcache,hazelcast等等。
-
非結(jié)構(gòu)化數(shù)據(jù)存儲 ?;ヂ?lián)網(wǎng)產(chǎn)品更多會產(chǎn)生一些碎片化的數(shù)據(jù),且沒有嚴謹?shù)臄?shù)據(jù)結(jié)構(gòu),這些些場景上采用非結(jié)構(gòu)化存儲勢在必行。根據(jù)不同的數(shù)據(jù)類型,還可以細化分為不同的NOSQL庫,比如說文檔數(shù)據(jù)庫(MongoDB等)、KV庫(Redis,LevelDB等)、圖庫(Neo4j)、列數(shù)據(jù)庫(Hbase等)、搜索引擎(Solr、ElasticStack等)。
-
異步、多線程技術(shù) 。同步的一問一答,能比較及時的處理業(yè)務(wù),但當業(yè)務(wù)量大的時候,為提高系統(tǒng)可用性、處理效率,往往會進行異步、多線程方式進行處理。線程池技術(shù),高并發(fā)編程顯的尤為重要。
-
消息中間件 。MQ天然具有系統(tǒng)解耦的優(yōu)勢,應(yīng)用場景也比較豐富,如在分布式事務(wù)中作為中間辦來協(xié)調(diào)事務(wù)、統(tǒng)一的消息(APP推送,短信等等)推送分發(fā)、延遲隊列,特別是在高并發(fā)高承載的情況下進行削峰平谷,緩解系統(tǒng)壓力。比較常見的RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ、Kafka等等。
-
分布式事務(wù) 。單體系統(tǒng)的事務(wù)很容易控制,當系統(tǒng)擴展為很多個子系統(tǒng)時,事務(wù)會分面在各個子系統(tǒng)中,只有保證分布式事務(wù)的準確性,才能保證數(shù)據(jù)的完整性。目前現(xiàn)在很通用的分布式開源解決方案比較少,大家都在采用自己的方案在做,阿里最近開源的Fescar是一個比較有潛力的方案,還有華為的SAGA方案等等。
-
安全開發(fā) 。安全開發(fā)在所有系統(tǒng)中都存在,只不過傳統(tǒng)的單體應(yīng)用開發(fā),特別是外包行業(yè),基本很少考慮。而互聯(lián)網(wǎng)產(chǎn)品面向大眾,所以網(wǎng)絡(luò)安全、數(shù)據(jù)安全更為關(guān)鍵,比如常見的XSS攻擊、CSRF攻擊、撞庫、拖庫等等,都需要在開發(fā)、測試、運維過程中重點關(guān)注。 OWASP TOP 十 或 CWE top 25 都有比較詳細的描述,可以關(guān)注下。
-
運維層面 。Linux常見的操作應(yīng)當掌握,畢竟我們很多的服務(wù)器都是運行的x86架構(gòu)下的Linux服務(wù)器中,即便是不同的分發(fā)版本,命令很多也是通用的。Devops文化已經(jīng)不再陌生,開發(fā)&運維已經(jīng)不可分割開來單獨作業(yè)務(wù),持續(xù)集成(CI)、持續(xù)部署(CD)技術(shù)將二者的邊界變的更模糊,共生共存。
下面蝗幾點高級進階點,這些點并非必須要掌握,但后續(xù)肯定會遇到,技多不壓身,有條件的話,可以適當?shù)奶剿饕欢?,擴展眼界,提升格局。
-
鏈路追蹤技術(shù) 。單個系統(tǒng)里的日志可以按系統(tǒng)交互的先后順序輸出,單系統(tǒng)分拆后,系統(tǒng)日志分別存在于各個子系統(tǒng)中,再區(qū)分請求的先后順序難度就比較大了,導(dǎo)致追蹤定位問題,比較繁瑣復(fù)雜。Dapper論文的出現(xiàn),催生出一大批開源組件的出現(xiàn),Zipkin、Pinpoint、CAT等應(yīng)用比較廣泛的幾個。
-
集群部署 。聽起來比較搞大上,無非是將原來一臺機器干的事,分散在不同機器執(zhí)行而已,對外提供較高的可用性、計算能力。對于每個用到的中間件幾乎都會有主從、主備、集群、高可用等部署策略。
-
高可用技術(shù) ,與集群技術(shù)應(yīng)該是關(guān)聯(lián)性很大的,更多是來應(yīng)對單點故障,簡寫稱為HA(High available),比如可能會經(jīng)常用到keepalived來保證Nginx、Apache、Tomcat的HA策略;比如會用到Supervisor來保證某些進程掛掉后,自動拉起。
-
容器技術(shù) 。Docker應(yīng)用的普及,將云原生應(yīng)用的提到更高高度。Kubernate等容器編排工具更加快了云原生應(yīng)用(Cloud Native)的普及,CNCF孵化下的各種開源中間件也為業(yè)務(wù)提供了強大的技術(shù)支撐。
由于傳統(tǒng)軟開發(fā)過程中較少的涉及到如上一些技術(shù)點,所以需要在工作之余進行練習(xí)掌握,這對后續(xù)的面試求職也有很大的幫助。沒有工作場景,就沒有掌握相應(yīng)的技術(shù),沒有相應(yīng)的技術(shù)支撐,就沒有機會進入互聯(lián)網(wǎng)行業(yè),畢竟很多公司都是希望你來就可以上手產(chǎn)出價值,而不是培訓(xùn)一兩月時間再上崗。
當前名稱:如何從傳統(tǒng)軟件開發(fā)順利過渡到互聯(lián)網(wǎng)技術(shù)開發(fā):硬技能
網(wǎng)頁地址:http://www.fisionsoft.com.cn/article/dpsgopd.html


咨詢
建站咨詢
